Class ModulesRegistryImpl

    • Constructor Detail

      • ModulesRegistryImpl

        public ModulesRegistryImpl​(ModulesRegistry parent)
    • Method Detail

      • setParentClassLoader

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

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

        public ClassLoader getModulesClassLoader​(ClassLoader parent,
                                                 Collection<ModuleDefinition> defs,
                                                 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 ClassLoader getModulesClassLoader​(ClassLoader parent,
                                                 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​(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