private static SimpleFilter getFilter(Map<String, String> directives, Map<String, Object> attributes) { String filter = directives.get(Constants.FILTER_DIRECTIVE); if (filter != null) { return SimpleFilter.parse(filter); } else { return SimpleFilter.convert(attributes); } } }
private static SimpleFilter getFilter(Map<String, String> directives, Map<String, Object> attributes) { String filter = directives.get(Constants.FILTER_DIRECTIVE); if (filter != null) { return SimpleFilter.parse(filter); } else { return SimpleFilter.convert(attributes); } } }
/** * @return map of bundles and the region they are deployed in */ public Map<Resource, String> getBundles() { if (bundles == null) { String filter = String.format("(&(%s=*)(|(%s=%s)(%s=%s)))", IDENTITY_NAMESPACE, CAPABILITY_TYPE_ATTRIBUTE, TYPE_BUNDLE, CAPABILITY_TYPE_ATTRIBUTE, TYPE_FRAGMENT); SimpleFilter sf = SimpleFilter.parse(filter); bundles = getResourceMapping(sf); } return bundles; }
@Override public Collection<Resource> getMandatoryResources() { List<Resource> resources = new ArrayList<>(); Requirement req = new RequirementImpl( null, IDENTITY_NAMESPACE, Collections.emptyMap(), Collections.emptyMap(), SimpleFilter.parse("(" + IDENTITY_NAMESPACE + "=root)")); Collection<Capability> identities = repository.findProviders(Collections.singleton(req)).get(req); for (Capability identity : identities) { resources.add(identity.getResource()); } return resources; }
private static RequirementImpl parseRequirement(XMLStreamReader reader, ResourceImpl resource) throws XMLStreamException { String[] namespace = new String[1]; Map<String, String> directives = new HashMap<>(); Map<String, Object> attributes = new HashMap<>(); parseClause(reader, namespace, directives, attributes); sanityCheckEndElement(reader, reader.getEventType(), REQUIREMENT); String filterStr = directives.get(Constants.FILTER_DIRECTIVE); SimpleFilter sf = (filterStr != null) ? SimpleFilter.parse(filterStr) : SimpleFilter.convert(attributes); return new RequirementImpl(resource, namespace[0], directives, attributes, sf); }
private static RequirementImpl parseRequirement(XMLStreamReader reader, ResourceImpl resource) throws XMLStreamException { String[] namespace = new String[1]; Map<String, String> directives = new HashMap<>(); Map<String, Object> attributes = new HashMap<>(); parseClause(reader, namespace, directives, attributes); sanityCheckEndElement(reader, reader.getEventType(), REQUIREMENT); String filterStr = directives.get(Constants.FILTER_DIRECTIVE); SimpleFilter sf = (filterStr != null) ? SimpleFilter.parse(filterStr) : SimpleFilter.convert(attributes); return new RequirementImpl(resource, namespace[0], directives, attributes, sf); }
dirs, null, SimpleFilter.parse(filter)));
dirs, null, SimpleFilter.parse(filter)));
@SuppressWarnings("unchecked") private static <T extends Resource> Set<T> collectDependencies(T resource, CapabilitySet capSet) { Set<T> result = new LinkedHashSet<>(); for (Requirement requirement : resource.getRequirements(null)) { String filter = requirement.getDirectives().get(Constants.FILTER_DIRECTIVE); SimpleFilter sf = (filter != null) ? SimpleFilter.parse(filter) : SimpleFilter.MATCH_ALL_FILTER; for (Capability cap : capSet.match(sf, true)) { result.add((T) cap.getResource()); } } return result; }
private static List<Requirement> convertRequireCapabilities( List<ParsedHeaderClause> clauses, Resource resource) throws BundleException { // Now convert generic header clauses into requirements. List<Requirement> reqList = new ArrayList<>(); for (ParsedHeaderClause clause : clauses) { try { String filterStr = clause.dirs.get(Constants.FILTER_DIRECTIVE); SimpleFilter sf = (filterStr != null) ? SimpleFilter.parse(filterStr) : SimpleFilter.convert(clause.attrs); for (String path : clause.paths) { // Create requirement and add to requirement list. reqList.add(new RequirementImpl( resource, path, clause.dirs, clause.attrs, sf)); } } catch (Exception ex) { throw new BundleException("Error creating requirement: " + ex, ex); } } return reqList; }
@Override public Map<Requirement, Collection<Capability>> findProviders(Collection<? extends Requirement> requirements) { Map<Requirement, Collection<Capability>> result = new HashMap<>(); for (Requirement requirement : requirements) { CapabilitySet set = capSets.get(requirement.getNamespace()); if (set != null) { SimpleFilter sf; if (requirement instanceof RequirementImpl) { sf = ((RequirementImpl) requirement).getFilter(); } else { String filter = requirement.getDirectives().get(Constants.FILTER_DIRECTIVE); sf = (filter != null) ? SimpleFilter.parse(filter) : SimpleFilter.MATCH_ALL_FILTER; } result.put(requirement, set.match(sf, true)); } else { result.put(requirement, Collections.<Capability>emptyList()); } } return result; } }
@Override public Map<Requirement, Collection<Capability>> findProviders(Collection<? extends Requirement> requirements) { Map<Requirement, Collection<Capability>> result = new HashMap<>(); for (Requirement requirement : requirements) { CapabilitySet set = capSets.get(requirement.getNamespace()); if (set != null) { SimpleFilter sf; if (requirement instanceof RequirementImpl) { sf = ((RequirementImpl) requirement).getFilter(); } else { String filter = requirement.getDirectives().get(Constants.FILTER_DIRECTIVE); sf = (filter != null) ? SimpleFilter.parse(filter) : SimpleFilter.MATCH_ALL_FILTER; } result.put(requirement, set.match(sf, true)); } else { result.put(requirement, Collections.<Capability>emptyList()); } } return result; } }
private static List<Requirement> convertRequireCapabilities( List<ParsedHeaderClause> clauses, Resource resource) throws BundleException { // Now convert generic header clauses into requirements. List<Requirement> reqList = new ArrayList<>(); for (ParsedHeaderClause clause : clauses) { try { String filterStr = clause.dirs.get(Constants.FILTER_DIRECTIVE); SimpleFilter sf = (filterStr != null) ? SimpleFilter.parse(filterStr) : SimpleFilter.convert(clause.attrs); for (String path : clause.paths) { // Create requirement and add to requirement list. reqList.add(new RequirementImpl( resource, path, clause.dirs, clause.attrs, sf)); } } catch (Exception ex) { throw new BundleException("Error creating requirement: " + ex, ex); } } return reqList; }
SimpleFilter sf = SimpleFilter.parse(reqFilter); return Collections.<Requirement>singletonList(new RequirementImpl( resource,
SimpleFilter sf = SimpleFilter.parse(reqFilter); return Collections.<Requirement>singletonList(new RequirementImpl( resource,
ResourceImpl cloneResource(Resource resource) { ResourceImpl res = new ResourceImpl(); for (Capability cap : resource.getCapabilities(null)) { res.addCapability(new CapabilityImpl(res, cap.getNamespace(), new StringArrayMap<>(cap.getDirectives()), new StringArrayMap<>(cap.getAttributes()))); } for (Requirement req : resource.getRequirements(null)) { SimpleFilter sf; if (req instanceof RequirementImpl) { sf = ((RequirementImpl) req).getFilter(); } else if (req.getDirectives().containsKey(REQUIREMENT_FILTER_DIRECTIVE)) { sf = SimpleFilter.parse(req.getDirectives().get(REQUIREMENT_FILTER_DIRECTIVE)); } else { sf = SimpleFilter.convert(req.getAttributes()); } res.addRequirement(new RequirementImpl(res, req.getNamespace(), new StringArrayMap<>(req.getDirectives()), new StringArrayMap<>(req.getAttributes()), sf)); } return res; }