Search in sources :

Example 41 with BndEditModel

use of aQute.bnd.build.model.BndEditModel in project bnd by bndtools.

the class BndrunResolveContextTest method testBasicFindProviders.

public static void testBasicFindProviders() {
    MockRegistry registry = new MockRegistry();
    registry.addPlugin(createRepo(IO.getFile("testdata/repo1.index.xml")));
    BndEditModel runModel = new BndEditModel();
    BndrunResolveContext context = new BndrunResolveContext(runModel, registry, log);
    Requirement req = new CapReqBuilder("osgi.wiring.package").addDirective("filter", "(osgi.wiring.package=org.apache.felix.gogo.api)").buildSyntheticRequirement();
    List<Capability> providers = context.findProviders(req);
    assertEquals(1, providers.size());
    Resource resource = providers.get(0).getResource();
    assertEquals(IO.getFile("testdata/repo1/org.apache.felix.gogo.runtime-0.10.0.jar").toURI(), findContentURI(resource));
}
Also used : CapReqBuilder(aQute.bnd.osgi.resource.CapReqBuilder) Requirement(org.osgi.resource.Requirement) Capability(org.osgi.resource.Capability) IdentityCapability(aQute.bnd.osgi.resource.ResourceUtils.IdentityCapability) MockRegistry(test.lib.MockRegistry) Resource(org.osgi.resource.Resource) BndEditModel(aQute.bnd.build.model.BndEditModel)

Example 42 with BndEditModel

use of aQute.bnd.build.model.BndEditModel in project bnd by bndtools.

the class BndrunResolveContextTest method testDontResolveBuildOnlyLibraries.

public static void testDontResolveBuildOnlyLibraries() {
    MockRegistry registry = new MockRegistry();
    registry.addPlugin(createRepo(IO.getFile("testdata/buildrepo.index.xml")));
    BndEditModel runModel = new BndEditModel();
    BndrunResolveContext context;
    context = new BndrunResolveContext(runModel, registry, log);
    List<Capability> providers1 = context.findProviders(CapReqBuilder.createPackageRequirement("org.osgi.framework", null).buildSyntheticRequirement());
    assertEquals(0, providers1.size());
    context = new BndrunResolveContext(runModel, registry, log);
    List<Capability> providers2 = context.findProviders(CapReqBuilder.createPackageRequirement("java.security", null).buildSyntheticRequirement());
    assertEquals(0, providers2.size());
}
Also used : Capability(org.osgi.resource.Capability) IdentityCapability(aQute.bnd.osgi.resource.ResourceUtils.IdentityCapability) MockRegistry(test.lib.MockRegistry) BndEditModel(aQute.bnd.build.model.BndEditModel)

Example 43 with BndEditModel

use of aQute.bnd.build.model.BndEditModel in project bndtools by bndtools.

the class EnrouteProjectTemplate method generateBndFile.

private Resource generateBndFile(String projectName, String pkg) {
    BndEditModel model = new BndEditModel();
    model.setPrivatePackages(Arrays.asList(new String[] { pkg + ".provider" }));
    model.setExportedPackages(Arrays.asList(new ExportedPackage(projectName + ".api", new Attrs())));
    model.setBundleDescription("${warning:please explain what this bundle does}");
    model.setBundleVersion("1.0.0.${tstamp}");
    List<VersionedClause> buildPath = new ArrayList<VersionedClause>();
    List<VersionedClause> tmp;
    tmp = model.getBuildPath();
    if (tmp != null)
        buildPath.addAll(tmp);
    Attrs attrs = new Attrs();
    attrs.put("version", "@1.0");
    buildPath.add(new VersionedClause("osgi.enroute.base.api", attrs));
    buildPath.add(new VersionedClause("osgi.enroute.base.junit", attrs));
    model.setBuildPath(buildPath);
    Document doc = new Document("");
    model.saveChangesTo(doc);
    StringResource bndBndResource = new StringResource(doc.get());
    return bndBndResource;
}
Also used : StringResource(org.bndtools.templating.StringResource) VersionedClause(aQute.bnd.build.model.clauses.VersionedClause) ExportedPackage(aQute.bnd.build.model.clauses.ExportedPackage) Attrs(aQute.bnd.header.Attrs) ArrayList(java.util.ArrayList) Document(aQute.bnd.properties.Document) BndEditModel(aQute.bnd.build.model.BndEditModel)

Example 44 with BndEditModel

use of aQute.bnd.build.model.BndEditModel in project bnd by bndtools.

the class JpmRepoTest method testScr.

public void testScr() {
    Repository repo = ws.getPlugin(Repository.class);
    BndEditModel model = new BndEditModel();
    model.setRunFw("org.apache.felix.framework");
    List<Requirement> requires = new ArrayList<Requirement>();
    CapReqBuilder capReq = CapReqBuilder.createSimpleRequirement("osgi.extender", "osgi.component", "[1.1,2)");
    requires.add(capReq.buildSyntheticRequirement());
    Map<Requirement, Collection<Capability>> shell = repo.findProviders(requires);
    assertNotNull(shell);
    assertEquals(1, shell.size());
}
Also used : CapReqBuilder(aQute.bnd.osgi.resource.CapReqBuilder) Requirement(org.osgi.resource.Requirement) InfoRepository(aQute.bnd.service.repository.InfoRepository) Repository(org.osgi.service.repository.Repository) ArrayList(java.util.ArrayList) Collection(java.util.Collection) BndEditModel(aQute.bnd.build.model.BndEditModel)

Example 45 with BndEditModel

use of aQute.bnd.build.model.BndEditModel in project bnd by bndtools.

the class ResolveTest method testResolveWithDistro.

/**
	 * Test if we can resolve with a distro
	 * 
	 * @throws ResolutionException
	 */
public void testResolveWithDistro() throws ResolutionException {
    MockRegistry registry = new MockRegistry();
    registry.addPlugin(createRepo(IO.getFile("testdata/repo3.index.xml")));
    BndEditModel model = new BndEditModel();
    model.setDistro(Arrays.asList("testdata/distro.jar;version=file"));
    List<Requirement> requires = new ArrayList<Requirement>();
    CapReqBuilder capReq = CapReqBuilder.createBundleRequirement("org.apache.felix.gogo.shell", "[0,1)");
    requires.add(capReq.buildSyntheticRequirement());
    model.setRunRequires(requires);
    BndrunResolveContext context = new BndrunResolveContext(model, registry, log);
    context.setLevel(0);
    context.init();
    Resolver resolver = new BndResolver(new ResolverLogger(4));
    Map<Resource, List<Wire>> resolved = resolver.resolve(context);
    Set<Resource> resources = resolved.keySet();
    Resource shell = getResource(resources, "org.apache.felix.gogo.shell", "0.10.0");
    assertNotNull(shell);
}
Also used : CapReqBuilder(aQute.bnd.osgi.resource.CapReqBuilder) Resolver(org.osgi.service.resolver.Resolver) MockRegistry(test.lib.MockRegistry) ArrayList(java.util.ArrayList) Resource(org.osgi.resource.Resource) Requirement(org.osgi.resource.Requirement) ArrayList(java.util.ArrayList) List(java.util.List) BndEditModel(aQute.bnd.build.model.BndEditModel)

Aggregations

BndEditModel (aQute.bnd.build.model.BndEditModel)55 Requirement (org.osgi.resource.Requirement)35 MockRegistry (test.lib.MockRegistry)34 CapReqBuilder (aQute.bnd.osgi.resource.CapReqBuilder)32 IdentityCapability (aQute.bnd.osgi.resource.ResourceUtils.IdentityCapability)25 Capability (org.osgi.resource.Capability)25 File (java.io.File)15 Resource (org.osgi.resource.Resource)15 ArrayList (java.util.ArrayList)12 Document (aQute.bnd.properties.Document)8 List (java.util.List)7 Workspace (aQute.bnd.build.Workspace)6 Resolver (org.osgi.service.resolver.Resolver)6 ExportedPackage (aQute.bnd.build.model.clauses.ExportedPackage)5 VersionedClause (aQute.bnd.build.model.clauses.VersionedClause)5 IOException (java.io.IOException)5 HashMap (java.util.HashMap)5 IFile (org.eclipse.core.resources.IFile)4 CoreException (org.eclipse.core.runtime.CoreException)4 ResolutionException (org.osgi.service.resolver.ResolutionException)4