本文整理汇总了Java中aQute.bnd.osgi.Jar类的典型用法代码示例。如果您正苦于以下问题:Java Jar类的具体用法?Java Jar怎么用?Java Jar使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
Jar类属于aQute.bnd.osgi包,在下文中一共展示了Jar类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: doWabStaging
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void doWabStaging(Analyzer analyzer) throws Exception {
if (!isWab()) {
return;
}
String wab = analyzer.getProperty(analyzer.WAB);
Jar dot = analyzer.getJar();
log("wab %s", wab);
analyzer.setBundleClasspath("WEB-INF/classes," +
analyzer.getProperty(analyzer.BUNDLE_CLASSPATH));
Set<String> paths = new HashSet<String>(dot.getResources().keySet());
for (String path : paths) {
if (path.indexOf('/') > 0 && !Character.isUpperCase(path.charAt(0))) {
log("wab: moving: %s", path);
dot.rename(path, "WEB-INF/classes/" + path);
}
}
Path wabRoot = Paths.get(wab);
includeFiles(dot, null, wabRoot.toString());
}
开发者ID:shlee89,项目名称:athena,代码行数:24,代码来源:OSGiWrapper.java
示例2: doIncludeResources
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
/**
* Parse the Bundle-Includes header. Files in the bundles Include header are
* included in the jar. The source can be a directory or a file.
*
* @throws Exception
*/
private void doIncludeResources(Analyzer analyzer) throws Exception {
String includes = analyzer.getProperty(Analyzer.INCLUDE_RESOURCE);
if (includes == null) {
return;
}
Parameters clauses = analyzer.parseHeader(includes);
Jar jar = analyzer.getJar();
for (Map.Entry<String, Attrs> entry : clauses.entrySet()) {
String name = entry.getKey();
Map<String, String> extra = entry.getValue();
// TODO consider doing something with extras
String[] parts = name.split("\\s*=\\s*");
String source = parts[0];
String destination = parts[0];
if (parts.length == 2) {
source = parts[1];
}
includeFiles(jar, destination, source);
}
}
开发者ID:shlee89,项目名称:athena,代码行数:30,代码来源:OSGiWrapper.java
示例3: addFileToJar
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private boolean addFileToJar(Jar jar, String destination, String sourceAbsPath) {
if (includedResources.contains(sourceAbsPath)) {
log("Skipping already included resource: %s\n", sourceAbsPath);
return false;
}
File file = new File(sourceAbsPath);
if (!file.isFile()) {
throw new RuntimeException(
String.format("Skipping non-existent file: %s\n", sourceAbsPath));
}
Resource resource = new FileResource(file);
if (jar.getResource(destination) != null) {
warn("Skipping duplicate resource: %s\n", destination);
return false;
}
jar.putResource(destination, resource);
includedResources.add(sourceAbsPath);
log("Adding resource: %s\n", destination);
return true;
}
开发者ID:shlee89,项目名称:athena,代码行数:21,代码来源:OSGiWrapper.java
示例4: getAuxiliaryArchivesPackages
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private List<String> getAuxiliaryArchivesPackages(
Collection<Archive<?>> auxiliaryArchives)
throws IOException {
List<String> packages = new ArrayList<>();
for (Archive auxiliaryArchive : auxiliaryArchives) {
ZipExporter zipExporter = auxiliaryArchive.as(ZipExporter.class);
InputStream auxiliaryArchiveInputStream =
zipExporter.exportAsInputStream();
Jar jar = new Jar(
auxiliaryArchive.getName(), auxiliaryArchiveInputStream);
packages.addAll(jar.getPackages());
}
return packages;
}
开发者ID:arquillian,项目名称:arquillian-extension-liferay,代码行数:21,代码来源:ImportPackageManagerImpl.java
示例5: tree
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
@Override
public Tree tree(Jar jar) throws Exception {
Tree result = null;
if (jar.getSource() != null && jar.getSource().isFile()) {
HashCode newCode = Files.hash(jar.getSource(), hashFunction);
result = cachedTrees.get(newCode);
if (result == null) {
result = delegate.tree(jar);
}
cachedTrees.put(newCode, result);
}
if (result == null) {
result = delegate.tree(jar);
}
return result;
}
开发者ID:cbrun,项目名称:baseliner,代码行数:17,代码来源:CachedDiffer.java
示例6: doWabStaging
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void doWabStaging(Analyzer analyzer) throws Exception {
if (!isWab()) {
return;
}
String wab = analyzer.getProperty(analyzer.WAB);
Jar dot = analyzer.getJar();
log("wab %s", wab);
analyzer.setBundleClasspath("WEB-INF/classes," +
analyzer.getProperty(analyzer.BUNDLE_CLASSPATH));
Set<String> paths = new HashSet<>(dot.getResources().keySet());
for (String path : paths) {
if (path.indexOf('/') > 0 && !Character.isUpperCase(path.charAt(0))) {
log("wab: moving: %s", path);
dot.rename(path, "WEB-INF/classes/" + path);
}
}
Path wabRoot = Paths.get(wab);
includeFiles(dot, null, wabRoot.toString());
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:24,代码来源:OSGiWrapper.java
示例7: doWabStaging
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void doWabStaging(Analyzer analyzer) throws Exception {
if (!isWab()) {
return;
}
String wab = analyzer.getProperty(analyzer.WAB);
Jar dot = analyzer.getJar();
log("wab %s", wab);
analyzer.setBundleClasspath("WEB-INF/classes," +
analyzer.getProperty(analyzer.BUNDLE_CLASSPATH));
Set<String> paths = new HashSet<>(dot.getResources().keySet());
for (String path : paths) {
if (path.indexOf('/') > 0 && !Character.isUpperCase(path.charAt(0))) {
log("wab: moving: %s", path);
dot.rename(path, "WEB-INF/classes/" + path);
}
}
Path wabRoot = Paths.get(wab);
includeFiles(dot, null, wabRoot.toString());
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:24,代码来源:OSGiWrapper.java
示例8: includeFiles
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void includeFiles(Jar jar, String destinationRoot, String sourceRoot)
throws IOException {
Path classesBasedPath = classesDir.resolve(sourceRoot);
Path sourceBasedPath = sourcesDir.resolve(sourceRoot);
File classFile = classesBasedPath.toFile();
File sourceFile = sourceBasedPath.toFile();
if (classFile.isFile()) {
addFileToJar(jar, destinationRoot, classesBasedPath.toAbsolutePath().toString());
} else if (sourceFile.isFile()) {
addFileToJar(jar, destinationRoot, sourceBasedPath.toAbsolutePath().toString());
} else if (classFile.isDirectory()) {
includeDirectory(jar, destinationRoot, classesBasedPath);
} else if (sourceFile.isDirectory()) {
includeDirectory(jar, destinationRoot, sourceBasedPath);
} else {
warn("Skipping resource in bundle %s: %s (File Not Found)\n",
bundleSymbolicName, sourceRoot);
}
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:23,代码来源:OSGiWrapper.java
示例9: includeDirectory
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void includeDirectory(Jar jar, String destinationRoot, Path sourceRoot)
throws IOException {
// iterate through sources
// put each source on the jar
FileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Path relativePath = sourceRoot.relativize(file);
String destination = destinationRoot != null ?
destinationRoot + "/" + relativePath.toString() : //TODO
relativePath.toString();
addFileToJar(jar, destination, file.toAbsolutePath().toString());
return FileVisitResult.CONTINUE;
}
};
walkFileTree(sourceRoot, visitor);
}
开发者ID:opennetworkinglab,项目名称:onos,代码行数:20,代码来源:OSGiWrapper.java
示例10: getRange
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private String getRange(Analyzer analyzer) throws Exception {
if (foundRange != null) {
return foundRange;
}
if (Strings.isNullOrEmpty(value)) {
for (Jar jar : analyzer.getClasspath()) {
if (isProvidedByJar(jar) && jar.getVersion() != null) {
foundRange = jar.getVersion();
return jar.getVersion();
}
}
// Cannot find a provider.
reporter.error("Cannot find a dependency providing " + name + " in the classpath");
return null;
} else {
return value;
}
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:19,代码来源:ImportedPackageRangeFixer.java
示例11: computeClassPath
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
static Jar[] computeClassPath(File basedir) throws IOException {
List<Jar> list = new ArrayList<>();
File classes = new File(basedir, "target/classes");
if (classes.isDirectory()) {
list.add(new Jar("", classes));
}
Set<Artifact> artifacts = load(basedir).getTransitiveDependencies();
for (Artifact artifact : artifacts) {
if (!"test".equalsIgnoreCase(artifact.getScope())
&& artifact.getArtifactHandler().isAddedToClasspath()) {
File file = artifact.getFile();
if (file.getName().endsWith(".jar") && file.isFile()) {
list.add(new Jar(artifact.getArtifactId(), file));
}
}
}
Jar[] cp = new Jar[list.size()];
list.toArray(cp);
return cp;
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:26,代码来源:Classpath.java
示例12: includeFiles
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private void includeFiles(Jar jar, String destinationRoot, String sourceRoot)
throws IOException {
Path sourceRootPath = Paths.get(sourceRoot);
// iterate through sources
// put each source on the jar
FileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Path relativePath = sourceRootPath.relativize(file);
String destination = destinationRoot != null ?
destinationRoot + "/" + relativePath.toString() : //TODO
relativePath.toString();
addFileToJar(jar, destination, file.toAbsolutePath().toString());
return FileVisitResult.CONTINUE;
}
};
File dir = new File(sourceRoot);
if (dir.isFile()) {
addFileToJar(jar, destinationRoot, dir.getAbsolutePath());
} else if (dir.isDirectory()) {
walkFileTree(sourceRootPath, visitor);
} else {
warn("Skipping resource in bundle %s: %s (File Not Found)\n",
bundleSymbolicName, sourceRoot);
}
}
开发者ID:shlee89,项目名称:athena,代码行数:28,代码来源:OSGiWrapper.java
示例13: wrap
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
/**
* Wrap the file associated with this instance of {@code JarWrapper} if it is not a bundle already.
* <p>
* If the source file is already a bundle, nothing is done and this method returns the original file.
* Notice that this means the returned file is not necessarily the same as the destination file.
*
* @param version version to give the bundle. If this is not a valid OSGi version, it will be converted to
* a {@link MavenVersion} and translated to a valid OSGi version.
* @return the bundle file
* @throws Exception if any error occurs while reading the source file or writing the destination bundle.
*/
public File wrap( String version ) throws Exception {
if ( !jarFile.isFile() ) {
throw new IllegalArgumentException( "Not a file: " + jarFile );
}
if ( version.trim().isEmpty() ) {
throw new IllegalArgumentException( "Version must not be empty" );
}
try ( ZipFile input = new ZipFile( jarFile, ZipFile.OPEN_READ ) ) {
if ( isBundle( input ) ) {
return jarFile;
}
}
final String name = ( artifactName == null ?
subtract( jarFile.getName(), ".jar" ) : artifactName );
try ( Jar newJar = new Jar( jarFile ) ) {
Analyzer analyzer = new Analyzer();
analyzer.setJar( newJar );
analyzer.setBundleVersion( Version.isVersion( version ) ?
Version.parseVersion( version ) :
MavenVersion.parseString( version ).getOSGiVersion() );
analyzer.setBundleSymbolicName( name );
analyzer.setImportPackage( importInstructions );
analyzer.setExportPackage( exportInstructions );
File bundle = destination == null ?
new File( jarFile.getParentFile(), name + "-osgi.jar" ) :
destination;
Manifest manifest = analyzer.calcManifest();
return updateManifest( newJar, bundle, manifest );
}
}
开发者ID:renatoathaydes,项目名称:osgiaas,代码行数:48,代码来源:JarWrapper.java
示例14: updateManifest
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private static File updateManifest( Jar newJar, File bundle, Manifest manifest )
throws Exception {
verifyDestinationFileCanBeWritten( bundle );
newJar.setManifest( manifest );
newJar.write( bundle );
return bundle;
}
开发者ID:renatoathaydes,项目名称:osgiaas,代码行数:8,代码来源:JarWrapper.java
示例15: loadOldClassesFromFolder
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
@Override
public void loadOldClassesFromFolder(File jarFile) throws RuntimeException {
try {
oldJar = new Jar(jarFile);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
开发者ID:cbrun,项目名称:baseliner,代码行数:10,代码来源:BndApiComparator.java
示例16: isProvidedByJar
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private boolean isProvidedByJar(Jar jar) {
for (String s : jar.getPackages()) {
if (matches(s)) {
return true;
}
}
return false;
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:9,代码来源:ImportedPackageRangeFixer.java
示例17: testWithoutReferred
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
@Test
public void testWithoutReferred() throws Exception {
ImportedPackageRangeFixer fixer = new ImportedPackageRangeFixer();
Reporter reporter = mock(Reporter.class);
fixer.setReporter(reporter);
fixer.setProperties(Collections.<String, String>emptyMap());
Analyzer analyzer = new Analyzer();
analyzer.setClasspath(new Jar[] {
new Jar("foo")
});
fixer.analyzeJar(analyzer);
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:14,代码来源:ImportedPackageRangeFixerTest.java
示例18: createJarFromClasspath
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
private Jar createJarFromClasspath(String name) throws IOException {
List<URL> list = new ArrayList<>();
if (this.getClass().getClassLoader() instanceof URLClassLoader) {
URL[] urls = ((URLClassLoader) this.getClass().getClassLoader()).getURLs();
for (URL url : urls) {
list.add(url);
if (url.toExternalForm().contains(name)) {
return new Jar(url.getFile(), url.getPath());
}
}
}
throw new IllegalArgumentException("Cannot find " + name + " in classpath - " + list);
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:15,代码来源:ImportedPackageRangeFixerTest.java
示例19: build
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
/**
* Adds all the resources found in the given classpath to the given jar. Are excluded resources matching the
* 'doNotCopy' pattern.
*
* @param jar the jar in which the resources are added
* @param classpath the classpath
* @param doNotCopy the do not copy pattern
*/
public static void build(Jar jar, ClassPath classpath, Pattern doNotCopy) {
ImmutableSet<ClassPath.ResourceInfo> resources = classpath.getResources();
for (ClassPath.ResourceInfo resource : resources) {
if (doNotCopy != null && doNotCopy.matcher(resource.getResourceName()).matches()) {
continue;
}
jar.putResource(resource.getResourceName(), new ClassPathResource(resource));
}
}
开发者ID:wisdom-framework,项目名称:wisdom,代码行数:18,代码来源:ClassPathResource.java
示例20: execute
import aQute.bnd.osgi.Jar; //导入依赖的package包/类
public boolean execute() {
Analyzer analyzer = new Builder();
try {
Jar jar = new Jar(new File(inputJar)); // where our data is
analyzer.setJar(jar); // give bnd the contents
// You can provide additional class path entries to allow
// bnd to pickup export version from the packageinfo file,
// Version annotation, or their manifests.
analyzer.addClasspath(classpath);
setProperties(analyzer);
// analyzer.setProperty("DESTDIR");
// analyzer.setBase();
// ------------- let's begin... -------------------------
// Analyze the target JAR first
analyzer.analyze();
// Scan the JAR for Felix SCR annotations and generate XML files
Map<String, String> properties = Maps.newHashMap();
SCRDescriptorBndPlugin scrDescriptorBndPlugin = new SCRDescriptorBndPlugin();
scrDescriptorBndPlugin.setProperties(properties);
scrDescriptorBndPlugin.setReporter(analyzer);
scrDescriptorBndPlugin.analyzeJar(analyzer);
if (includeResources != null) {
doIncludeResources(analyzer);
}
// Repack the JAR as a WAR
doWabStaging(analyzer);
// Calculate the manifest
Manifest manifest = analyzer.calcManifest();
//OutputStream s = new FileOutputStream("/tmp/foo2.txt");
//manifest.write(s);
//s.close();
if (analyzer.isOk()) {
analyzer.getJar().setManifest(manifest);
if (analyzer.save(new File(outputJar), true)) {
log("Saved!\n");
} else {
warn("Failed to create jar \n");
return false;
}
} else {
warn("Analyzer Errors:\n%s\n", analyzer.getErrors());
return false;
}
analyzer.close();
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
开发者ID:shlee89,项目名称:athena,代码行数:64,代码来源:OSGiWrapper.java
注:本文中的aQute.bnd.osgi.Jar类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论