Search in sources :

Example 6 with ResourceImpl

use of org.apache.karaf.features.internal.resolver.ResourceImpl in project karaf by apache.

the class Subsystem method cloneResource.

ResourceImpl cloneResource(Resource resource) {
    ResourceImpl res = new ResourceImpl();
    for (Capability cap : resource.getCapabilities(null)) {
        res.addCapability(new CapabilityImpl(res, cap.getNamespace(), new HashMap<>(cap.getDirectives()), new HashMap<>(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 HashMap<>(req.getDirectives()), new HashMap<>(req.getAttributes()), sf));
    }
    return res;
}
Also used : ResourceUtils.addIdentityRequirement(org.apache.karaf.features.internal.resolver.ResourceUtils.addIdentityRequirement) ResourceUtils.toFeatureRequirement(org.apache.karaf.features.internal.resolver.ResourceUtils.toFeatureRequirement) Requirement(org.osgi.resource.Requirement) ResourceImpl(org.apache.karaf.features.internal.resolver.ResourceImpl) CapabilityImpl(org.apache.karaf.features.internal.resolver.CapabilityImpl) RequirementImpl(org.apache.karaf.features.internal.resolver.RequirementImpl) Capability(org.osgi.resource.Capability) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) SimpleFilter(org.apache.karaf.features.internal.resolver.SimpleFilter)

Aggregations

ResourceImpl (org.apache.karaf.features.internal.resolver.ResourceImpl)6 CapabilityImpl (org.apache.karaf.features.internal.resolver.CapabilityImpl)3 Resource (org.osgi.resource.Resource)3 HashMap (java.util.HashMap)2 Map (java.util.Map)2 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)2 BaseRepository (org.apache.karaf.features.internal.repository.BaseRepository)2 Capability (org.osgi.resource.Capability)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Location (javax.xml.stream.Location)1 XMLStreamException (javax.xml.stream.XMLStreamException)1 DictionaryAsMap (org.apache.felix.utils.collections.DictionaryAsMap)1 Clause (org.apache.felix.utils.manifest.Clause)1 BundleInfo (org.apache.karaf.features.BundleInfo)1 Conditional (org.apache.karaf.features.Conditional)1 Library (org.apache.karaf.features.Library)1 Downloader (org.apache.karaf.features.internal.download.Downloader)1 CapabilitySet (org.apache.karaf.features.internal.resolver.CapabilitySet)1 FeatureResource (org.apache.karaf.features.internal.resolver.FeatureResource)1