use of org.apache.felix.resolver.test.util.GenericCapability in project felix by apache.
the class Main method populateScenario6.
private static List<Resource> populateScenario6(Map<Resource, Wiring> wirings, Map<Requirement, List<Capability>> candMap) {
wirings.clear();
candMap.clear();
ResourceImpl a1 = new ResourceImpl("A");
a1.addRequirement(new PackageRequirement(a1, "p1"));
a1.addRequirement(new PackageRequirement(a1, "p2"));
Requirement a1Req = new GenericRequirement(a1, "generic");
a1Req.getDirectives().put(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, Namespace.CARDINALITY_MULTIPLE);
a1.addRequirement(a1Req);
ResourceImpl a2 = new ResourceImpl("A");
a2.addRequirement(new BundleRequirement(a2, "B"));
a2.addRequirement(new BundleRequirement(a2, "C"));
Requirement a2Req = new GenericRequirement(a2, "generic");
a2Req.getDirectives().put(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, Namespace.CARDINALITY_MULTIPLE);
a2.addRequirement(a2Req);
ResourceImpl b1 = new ResourceImpl("B");
b1.addCapability(new BundleCapability(b1, "B"));
Capability b1_p2 = new PackageCapability(b1, "p2");
b1_p2.getDirectives().put(Namespace.CAPABILITY_USES_DIRECTIVE, "p1");
b1.addCapability(b1_p2);
b1.addRequirement(new PackageRequirement(b1, "p1"));
ResourceImpl b2 = new ResourceImpl("B");
b2.addCapability(new BundleCapability(b2, "B"));
Capability b2_p2 = new PackageCapability(b2, "p2");
b2_p2.getDirectives().put(Namespace.CAPABILITY_USES_DIRECTIVE, "p1");
b2.addCapability(b2_p2);
b2.addRequirement(new PackageRequirement(b2, "p1"));
ResourceImpl c1 = new ResourceImpl("C");
c1.addCapability(new BundleCapability(c1, "C"));
Capability c1_p1 = new PackageCapability(c1, "p1");
ResourceImpl c2 = new ResourceImpl("C");
c2.addCapability(new BundleCapability(c2, "C"));
Capability c2_p1 = new PackageCapability(c2, "p1");
ResourceImpl d1 = new ResourceImpl("D");
GenericCapability d1_generic = new GenericCapability(d1, "generic");
d1_generic.addDirective(Namespace.CAPABILITY_USES_DIRECTIVE, "p1,p2");
d1.addCapability(d1_generic);
d1.addRequirement(new PackageRequirement(d1, "p1"));
d1.addRequirement(new PackageRequirement(d1, "p2"));
ResourceImpl d2 = new ResourceImpl("D");
GenericCapability d2_generic = new GenericCapability(d2, "generic");
d2_generic.addDirective(Namespace.CAPABILITY_USES_DIRECTIVE, "p1,p2");
d2.addCapability(d2_generic);
d2.addRequirement(new PackageRequirement(d2, "p1"));
d2.addRequirement(new PackageRequirement(d2, "p2"));
candMap.put(a1.getRequirements(null).get(0), Arrays.asList(c2_p1));
candMap.put(a1.getRequirements(null).get(1), Arrays.asList(b2_p2));
candMap.put(a1.getRequirements(null).get(2), Arrays.asList((Capability) d1_generic, (Capability) d2_generic));
candMap.put(a2.getRequirements(null).get(0), c2.getCapabilities(BundleNamespace.BUNDLE_NAMESPACE));
candMap.put(a2.getRequirements(null).get(1), b2.getCapabilities(BundleNamespace.BUNDLE_NAMESPACE));
candMap.put(a2.getRequirements(null).get(2), Arrays.asList((Capability) d1_generic, (Capability) d2_generic));
candMap.put(b1.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(b2.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d1.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d1.getRequirements(null).get(1), Arrays.asList(b1_p2, b2_p2));
candMap.put(d2.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d2.getRequirements(null).get(1), Arrays.asList(b1_p2, b2_p2));
List<Resource> resources = new ArrayList<Resource>();
resources.add(a1);
resources.add(a2);
return resources;
}
use of org.apache.felix.resolver.test.util.GenericCapability in project felix by apache.
the class Main method populateScenario7.
private static List<Resource> populateScenario7(Map<Resource, Wiring> wirings, Map<Requirement, List<Capability>> candMap) {
wirings.clear();
candMap.clear();
ResourceImpl a1 = new ResourceImpl("A");
GenericCapability a1_hostCap = new GenericCapability(a1, HostNamespace.HOST_NAMESPACE);
a1_hostCap.addAttribute(HostNamespace.HOST_NAMESPACE, "A");
a1.addCapability(a1_hostCap);
ResourceImpl f1 = new ResourceImpl("F1", IdentityNamespace.TYPE_FRAGMENT, Version.emptyVersion);
GenericRequirement f1_hostReq = new GenericRequirement(f1, HostNamespace.HOST_NAMESPACE);
f1_hostReq.addDirective(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(" + HostNamespace.HOST_NAMESPACE + "=A)");
f1.addRequirement(f1_hostReq);
ResourceImpl f2 = new ResourceImpl("F2", IdentityNamespace.TYPE_FRAGMENT, Version.emptyVersion);
GenericRequirement f2_hostReq = new GenericRequirement(f2, HostNamespace.HOST_NAMESPACE);
f2_hostReq.addDirective(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(" + HostNamespace.HOST_NAMESPACE + "=A)");
f2.addRequirement(f2_hostReq);
ResourceImpl b1 = new ResourceImpl("B");
GenericRequirement b1_identityReq = new GenericRequirement(f2, IdentityNamespace.IDENTITY_NAMESPACE);
b1_identityReq.addDirective(Namespace.REQUIREMENT_FILTER_DIRECTIVE, "(" + IdentityNamespace.IDENTITY_NAMESPACE + "=F2)");
b1.addRequirement(b1_identityReq);
candMap.put(f1.getRequirements(null).get(0), a1.getCapabilities(HostNamespace.HOST_NAMESPACE));
candMap.put(f2.getRequirements(null).get(0), a1.getCapabilities(HostNamespace.HOST_NAMESPACE));
candMap.put(b1.getRequirements(null).get(0), f2.getCapabilities(IdentityNamespace.IDENTITY_NAMESPACE));
List<Resource> resources = new ArrayList<Resource>();
resources.add(a1);
resources.add(f1);
resources.add(f2);
resources.add(b1);
return resources;
}
use of org.apache.felix.resolver.test.util.GenericCapability in project felix by apache.
the class ResolverTest method populateScenario6.
private static List<Resource> populateScenario6(Map<Resource, Wiring> wirings, Map<Requirement, List<Capability>> candMap) {
ResourceImpl a1 = new ResourceImpl("A");
a1.addRequirement(new PackageRequirement(a1, "p1"));
a1.addRequirement(new PackageRequirement(a1, "p2"));
Requirement a1Req = new GenericRequirement(a1, "generic");
a1Req.getDirectives().put(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, Namespace.CARDINALITY_MULTIPLE);
a1.addRequirement(a1Req);
ResourceImpl a2 = new ResourceImpl("A");
a2.addRequirement(new BundleRequirement(a2, "B"));
a2.addRequirement(new BundleRequirement(a2, "C"));
Requirement a2Req = new GenericRequirement(a2, "generic");
a2Req.getDirectives().put(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, Namespace.CARDINALITY_MULTIPLE);
a2.addRequirement(a2Req);
ResourceImpl b1 = new ResourceImpl("B");
b1.addCapability(new BundleCapability(b1, "B"));
Capability b1_p2 = new PackageCapability(b1, "p2");
b1_p2.getDirectives().put(Namespace.CAPABILITY_USES_DIRECTIVE, "p1");
b1.addCapability(b1_p2);
b1.addRequirement(new PackageRequirement(b1, "p1"));
ResourceImpl b2 = new ResourceImpl("B");
b2.addCapability(new BundleCapability(b2, "B"));
Capability b2_p2 = new PackageCapability(b2, "p2");
b2_p2.getDirectives().put(Namespace.CAPABILITY_USES_DIRECTIVE, "p1");
b2.addCapability(b2_p2);
b2.addRequirement(new PackageRequirement(b2, "p1"));
ResourceImpl c1 = new ResourceImpl("C");
c1.addCapability(new BundleCapability(c1, "C"));
Capability c1_p1 = new PackageCapability(c1, "p1");
c1.addCapability(c1_p1);
ResourceImpl c2 = new ResourceImpl("C");
c2.addCapability(new BundleCapability(c2, "C"));
Capability c2_p1 = new PackageCapability(c2, "p1");
c2.addCapability(c2_p1);
ResourceImpl d1 = new ResourceImpl("D");
GenericCapability d1_generic = new GenericCapability(d1, "generic");
d1_generic.addDirective(Namespace.CAPABILITY_USES_DIRECTIVE, "p1,p2");
d1.addCapability(d1_generic);
d1.addRequirement(new PackageRequirement(d1, "p1"));
d1.addRequirement(new PackageRequirement(d1, "p2"));
ResourceImpl d2 = new ResourceImpl("D");
GenericCapability d2_generic = new GenericCapability(d2, "generic");
d2_generic.addDirective(Namespace.CAPABILITY_USES_DIRECTIVE, "p1,p2");
d2.addCapability(d2_generic);
d2.addRequirement(new PackageRequirement(d2, "p1"));
d2.addRequirement(new PackageRequirement(d2, "p2"));
candMap.put(a1.getRequirements(null).get(0), Arrays.asList(c2_p1));
candMap.put(a1.getRequirements(null).get(1), Arrays.asList(b2_p2));
candMap.put(a1.getRequirements(null).get(2), Arrays.asList((Capability) d1_generic, (Capability) d2_generic));
candMap.put(a2.getRequirements(null).get(0), c2.getCapabilities(BundleNamespace.BUNDLE_NAMESPACE));
candMap.put(a2.getRequirements(null).get(1), b2.getCapabilities(BundleNamespace.BUNDLE_NAMESPACE));
candMap.put(a2.getRequirements(null).get(2), Arrays.asList((Capability) d1_generic, (Capability) d2_generic));
candMap.put(b1.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(b2.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d1.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d1.getRequirements(null).get(1), Arrays.asList(b1_p2, b2_p2));
candMap.put(d2.getRequirements(null).get(0), Arrays.asList(c1_p1, c2_p1));
candMap.put(d2.getRequirements(null).get(1), Arrays.asList(b1_p2, b2_p2));
List<Resource> resources = new ArrayList<Resource>();
resources.add(a1);
resources.add(a2);
return resources;
}
use of org.apache.felix.resolver.test.util.GenericCapability in project felix by apache.
the class ResolverTest method addCap.
private static Capability addCap(ResourceImpl res, String namespace, String value, String uses) {
GenericCapability cap = new GenericCapability(res, namespace);
cap.addAttribute(namespace, value);
if (uses != null) {
cap.addDirective("uses", uses);
}
res.addCapability(cap);
return cap;
}
use of org.apache.felix.resolver.test.util.GenericCapability in project felix by apache.
the class BigResolutionTest method parseCapability.
private static void parseCapability(ResourceImpl res, String s) throws BundleException {
List<ClauseParser.ParsedHeaderClause> clauses = ClauseParser.parseStandardHeader(s);
normalizeCapabilityClauses(clauses);
for (ClauseParser.ParsedHeaderClause clause : clauses) {
for (String path : clause.paths) {
GenericCapability capability = new GenericCapability(res, path);
for (Map.Entry<String, String> dir : clause.dirs.entrySet()) {
capability.addDirective(dir.getKey(), dir.getValue());
}
for (Map.Entry<String, Object> attr : clause.attrs.entrySet()) {
capability.addAttribute(attr.getKey(), attr.getValue());
}
res.addCapability(capability);
}
}
}
Aggregations