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 ClassLoaderFields inherited from class com.sun.enterprise.module.common_impl.AbstractModulesRegistryImpl
modules, parent, providers, repositories -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreates a new childModulesRegistryImplin thisModulesRegistryImpl.voidDetaches all the modules from this registry.Finds theModulethat 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 theModulethat provides the provider of the given name.protected ModulenewModule(ModuleDefinition moduleDef) Factory method for creating new instances of Module.(package private) ModuleImplnewPrivateModuleFor(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) voidregister(ModuleLifecycleListener listener) Add aModuleLifecycleListenerto this registry.voidsetParentClassLoader(ClassLoader parent) Sets the classloader parenting the class loaders created by the modules associated with this registry.voidshutdown()Shuts down this module's registry, apply housekeeping tasksvoidunregister(ModuleLifecycleListener listener) Removes anModuleLifecycleListenerfrom 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 childModulesRegistryImplin thisModulesRegistryImpl. -
newModule
Description copied from class:AbstractModulesRegistryImplFactory method for creating new instances of Module.- Specified by:
newModulein 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:
parseInhabitantsin 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:ModulesRegistryGets theModulethat provides the provider of the given name.- Specified by:
getProvidingModulein interfaceModulesRegistry- Overrides:
getProvidingModulein 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:ModulesRegistryFinds theModulethat owns the given class.- Returns:
- null if the class is loaded outside the module system.
-
register
Add aModuleLifecycleListenerto this registry. The listener will be notified for each module startup and shutdown.- Parameters:
listener- the listener implementation
-
unregister
Removes anModuleLifecycleListenerfrom 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
-