Class ProxyModuleDefinition

  • All Implemented Interfaces:
    ModuleDefinition

    public class ProxyModuleDefinition
    extends java.lang.Object
    implements ModuleDefinition
    Creates a ModuleDefinition backed up by a a single classloader.

    The implementation does not cache any data - everything is recalculated for each call. Callers are therefore encouraged to either supply their own caching, or minimize the calls to methods of this class.

    • Constructor Detail

      • ProxyModuleDefinition

        public ProxyModuleDefinition​(java.lang.ClassLoader classLoader)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • ProxyModuleDefinition

        public ProxyModuleDefinition​(java.lang.ClassLoader classLoader,
                                     java.util.List<ManifestProxy.SeparatorMappings> mappings)
                              throws java.io.IOException
        Throws:
        java.io.IOException
    • Method Detail

      • readFully

        private static byte[] readFully​(java.net.URL url)
                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • getName

        public java.lang.String getName()
        Description copied from interface: ModuleDefinition
        Returns the module name, usually this is the same name as the jar file name containing the module's implementation.
        Specified by:
        getName in interface ModuleDefinition
        Returns:
        module name
      • getPublicInterfaces

        public java.lang.String[] getPublicInterfaces()
        Description copied from interface: ModuleDefinition
        Returns a list of public interfaces for this module. Public interface can be packages, interfaces, or classes
        Specified by:
        getPublicInterfaces in interface ModuleDefinition
        Returns:
        a array of public interfaces
      • getDependencies

        public ModuleDependency[] getDependencies()
        Description copied from interface: ModuleDefinition
        Returns the list of this module's dependencies. Each dependency must be satisfied at run time for this module to function properly.
        Specified by:
        getDependencies in interface ModuleDefinition
        Returns:
        list of dependencies
      • getLocations

        public java.net.URI[] getLocations()
        Description copied from interface: ModuleDefinition
        A Module is implemented by one to many jar files. This method returns the list of jar files implementing the module
        Specified by:
        getLocations in interface ModuleDefinition
        Returns:
        the module's list of implementation jars
      • getVersion

        public java.lang.String getVersion()
        Description copied from interface: ModuleDefinition
        Returns the version of this module's implementation
        Specified by:
        getVersion in interface ModuleDefinition
        Returns:
        a version number
      • getImportPolicyClassName

        public java.lang.String getImportPolicyClassName()
        Description copied from interface: ModuleDefinition
        Returns the import policy class name. Although the implementation of this policy does not necessary have to implement the ImportPolicy, but could use another interface, it is the responsibility of the associated Repository to invoke that interface when the module is started.
        Specified by:
        getImportPolicyClassName in interface ModuleDefinition
        Returns:
        Fully qualified class name that's assignable to ImportPolicy, or null if no import policy exists.
      • getLifecyclePolicyClassName

        public java.lang.String getLifecyclePolicyClassName()
        Description copied from interface: ModuleDefinition
        Returns the lifecycle policy class name. Although the implementation of this policy does not necessary have to implement the LifecyclePolicy, but could use another interface, it is the responsibility of the associated Repository to invoke that interface when the module is started.
        Specified by:
        getLifecyclePolicyClassName in interface ModuleDefinition
        Returns:
        Fully qualified class name that's assignable to LifecyclePolicy, or null if no import policy exists.
      • getManifest

        public java.util.jar.Manifest getManifest()
        Description copied from interface: ModuleDefinition
        Returns the manifest file for the main module jar file
        Specified by:
        getManifest in interface ModuleDefinition
        Returns:
        the manifest file
      • generate

        protected java.util.jar.Manifest generate​(ModuleMetadata metadata)
      • ok

        private static boolean ok​(java.lang.String s)
      • ok

        private static boolean ok​(java.lang.String[] ss)