Class ModulesRegistryImpl

    • Field Detail

      • parentLoader

        private java.lang.ClassLoader parentLoader
    • Constructor Detail

      • ModulesRegistryImpl

        public ModulesRegistryImpl​(ModulesRegistry parent)
    • Method Detail

      • newPrivateModuleFor

        ModuleImpl newPrivateModuleFor​(java.lang.String moduleName,
                                       java.lang.String version)
        Creates and return a new private module implementation giving a name and version constraints. A private module is like any other module except it is not registered to be shared by other potential module users.
        Parameters:
        moduleName - the module name
        version - the desired version
        Returns:
        the new private module or null if cannot be found
        Throws:
        ResolveError - if the module dependencies cannot be resolved
      • setParentClassLoader

        public void setParentClassLoader​(java.lang.ClassLoader parent)
        Sets the classloader parenting the class loaders created by the modules associated with this registry.
        Parameters:
        parent - parent class loader
      • getParentClassLoader

        public java.lang.ClassLoader getParentClassLoader()
        Returns the parent class loader parenting the class loaders created by modules associated with this registry.
        Returns:
        the parent classloader
      • getModulesClassLoader

        public java.lang.ClassLoader getModulesClassLoader​(java.lang.ClassLoader parent,
                                                           java.util.Collection<ModuleDefinition> defs,
                                                           java.net.URL[] urls)
                                                    throws ResolveError
        Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition and also load new urls.
        Parameters:
        parent - the parent class loader for the returned class loader instance
        defs - module definitions for all modules this classloader should be capable of loading
        urls - urls to be added to the module classloader
        Returns:
        class loader instance
        Throws:
        ResolveError - if one of the provided module definition cannot be resolved
      • getModulesClassLoader

        public java.lang.ClassLoader getModulesClassLoader​(java.lang.ClassLoader parent,
                                                           java.util.Collection<ModuleDefinition> defs)
                                                    throws ResolveError
        Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition
        Parameters:
        parent - the parent class loader for the returned class loader instance
        defs - module definitions for all modules this classloader should be capable of loading classes from
        Returns:
        class loader instance
        Throws:
        ResolveError - if one of the provided module definition cannot be resolved
      • find

        public Module find​(java.lang.Class clazz)
        Description copied from interface: ModulesRegistry
        Finds the Module that owns the given class.
        Returns:
        null if the class is loaded outside the module system.
      • register

        public void register​(ModuleLifecycleListener listener)
        Add a ModuleLifecycleListener to this registry. The listener will be notified for each module startup and shutdown.
        Parameters:
        listener - the listener implementation
      • unregister

        public void unregister​(ModuleLifecycleListener listener)
        Removes an ModuleLifecycleListener from this registry. Notification of module startup and shutdown will not be emitted to this listener any longer.
        Parameters:
        listener - the listener to unregister
      • detachAll

        public void detachAll()
        Detaches all the modules from this registry. The modules are not deconstructed when calling this method.
      • shutdown

        public void shutdown()
        Shuts down this module's registry, apply housekeeping tasks