use of org.apache.felix.resolver.Logger in project felix by apache.
the class ResolverTest method testScenario2.
@Test
public void testScenario2() throws Exception {
Resolver resolver = new ResolverImpl(new Logger(Logger.LOG_DEBUG));
Map<Resource, Wiring> wirings = new HashMap<Resource, Wiring>();
Map<Requirement, List<Capability>> candMap = new HashMap<Requirement, List<Capability>>();
List<Resource> mandatory = populateScenario2(wirings, candMap);
ResolveContextImpl rci = new ResolveContextImpl(wirings, candMap, mandatory, Collections.<Resource>emptyList());
Map<Resource, List<Wire>> wireMap = resolver.resolve(rci);
assertEquals(2, wireMap.size());
Resource bRes = findResource("B", wireMap.keySet());
List<Wire> bWires = wireMap.get(bRes);
assertEquals(0, bWires.size());
Resource cRes = findResource("C", wireMap.keySet());
List<Wire> cWires = wireMap.get(cRes);
assertEquals(2, cWires.size());
boolean foundFoo = false;
boolean foundBar = false;
for (Wire w : cWires) {
assertEquals(bRes, w.getProvider());
assertEquals(cRes, w.getRequirer());
Capability cap = w.getCapability();
assertEquals(PackageNamespace.PACKAGE_NAMESPACE, cap.getNamespace());
assertEquals(bRes, cap.getResource());
Map<String, Object> attrs = cap.getAttributes();
assertEquals(1, attrs.size());
Object pkg = attrs.get(PackageNamespace.PACKAGE_NAMESPACE);
if ("foo".equals(pkg)) {
foundFoo = true;
assertEquals(0, cap.getDirectives().size());
} else if ("bar".equals(pkg)) {
foundBar = true;
assertEquals(1, cap.getDirectives().size());
assertEquals("foo", cap.getDirectives().get(PackageNamespace.CAPABILITY_USES_DIRECTIVE));
}
}
assertTrue(foundFoo);
assertTrue(foundBar);
}
use of org.apache.felix.resolver.Logger in project felix by apache.
the class ResolverTest method testScenario17_3.
@Test
public void testScenario17_3() throws Exception {
ResolveContext rci = populateScenario17(true, false, false);
ResolverImpl resolver = new ResolverImpl(new Logger(Logger.LOG_DEBUG), 1);
resolver.resolve(rci);
}
use of org.apache.felix.resolver.Logger in project felix by apache.
the class ResolverTest method testScenario17_4.
@Test
public void testScenario17_4() throws Exception {
ResolveContext rci = populateScenario17(true, false, true);
ResolverImpl resolver = new ResolverImpl(new Logger(Logger.LOG_DEBUG), 1);
resolver.resolve(rci);
}
use of org.apache.felix.resolver.Logger in project felix by apache.
the class ResolverTest method testScenario12.
/**
* Test dynamic resolution with an unresolvable host
*/
@Test(expected = ResolutionException.class)
public void testScenario12() throws Exception {
ResolverImpl resolver = new ResolverImpl(new Logger(Logger.LOG_DEBUG), 1);
Map<Resource, Wiring> wirings = new HashMap<Resource, Wiring>();
Map<Requirement, List<Capability>> candMap = new HashMap<Requirement, List<Capability>>();
ResourceImpl a1 = new ResourceImpl("A");
Capability a1_hostCap = addCap(a1, HostNamespace.HOST_NAMESPACE, "A");
ResourceImpl b1 = new ResourceImpl("B");
Requirement b_pkgReq1 = addReq(b1, PackageNamespace.PACKAGE_NAMESPACE, "org.foo.a");
ResourceImpl c1 = new ResourceImpl("C");
Capability c_hostCap = addCap(c1, HostNamespace.HOST_NAMESPACE, "A");
Capability c_pkgCap = addCap(c1, PackageNamespace.PACKAGE_NAMESPACE, "org.foo.a");
Requirement c_pkgReq1 = addReq(c1, PackageNamespace.PACKAGE_NAMESPACE, "org.foo.b");
candMap.put(b_pkgReq1, Collections.singletonList(c_pkgCap));
candMap.put(c_pkgReq1, Collections.<Capability>emptyList());
Map<Resource, List<Wire>> wires = new HashMap<Resource, List<Wire>>();
wires.put(a1, new ArrayList<Wire>());
wires.put(b1, new ArrayList<Wire>());
Map<Resource, List<Wire>> invertedWires = new HashMap<Resource, List<Wire>>();
invertedWires.put(a1, new ArrayList<Wire>());
invertedWires.put(b1, new ArrayList<Wire>());
wirings.put(a1, new SimpleWiring(a1, Collections.<Capability>emptyList(), wires, invertedWires));
wirings.put(b1, new SimpleWiring(b1, Collections.<Capability>emptyList(), wires, invertedWires));
ResolveContextImpl rci = new ResolveContextImpl(wirings, candMap, Collections.<Resource>emptyList(), Collections.<Resource>emptyList());
List<Capability> caps = new ArrayList<Capability>();
caps.add(c_pkgCap);
Map<Resource, List<Wire>> wireMap = resolver.resolve(rci, b1, b_pkgReq1, caps);
assertEquals(0, wireMap.size());
}
Aggregations