Package org.osgi.resource

Examples of org.osgi.resource.Resource


    }

    public static List<Resource> copyResources(AbstractIndexedRepo sourceRepo, AbstractIndexedRepo targetRepo, List<Resource> resources) throws Exception {
        List<Resource> targetResources = new LinkedList<Resource>();
        for (Resource resource : resources) {
            Resource targetResource = copyResource(sourceRepo, targetRepo, resource);
            targetResources.add(targetResource);
        }
        return targetResources;
    }
View Full Code Here


        List<Resource> resources = findResources(sourceRepo, requirement);

        for (Resource resource : resources) {
            List<Resource> existingResources = findResources(targetRepo, getIdentityVersionRequirement(resource));
            if (existingResources.size() == 0) {
                Resource copied = copyResource(sourceRepo, targetRepo, resource);
                System.out.println("copied: " + copied);
            }
            else {
                System.out.println("skipped: " + existingResources.get(0));
            }
View Full Code Here

        Map<Resource,List<Wire>> wirings = resolver.resolve(rc);
        removeFrameworkAndInputResources(wirings, rc);

        // Remove requiredResources
        for (Iterator<Resource> iter = wirings.keySet().iterator(); iter.hasNext();) {
            Resource resource = iter.next();
            if (requiredResources.contains(resource))
                iter.remove();
        }

        return invertWirings(wirings);
View Full Code Here

            optional = invertWirings(optionalWirings);
            removeFrameworkAndInputResources(optional, resolveContext);

            // Remove required resources from optional resource map
            for (Iterator<Resource> iter = optional.keySet().iterator(); iter.hasNext();) {
                Resource resource = iter.next();
                if (required.containsKey(resource))
                    iter.remove();
            }

            return true;
View Full Code Here

     * resourceReasons.put(cap, capRequirements); } capRequirements.add(req); } } } } }
     */

    private static void removeFrameworkAndInputResources(Map<Resource,List<Wire>> resourceMap, BndrunResolveContext rc) {
        for (Iterator<Resource> iter = resourceMap.keySet().iterator(); iter.hasNext();) {
            Resource resource = iter.next();
            if (rc.isInputRequirementsResource(resource) || rc.isFrameworkResource(resource))
                iter.remove();
        }
    }
View Full Code Here

     * reasons for each resource being present in the result.
     */
    private static Map<Resource,List<Wire>> invertWirings(Map<Resource, ? extends Collection<Wire>> wirings) {
        Map<Resource,List<Wire>> inverted = new HashMap<Resource,List<Wire>>();
        for (Entry<Resource, ? extends Collection<Wire>> entry : wirings.entrySet()) {
            Resource requirer = entry.getKey();
            for (Wire wire : entry.getValue()) {
                Resource provider = wire.getProvider();

                // Filter out self-capabilities, i.e. requirer and provider are same
                if (provider == requirer)
                    continue;

View Full Code Here

  ResourceHandle findExactMatch(String identity, String version) throws Exception {
    VersionRange range = new VersionRange(version);
    if (range.isRange())
      return null;
    Resource resource = identityMap.getExact(identity, range.getLow());
    if (resource == null)
      return null;
    return mapResourceToHandle(resource);
  }
View Full Code Here

        }
      }

      // Next find out if the requirement is satisfied by a capability on
      // the same resource
      Resource resource = requirement.getResource();
      if (resource != null) {
        List<Capability> selfCaps = resource.getCapabilities(requirement.getNamespace());
        if (selfCaps != null) {
          for (Capability selfCap : selfCaps) {
            if (matches(requirement, selfCap))
              firstStageResult.add(selfCap);
          }
View Full Code Here

    public CapabilityComparator() {}

    public int compare(Capability o1, Capability o2) {

      Resource res1 = o1.getResource();
      Resource res2 = o2.getResource();

      // 1. Framework bundle
      if (res1 == getFrameworkResource())
        return -1;
      if (res2 == getFrameworkResource())
        return +1;

      // 2. Wired
      Map<Resource,Wiring> wirings = getWirings();
      Wiring w1 = wirings.get(res1);
      Wiring w2 = wirings.get(res2);

      if (w1 != null && w2 == null)
        return -1;
      if (w1 == null && w2 != null)
        return +1;

      // 3. Input requirements
      if (isInputRequirementResource(res1)) {
        if (!isInputRequirementResource(res2))
          return -1;
      }
      if (isInputRequirementResource(res2)) {
        if (!isInputRequirementResource(res1))
          return +1;
      }

      // 4. Higher package version
      String ns1 = o1.getNamespace();
      String ns2 = o2.getNamespace();
      if (PACKAGE_NAMESPACE.equals(ns1) && PACKAGE_NAMESPACE.equals(ns2)) {
        Version v1 = getVersion(o1, PackageNamespace.CAPABILITY_VERSION_ATTRIBUTE);
        Version v2 = getVersion(o2, PackageNamespace.CAPABILITY_VERSION_ATTRIBUTE);
        if (!v1.equals(v2))
          return v2.compareTo(v1);
      }

      // 5. Higher resource version
      if (BUNDLE_NAMESPACE.equals(ns1) && BUNDLE_NAMESPACE.equals(ns2)) {
        Version v1 = getVersion(o1, BundleNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE);
        Version v2 = getVersion(o2, BundleNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE);
        if (!v1.equals(v2))
          return v2.compareTo(v1);
      } else if (IdentityNamespace.IDENTITY_NAMESPACE.equals(ns1)
          && IdentityNamespace.IDENTITY_NAMESPACE.equals(ns2)) {
        Version v1 = getVersion(o1, IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE);
        Version v2 = getVersion(o2, IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE);
        if (!v1.equals(v2))
          return v2.compareTo(v1);
      }

      // 6. Same package version, higher bundle version
      if (PACKAGE_NAMESPACE.equals(ns1) && PACKAGE_NAMESPACE.equals(ns2)) {
        String bsn1 = (String) o1.getAttributes().get(Constants.BUNDLE_SYMBOLIC_NAME_ATTRIBUTE);
        String bsn2 = (String) o2.getAttributes().get(Constants.BUNDLE_SYMBOLIC_NAME_ATTRIBUTE);
        if (bsn1 != null && bsn1.equals(bsn2)) {
          Version v1 = getVersion(o1, BundleNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE);
          Version v2 = getVersion(o2, BundleNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE);
          if (!v1.equals(v2))
            return v2.compareTo(v1);
        }
      }

      // 7. The resource with the fewest requirements
      int diff = res1.getRequirements(null).size() - res2.getRequirements(null).size();
      if (diff != 0)
        return diff;

      // 8. The resource with most capabilities
      return res2.getCapabilities(null).size() - res1.getCapabilities(null).size();
    }
View Full Code Here

  ResourceHandle findExactMatch(String identity, String version) throws Exception {
    VersionRange range = new VersionRange(version);
    if (range.isRange())
      return null;
    Resource resource = identityMap.getExact(identity, range.getLow());
    if (resource == null)
      return null;
    return mapResourceToHandle(resource);
  }
View Full Code Here

TOP

Related Classes of org.osgi.resource.Resource

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.