@Override public Requirement build() { if (rb.getResource() == null) return rb.buildSyntheticRequirement(); return rb.build(); }
@Override public RequirementBuilder addAttribute(String name, Object value) { try { rb.addAttribute(name, value); } catch (Exception e) { throw new RuntimeException(e); } return this; } };
@Override public RequirementBuilder setAttributes(Map<String, Object> attributes) { try { rb.addAttributes(attributes); } catch (Exception e) { throw new RuntimeException(e); } return this; }
public void addImportServices(Parameters importServices) { for (Map.Entry<String, Attrs> e : importServices.entrySet()) { String service = Processor.removeDuplicateMarker(e.getKey()); boolean optional = Constants.RESOLUTION_OPTIONAL.equals(e.getValue() .get("availability:")); boolean multiple = "true".equalsIgnoreCase(e.getValue() .get("multiple:")); StringBuilder filter = new StringBuilder(); filter.append('(') .append(Constants.OBJECTCLASS) .append('=') .append(service) .append(')'); RequirementBuilder rb = new RequirementBuilder(ServiceNamespace.SERVICE_NAMESPACE); rb.addFilter(filter.toString()); rb.addDirective("effective", "active"); if (optional) rb.addDirective(Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE, Constants.RESOLUTION_OPTIONAL); rb.addDirective(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, multiple ? Namespace.CARDINALITY_MULTIPLE : Namespace.CARDINALITY_SINGLE); addRequirement(rb); } }
private Processor findRepositoryAugments(Collection<Repository> orderedRepositories) { Processor main = new Processor(); RequirementBuilder rb = new RequirementBuilder(BND_AUGMENT); rb.filter("(path=*)"); Requirement req = rb.buildSyntheticRequirement(); for (Repository r : orderedRepositories) { Map<Requirement, Collection<Capability>> found = r.findProviders(Collections.singleton(req)); Collection<Capability> capabilities = found.get(req); if (capabilities != null) { for (Capability capability : capabilities) { findAdditionalAugmentsFromResource(main, capability); } } } return main; }
public static CapReqBuilder clone(Requirement requirement) throws Exception { RequirementBuilder builder = new RequirementBuilder(requirement.getNamespace()); builder.addAttributes(requirement.getAttributes()); builder.addDirectives(requirement.getDirectives()); return builder; }
public static RequirementBuilder createRequirementFromCapability(Capability cap) { RequirementBuilder req = new RequirementBuilder(cap.getNamespace()); StringBuilder sb = new StringBuilder("(&"); for (Entry<String, Object> e : cap.getAttributes() .entrySet()) { Object v = e.getValue(); if (v instanceof Version || e.getKey() .equals("version")) { VersionRange r = new VersionRange(v.toString()); String filter = r.toFilter(); sb.append(filter); } else sb.append("(") .append(e.getKey()) .append("=") .append(escapeFilterValue((String) v)) .append(")"); } sb.append(")"); req.and(sb.toString()); return req; }
public RequirementBuilder addFilter(String filter) { addDirective("filter", filter); return this; }
public Requirement getIdentity(Resource resource) { IdentityCapability identityCapability = getIdentityCapability(resource); return createRequirementFromCapability(identityCapability).buildSyntheticRequirement(); }
@Override public RequirementBuilder newRequirementBuilder(String namespace) { final aQute.bnd.osgi.resource.RequirementBuilder rb = new aQute.bnd.osgi.resource.RequirementBuilder(namespace); return new RequirementBuilder() {
@Override public RequirementBuilder setDirectives(Map<String, String> directives) { rb.addDirectives(directives); return this; }
public void addImportServices(Parameters importServices) { for (Map.Entry<String, Attrs> e : importServices.entrySet()) { String service = Processor.removeDuplicateMarker(e.getKey()); boolean optional = Constants.RESOLUTION_OPTIONAL.equals(e.getValue() .get("availability:")); boolean multiple = "true".equalsIgnoreCase(e.getValue() .get("multiple:")); StringBuilder filter = new StringBuilder(); filter.append('(') .append(Constants.OBJECTCLASS) .append('=') .append(service) .append(')'); RequirementBuilder rb = new RequirementBuilder(ServiceNamespace.SERVICE_NAMESPACE); rb.addFilter(filter.toString()); rb.addDirective("effective", "active"); if (optional) rb.addDirective(Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE, Constants.RESOLUTION_OPTIONAL); rb.addDirective(Namespace.REQUIREMENT_CARDINALITY_DIRECTIVE, multiple ? Namespace.CARDINALITY_MULTIPLE : Namespace.CARDINALITY_SINGLE); addRequirement(rb); } }
private Processor findRepositoryAugments(Collection<Repository> orderedRepositories) { Processor main = new Processor(); RequirementBuilder rb = new RequirementBuilder(BND_AUGMENT); rb.filter("(path=*)"); Requirement req = rb.buildSyntheticRequirement(); for (Repository r : orderedRepositories) { Map<Requirement, Collection<Capability>> found = r.findProviders(Collections.singleton(req)); Collection<Capability> capabilities = found.get(req); if (capabilities != null) { for (Capability capability : capabilities) { findAdditionalAugmentsFromResource(main, capability); } } } return main; }
public static CapReqBuilder clone(Requirement requirement) throws Exception { RequirementBuilder builder = new RequirementBuilder(requirement.getNamespace()); builder.addAttributes(requirement.getAttributes()); builder.addDirectives(requirement.getDirectives()); return builder; }
public static RequirementBuilder createRequirementFromCapability(Capability cap) { RequirementBuilder req = new RequirementBuilder(cap.getNamespace()); StringBuilder sb = new StringBuilder("(&"); for (Entry<String, Object> e : cap.getAttributes() .entrySet()) { Object v = e.getValue(); if (v instanceof Version || e.getKey() .equals("version")) { VersionRange r = new VersionRange(v.toString()); String filter = r.toFilter(); sb.append(filter); } else sb.append("(") .append(e.getKey()) .append("=") .append(escapeFilterValue((String) v)) .append(")"); } sb.append(")"); req.and(sb.toString()); return req; }
@Override public RequirementBuilder addDirective(String name, String value) { rb.addDirective(name, value); return this; }
public Requirement getIdentity(Resource resource) { IdentityCapability identityCapability = getIdentityCapability(resource); return createRequirementFromCapability(identityCapability).buildSyntheticRequirement(); }
@Override public RequirementBuilder newRequirementBuilder(String namespace) { final aQute.bnd.osgi.resource.RequirementBuilder rb = new aQute.bnd.osgi.resource.RequirementBuilder(namespace); return new RequirementBuilder() {
@Override public RequirementBuilder setDirectives(Map<String, String> directives) { rb.addDirectives(directives); return this; }
List<String> options = new LinkedList<>(); RequirementBuilder rb = new RequirementBuilder(NativeNamespace.NATIVE_NAMESPACE); FilterBuilder sb = new FilterBuilder(); sb.or(); rb.addDirective("resolution", "optional"); rb.addFilter(sb.toString()); return rb;