Package aQute.bnd.osgi.Descriptors

Examples of aQute.bnd.osgi.Descriptors.PackageRef


      return;

    Processor next = new Processor(analyzer);
    next.setProperty("@class", current.getFQN());
    next.setProperty("@class-short", current.getClassName().getShortName());
    PackageRef pref = current.getClassName().getPackageRef();
    next.setProperty("@package", pref.getFQN());
    Attrs info = analyzer.getClasspathExports().get(pref);
    if (info == null)
      info = analyzer.getContained().get(pref);

    if (info != null && info.containsKey("version")) {
View Full Code Here


    packages = new MultiMap<PackageRef,Element>();

    for (Clazz c : analyzer.getClassspace().values()) {
      if (c.isPublic() || c.isProtected()) {
        PackageRef packageName = c.getClassName().getPackageRef();

        if (exports.containsKey(packageName)) {
          Element cdef = classElement(c);
          packages.add(packageName, cdef);
        }
View Full Code Here

      //

      for (Jar current : getClasspath()) {
        getExternalExports(current, classpathExports);
        for (String dir : current.getDirectories().keySet()) {
          PackageRef packageRef = getPackageRef(dir);
          Resource resource = current.getResource(dir + "/packageinfo");
          getExportVersionsFromPackageInfo(packageRef, resource, classpathExports);
        }
      }
View Full Code Here

   * @return
   */
  public Set<PackageRef> getUnreachable() {
    Set<PackageRef> unreachable = new HashSet<PackageRef>(uses.keySet()); // all
    for (Iterator<PackageRef> r = exports.keySet().iterator(); r.hasNext();) {
      PackageRef packageRef = r.next();
      removeTransitive(packageRef, unreachable);
    }
    if (activator != null) {
      removeTransitive(activator.getPackageRef(), unreachable);
    }
View Full Code Here

    // the used packages for each exported package to find out
    // if it refers to an internal package.
    //

    for (Iterator<PackageRef> i = toBeImported.iterator(); i.hasNext();) {
      PackageRef next = i.next();
      Collection<PackageRef> usedByExportedPackage = this.uses.get(next);

      // We had an NPE on usedByExportedPackage in GF.
      // I guess this can happen with hard coded
      // imports that do not match reality ...
      if (usedByExportedPackage == null || usedByExportedPackage.isEmpty()) {
        continue;
      }

      for (PackageRef privatePackage : privatePackages) {
        if (usedByExportedPackage.contains(privatePackage)) {
          i.remove();
          break;
        }
      }
    }

    // Clean up attributes and generate result map
    Packages result = new Packages();
    for (Iterator<PackageRef> i = toBeImported.iterator(); i.hasNext();) {
      PackageRef ep = i.next();
      Attrs parameters = exports.get(ep);

      String noimport = parameters == null ? null : parameters.get(NO_IMPORT_DIRECTIVE);
      if (noimport != null && noimport.equalsIgnoreCase("true"))
        continue;
View Full Code Here

      Manifest m = jar.getManifest();
      if (m != null) {
        Domain domain = Domain.domain(m);
        Parameters exported = domain.getExportPackage();
        for (Entry<String,Attrs> e : exported.entrySet()) {
          PackageRef ref = getPackageRef(e.getKey());
          if (!classpathExports.containsKey(ref)) {
            // TODO e.getValue().put(SOURCE_DIRECTIVE,
            // jar.getBsn()+"-"+jar.getVersion());

            classpathExports.put(ref, e.getValue());
View Full Code Here

  void doUses(Packages exports, Map<PackageRef,List<PackageRef>> uses, Packages imports) {
    if ("true".equalsIgnoreCase(getProperty(NOUSES)))
      return;

    for (Iterator<PackageRef> i = exports.keySet().iterator(); i.hasNext();) {
      PackageRef packageRef = i.next();
      String packageName = packageRef.getFQN();
      setProperty(CURRENT_PACKAGE, packageName);
      try {
        doUses(packageRef, exports, uses, imports);
      }
      finally {
View Full Code Here

      sharedPackages.remove(packageRef);

      StringBuilder sb = new StringBuilder();
      String del = "";
      for (Iterator<PackageRef> u = sharedPackages.iterator(); u.hasNext();) {
        PackageRef usedPackage = u.next();
        if (!usedPackage.isJava()) {
          sb.append(del);
          sb.append(usedPackage.getFQN());
          del = ",";
        }
      }
      if (override.indexOf('$') >= 0) {
        setProperty(CURRENT_USES, sb.toString());
View Full Code Here

    unreachable.remove(name);

    List<PackageRef> ref = uses.get(name);
    if (ref != null) {
      for (Iterator<PackageRef> r = ref.iterator(); r.hasNext();) {
        PackageRef element = r.next();
        removeTransitive(element, unreachable);
      }
    }
  }
View Full Code Here

          int n = relativePath.lastIndexOf('/');
          if (n < 0)
            n = relativePath.length();
          String relativeDir = relativePath.substring(0, n);

          PackageRef packageRef = getPackageRef(relativeDir);
          if (!packageRef.isMetaData() && !contained.containsKey(packageRef)) {
            contained.put(packageRef);

            // For each package we encounter for the first
            // time. Unfortunately we can only do this once
            // we found a class since the bcp has a tendency
            // to overlap
            if (!packageRef.isMetaData()) {
              Resource pinfo = jar.getResource(prefix + packageRef.getPath() + "/packageinfo");
              getExportVersionsFromPackageInfo(packageRef, pinfo, classpathExports);
            }
          }
        }

        // Check class resources, we need to analyze them
        if (path.endsWith(".class")) {
          Resource resource = jar.getResource(path);
          Clazz clazz;
          Attrs info = null;

          try {
            InputStream in = resource.openInputStream();
            clazz = new Clazz(this, path, resource);
            try {
              // Check if we have a package-info
              if (relativePath.endsWith("/package-info.class")) {
                // package-info can contain an Export annotation
                info = new Attrs();
                parsePackageInfoClass(clazz, info);
              } else {
                // Otherwise we just parse it simply
                clazz.parseClassFile();
              }
            }
            finally {
              in.close();
            }
          }
          catch (Throwable e) {
            error("Invalid class file %s (%s)", e, relativePath, e);
            e.printStackTrace();
            continue next;
          }

          String calculatedPath = clazz.getClassName().getPath();
          if (!calculatedPath.equals(relativePath)) {
            // If there is a mismatch we
            // warning
            if (okToIncludeDirs) // assume already reported
              mismatched.put(clazz.getAbsolutePath(), clazz);
          } else {
            classspace.put(clazz.getClassName(), clazz);
            PackageRef packageRef = clazz.getClassName().getPackageRef();

            if (!contained.containsKey(packageRef)) {
              contained.put(packageRef);
              if (!packageRef.isMetaData()) {
                Resource pinfo = jar.getResource(prefix + packageRef.getPath() + "/packageinfo");
                getExportVersionsFromPackageInfo(packageRef, pinfo, classpathExports);
              }
            }
            if (info != null)
              contained.merge(packageRef, false, info);
View Full Code Here

TOP

Related Classes of aQute.bnd.osgi.Descriptors.PackageRef

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.