Package com.sun.enterprise.module.impl
Class ModulesRegistryImpl
java.lang.Object
com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
com.sun.enterprise.module.impl.ModulesRegistryImpl
- All Implemented Interfaces:
ModuleChangeListener
,ModulesRegistry
- Direct Known Subclasses:
ClassPathBasedModulesRegistry
,SingleModulesRegistry
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) final List
<ModuleLifecycleListener> private ClassLoader
Fields inherited from class com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
modules, parent, providers, repositories
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates a new childModulesRegistryImpl
in thisModulesRegistryImpl
.void
Detaches all the modules from this registry.Finds theModule
that owns the given class.getModulesClassLoader
(ClassLoader parent, Collection<ModuleDefinition> defs) Returns a ClassLoader capable of loading classes from a set of modules identified by their module definitiongetModulesClassLoader
(ClassLoader parent, Collection<ModuleDefinition> defs, URL[] urls) Returns a ClassLoader capable of loading classes from a set of modules identified by their module definition and also load new urls.Returns the parent class loader parenting the class loaders created by modules associated with this registry.getProvidingModule
(String providerClassName) Gets theModule
that provides the provider of the given name.protected Module
newModule
(ModuleDefinition moduleDef) Factory method for creating new instances of Module.(package private) ModuleImpl
newPrivateModuleFor
(String moduleName, String version) Creates and return a new private module implementation giving a name and version constraints.protected List
<ActiveDescriptor> parseInhabitants
(Module module, String name, ServiceLocator serviceLocator, List<PopulatorPostProcessor> postProcessors) void
register
(ModuleLifecycleListener listener) Add aModuleLifecycleListener
to this registry.void
setParentClassLoader
(ClassLoader parent) Sets the classloader parenting the class loaders created by the modules associated with this registry.void
shutdown()
Shuts down this module's registry, apply housekeeping tasksvoid
unregister
(ModuleLifecycleListener listener) Removes anModuleLifecycleListener
from this registry.Methods inherited from class com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
add, add, add, addRepository, addRepository, changed, createServiceLocator, createServiceLocator, createServiceLocator, dumpState, getAllServiceLocators, getModules, getModules, getModulesProvider, getProvidersClass, getRepository, getRunningServices, initializeServiceLocator, loadFromRepository, makeModuleFor, makeModuleFor, makeModuleFor, newServiceLocator, newServiceLocator, populateConfig, populateServiceLocator, print, registerRunningService, remove, removeRepository, unregisterRunningService
-
Field Details
-
parentLoader
-
lifecycleListeners
-
-
Constructor Details
-
ModulesRegistryImpl
-
-
Method Details
-
createChild
Creates a new childModulesRegistryImpl
in thisModulesRegistryImpl
. -
newModule
Description copied from class:AbstractModulesRegistryImpl
Factory method for creating new instances of Module.- Specified by:
newModule
in classAbstractModulesRegistryImpl
- Parameters:
moduleDef
- module definition of the new module to be created- Returns:
- a new Module instance
-
parseInhabitants
protected List<ActiveDescriptor> parseInhabitants(Module module, String name, ServiceLocator serviceLocator, List<PopulatorPostProcessor> postProcessors) throws IOException - Specified by:
parseInhabitants
in classAbstractModulesRegistryImpl
- Throws:
IOException
-
newPrivateModuleFor
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 nameversion
- the desired version- Returns:
- the new private module or null if cannot be found
- Throws:
ResolveError
- if the module dependencies cannot be resolved
-
getProvidingModule
Description copied from interface:ModulesRegistry
Gets theModule
that provides the provider of the given name.- Specified by:
getProvidingModule
in interfaceModulesRegistry
- Overrides:
getProvidingModule
in classAbstractModulesRegistryImpl
-
setParentClassLoader
Sets the classloader parenting the class loaders created by the modules associated with this registry.- Parameters:
parent
- parent class loader
-
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 instancedefs
- module definitions for all modules this classloader should be capable of loadingurls
- 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 instancedefs
- 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
Description copied from interface:ModulesRegistry
Finds theModule
that owns the given class.- Returns:
- null if the class is loaded outside the module system.
-
register
Add aModuleLifecycleListener
to this registry. The listener will be notified for each module startup and shutdown.- Parameters:
listener
- the listener implementation
-
unregister
Removes anModuleLifecycleListener
from this registry. Notification of module startup and shutdown will not be emitted to this listener any longer.- Parameters:
listener
- the listener to unregister
-
getLifecycleListeners
-
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
-