Class ResourceBuilder

  • Direct Known Subclasses:
    SyntheticBuilder

    public class ResourceBuilder
    extends java.lang.Object
    • Constructor Detail

      • ResourceBuilder

        public ResourceBuilder​(org.osgi.resource.Resource source)
      • ResourceBuilder

        public ResourceBuilder()
    • Method Detail

      • addCapability

        public ResourceBuilder addCapability​(org.osgi.resource.Capability capability)
      • buildCapability

        protected org.osgi.resource.Capability buildCapability​(CapReqBuilder builder)
      • addRequirement

        public ResourceBuilder addRequirement​(org.osgi.resource.Requirement requirement)
      • buildRequirement

        protected org.osgi.resource.Requirement buildRequirement​(CapReqBuilder builder)
      • build

        public org.osgi.resource.Resource build()
      • getCapabilities

        public java.util.List<org.osgi.resource.Capability> getCapabilities()
      • getRequirements

        public java.util.List<org.osgi.resource.Requirement> getRequirements()
      • addManifest

        public boolean addManifest​(Domain manifest)
        Parse the manifest and turn them into requirements & capabilities
        Parameters:
        manifest - The manifest to parse
      • addExportServices

        public void addExportServices​(Parameters exportServices)
      • addImportServices

        public void addImportServices​(Parameters importServices)
      • getNativeCode

        public RequirementBuilder getNativeCode​(java.lang.String header)
        Caclulate the requirement from a native code header
        Parameters:
        header - the Bundle-NativeCode header or null
        Returns:
        a Requirement Builder set to the requirements according tot he core spec
      • addRequireBundles

        public void addRequireBundles​(Parameters requireBundle)
        Add the Require-Bundle header
      • addRequireBundle

        public void addRequireBundle​(java.lang.String bsn,
                                     VersionRange range)
      • addRequireBundle

        public void addRequireBundle​(java.lang.String bsn,
                                     Attrs attrs)
      • addFragmentHost

        public void addFragmentHost​(java.lang.String bsn,
                                    Attrs attrs)
      • addRequireCapabilities

        public void addRequireCapabilities​(Parameters required)
      • addRequireCapability

        public void addRequireCapability​(java.lang.String namespace,
                                         java.lang.String name,
                                         Attrs attrs)
      • addProvideCapabilities

        public java.util.List<org.osgi.resource.Capability> addProvideCapabilities​(Parameters capabilities)
      • addProvideCapabilities

        public java.util.List<org.osgi.resource.Capability> addProvideCapabilities​(java.lang.String clauses)
      • addProvideCapability

        public org.osgi.resource.Capability addProvideCapability​(java.lang.String namespace,
                                                                 Attrs attrs)
      • addExportPackages

        public void addExportPackages​(Parameters exports)
        Add Exported Packages
      • addExportPackages

        public void addExportPackages​(Parameters exports,
                                      java.lang.String bundle_symbolic_name,
                                      org.osgi.framework.Version bundle_version)
      • addEE

        public void addEE​(EE ee)
      • addExportPackage

        public void addExportPackage​(java.lang.String name,
                                     Attrs attrs,
                                     java.lang.String bundle_symbolic_name,
                                     org.osgi.framework.Version bundle_version)
      • addExportPackage

        public void addExportPackage​(java.lang.String name,
                                     Attrs attrs)
      • addImportPackages

        public void addImportPackages​(Parameters imports)
        Add imported packages
      • addImportPackage

        public org.osgi.resource.Requirement addImportPackage​(java.lang.String name,
                                                              Attrs attrs)
      • addExecutionEnvironment

        public void addExecutionEnvironment​(EE ee)
      • addAllExecutionEnvironments

        public void addAllExecutionEnvironments​(EE ee)
      • copyCapabilities

        public void copyCapabilities​(java.util.Set<java.lang.String> ignoreNamespaces,
                                     org.osgi.resource.Resource r)
      • addCapabilities

        public void addCapabilities​(java.util.List<org.osgi.resource.Capability> capabilities)
      • addRequirement

        public void addRequirement​(java.util.List<org.osgi.resource.Requirement> requirements)
      • addRequirements

        public void addRequirements​(java.util.List<org.osgi.resource.Requirement> requires)
      • findCapabilities

        public java.util.List<org.osgi.resource.Capability> findCapabilities​(java.lang.String ns,
                                                                             java.lang.String filter)
      • from

        public java.util.Map<org.osgi.resource.Capability,​org.osgi.resource.Capability> from​(org.osgi.resource.Resource bundle)
      • getReporter

        public aQute.service.reporter.Reporter getReporter()
      • addContentCapability

        public void addContentCapability​(java.net.URI uri,
                                         java.lang.String sha256,
                                         long length,
                                         java.lang.String mime)
      • addFile

        public boolean addFile​(java.io.File file,
                               java.net.URI uri)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • addHashes

        public void addHashes​(java.io.File file)
                       throws java.io.IOException
        Add simple class name hashes to the exported packages. This should not be called before any package capabilities are set since we only hash class names in exports. So no exports, no hash.
        Throws:
        java.io.IOException
      • addWorkspaceNamespace

        public void addWorkspaceNamespace​(java.lang.String name)
        A repository that implements the WorkspaceRepositoryMarker in the resolver must add a WORKSPACE_NAMESPACE capability to make its clear the resources are from the workspace. Ideally this would not be necessary but we're having two workspace repositories. One for Bndtools where the repository is interactive, the other is for resolving in Gradle, etc.
        Parameters:
        name - the project name
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • memoize

        public static java.util.function.Supplier<org.osgi.resource.Resource> memoize​(Jar jar,
                                                                                      java.net.URI uri,
                                                                                      java.lang.String projectName)
                                                                               throws java.lang.Exception
        Create a deferred resource builder so that any expensive actions are deferred until the supplier is called to get the resource.
        Parameters:
        jar - a Jar, preferably with checksum calculated, or null
        uri - the uri to use or null (will use file uri as default)
        projectName - if in a workspace, the project name or otherwise null
        Returns:
        a memo for creating the corresponding resource
        Throws:
        java.lang.Exception