use of org.apache.ivy.osgi.core.BundleInfo in project ant-ivy by apache.
the class PluginAdapter method featureAsBundle.
public static BundleInfo featureAsBundle(URI baseUri, EclipseFeature feature) {
BundleInfo b = new BundleInfo(feature.getId(), feature.getVersion());
URI uri;
if (feature.getUrl() == null) {
uri = baseUri.resolve("features/" + feature.getId() + '_' + feature.getVersion() + ".jar");
} else {
uri = baseUri.resolve(feature.getUrl());
}
b.addArtifact(new BundleArtifact(false, uri, null));
b.setDescription(feature.getDescription());
b.setLicense(feature.getLicense());
for (EclipsePlugin plugin : feature.getPlugins()) {
BundleRequirement r = new BundleRequirement(BundleInfo.BUNDLE_TYPE, plugin.getId(), new VersionRange(plugin.getVersion()), null);
b.addRequirement(r);
}
for (Require require : feature.getRequires()) {
String id;
if (require.getPlugin() != null) {
id = require.getPlugin();
} else {
id = require.getFeature();
}
VersionRange range;
if (require.getMatch().equals("greaterOrEqual")) {
range = new VersionRange(require.getVersion());
} else {
throw new IllegalStateException("unsupported match " + require.getMatch());
}
BundleRequirement r = new BundleRequirement(BundleInfo.BUNDLE_TYPE, id, range, null);
b.addRequirement(r);
}
return b;
}
use of org.apache.ivy.osgi.core.BundleInfo in project ant-ivy by apache.
the class PluginAdapter method pluginAsBundle.
public static BundleInfo pluginAsBundle(URI baseUri, EclipsePlugin plugin) {
BundleInfo b = new BundleInfo(plugin.getId(), plugin.getVersion());
URI uri = baseUri.resolve("plugins/" + plugin.getId() + '_' + plugin.getVersion() + ".jar");
b.addArtifact(new BundleArtifact(false, uri, null));
return b;
}
use of org.apache.ivy.osgi.core.BundleInfo in project ant-ivy by apache.
the class OBRXMLWriter method writeBundles.
public static void writeBundles(Iterable<BundleInfo> bundleInfos, ContentHandler handler) throws SAXException {
handler.startDocument();
AttributesImpl atts = new AttributesImpl();
handler.startElement("", RepositoryHandler.REPOSITORY, RepositoryHandler.REPOSITORY, atts);
for (BundleInfo bundleInfo : bundleInfos) {
saxBundleInfo(bundleInfo, handler);
}
handler.endElement("", RepositoryHandler.REPOSITORY, RepositoryHandler.REPOSITORY);
handler.endDocument();
}
use of org.apache.ivy.osgi.core.BundleInfo in project ant-ivy by apache.
the class OBRResolverTest method genericTestResolve.
private void genericTestResolve(String jarName, String conf, ModuleRevisionId[] expectedMrids, ModuleRevisionId[] expected2Mrids) throws Exception {
JarInputStream jis = new JarInputStream(new FileInputStream("test/test-repo/bundlerepo/" + jarName));
Manifest manifest = jis.getManifest();
jis.close();
BundleInfo bundleInfo = ManifestParser.parseManifest(manifest);
bundleInfo.addArtifact(new BundleArtifact(false, new File("test/test-repo/bundlerepo/" + jarName).toURI(), null));
DefaultModuleDescriptor md = BundleInfoAdapter.toModuleDescriptor(OSGiManifestParser.getInstance(), null, bundleInfo, profileProvider);
ResolveReport resolveReport = ivy.resolve(md, new ResolveOptions().setConfs(new String[] { conf }).setOutputReport(false));
assertFalse("resolve failed " + resolveReport.getAllProblemMessages(), resolveReport.hasError());
Set<ModuleRevisionId> actual = new HashSet<>();
for (Artifact artifact : resolveReport.getArtifacts()) {
actual.add(artifact.getModuleRevisionId());
}
Set<ModuleRevisionId> expected = new HashSet<>(Arrays.asList(expectedMrids));
if (expected2Mrids != null) {
// in this use case, we have two choices, let's try the second one
try {
Set<ModuleRevisionId> expected2 = new HashSet<>(Arrays.asList(expected2Mrids));
assertEquals(expected2, actual);
// test passed
return;
} catch (AssertionError e) {
// too bad, let's continue
}
}
assertEquals(expected, actual);
}
use of org.apache.ivy.osgi.core.BundleInfo in project ant-ivy by apache.
the class OBRResolverTest method genericTestFailingResolve.
private void genericTestFailingResolve(String jarName, String conf) throws Exception {
JarInputStream jis = new JarInputStream(new FileInputStream("test/test-repo/bundlerepo/" + jarName));
Manifest manifest = jis.getManifest();
jis.close();
BundleInfo bundleInfo = ManifestParser.parseManifest(manifest);
bundleInfo.addArtifact(new BundleArtifact(false, new File("test/test-repo/bundlerepo/" + jarName).toURI(), null));
DefaultModuleDescriptor md = BundleInfoAdapter.toModuleDescriptor(OSGiManifestParser.getInstance(), null, bundleInfo, manifest, profileProvider);
ResolveReport resolveReport = ivy.resolve(md, new ResolveOptions().setConfs(new String[] { conf }).setOutputReport(false));
assertTrue(resolveReport.hasError());
}
Aggregations