Package org.osgi.service.indexer

Examples of org.osgi.service.indexer.Builder


  }

  public void analyzeResource(Resource resource, List<Capability> caps, List<Requirement> reqs) throws Exception {
    Resource fwkFactorySvc = resource.getChild(SERVICE_FRAMEWORK_FACTORY);
    if (fwkFactorySvc != null) {
      Builder builder = new Builder().setNamespace(Namespaces.NS_CONTRACT).addAttribute(Namespaces.NS_CONTRACT, Namespaces.CONTRACT_OSGI_FRAMEWORK);

      Version specVersion = null;
      StringBuilder uses = new StringBuilder();
      boolean firstPkg = true;

      for (Capability cap : caps) {
        if (Namespaces.NS_WIRING_PACKAGE.equals(cap.getNamespace())) {
          // Add to the uses directive
          if (!firstPkg)
            uses.append(',');
          String pkgName = (String) cap.getAttributes().get(Namespaces.NS_WIRING_PACKAGE);
          uses.append(pkgName);
          firstPkg = false;

          // If it's org.osgi.framework, get the package version and
          // map to OSGi spec version
          if (FRAMEWORK_PACKAGE.equals(pkgName)) {
            Version frameworkPkgVersion = (Version) cap.getAttributes().get(Namespaces.ATTR_VERSION);
            specVersion = mapFrameworkPackageVersion(frameworkPkgVersion);
          }
        }
      }

      if (specVersion != null)
        builder.addAttribute(Namespaces.ATTR_VERSION, specVersion);

      builder.addDirective(Namespaces.DIRECTIVE_USES, uses.toString());
      caps.add(builder.buildCapability());
    }
  }
View Full Code Here


      return null;
    }
  }

  private static Requirement createRequirement(VersionRange range) {
    Builder builder = new Builder().setNamespace(Namespaces.NS_EXTENDER);

    StringBuilder filter = new StringBuilder();
    filter.append('(').append(Namespaces.NS_EXTENDER).append('=').append(Namespaces.EXTENDER_SCR).append(')');

    filter.insert(0, "(&");
    Util.addVersionFilter(filter, range, VersionKey.PackageVersion);
    filter.append(')');

    builder.addDirective(Namespaces.DIRECTIVE_FILTER, filter.toString()).addDirective(Namespaces.DIRECTIVE_EFFECTIVE, Namespaces.EFFECTIVE_ACTIVE);
    Requirement requirement = builder.buildRequirement();
    return requirement;
  }
View Full Code Here

      } else {
        throw new IllegalArgumentException(MessageFormat.format(
            "Invalid indicator format in known-bundle parsing for bundle  \"{0}\", expected cap=namespace or req=namespace, found \"{1}\".", bundleRef, indicator));
      }

      Builder builder = new Builder().setNamespace(namespace);

      Map<String, String> attribs = entry.getValue();
      Util.copyAttribsToBuilder(builder, attribs);

      if (type == IndicatorType.Capability)
        caps.add(builder.buildCapability());
      else if (type == IndicatorType.Requirement)
        reqs.add(builder.buildRequirement());
    }
  }
View Full Code Here

    if (blueprintEnabled)
      requirements.add(createRequirement());
  }

  private Requirement createRequirement() {
    Builder builder = new Builder().setNamespace(Namespaces.NS_EXTENDER);
    String filter = String.format("(&(%s=%s)(version>=1.0.0)(!(version>=2.0.0)))", Namespaces.NS_EXTENDER, Namespaces.EXTENDER_BLUEPRINT);
    builder.addDirective(Namespaces.DIRECTIVE_FILTER, filter).addDirective(Namespaces.DIRECTIVE_EFFECTIVE, Namespaces.EFFECTIVE_ACTIVE);
    return builder.buildRequirement();
  }
View Full Code Here

TOP

Related Classes of org.osgi.service.indexer.Builder

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.