Package org.jboss.modules
Class ClassifyingModuleLoader
java.lang.Object
org.jboss.modules.ModuleLoader
org.jboss.modules.ClassifyingModuleLoader
A module loader which selects a delegate module loader based upon the prefix of the module name. Longer
names are matched first always.
- Author:
- David M. Lloyd
-
Field Summary
Fields inherited from class org.jboss.modules.ModuleLoader
NO_FINDERS
-
Constructor Summary
ConstructorsConstructorDescriptionClassifyingModuleLoader
(String name, Map<String, ModuleLoader> delegates, ModuleLoader defaultLoader) Construct a new instance. -
Method Summary
Modifier and TypeMethodDescriptionprotected ModuleSpec
findModule
(String name) Find a Module's specification in this ModuleLoader by its name.protected Module
preloadModule
(String name) Preload a module based on an identifier.void
setDelegates
(Map<String, ModuleLoader> delegates) Change the delegates map.toString()
Get the string representation of this module loader.Methods inherited from class org.jboss.modules.ModuleLoader
findLoadedModuleLocal, findLoadedModuleLocal, findModule, forClass, forClassLoader, getDependencies, getFinders, getModuleDescription, installMBeanServer, iterateModules, iterateModules, loadModule, loadModule, loadModuleLocal, loadModuleLocal, preloadExportedModule, preloadExportedModule, preloadModule, preloadModule, preloadModule, refreshResourceLoaders, relink, setAndRefreshResourceLoaders, setAndRelinkDependencies, unloadModuleLocal, unloadModuleLocal
-
Constructor Details
-
ClassifyingModuleLoader
public ClassifyingModuleLoader(String name, Map<String, ModuleLoader> delegates, ModuleLoader defaultLoader) Construct a new instance. The given delegates map is copied.- Parameters:
delegates
- the default delegates map to usedefaultLoader
- the default loader to use if no delegate mapping exists
-
-
Method Details
-
preloadModule
Preload a module based on an identifier. By default, delegation is only done for system and this method otherwise simply invokesModuleLoader.loadModuleLocal(String)
. A delegating module loader may delegate to the appropriate module loader based on loader-specific criteria (via theModuleLoader.preloadModule(String, ModuleLoader)
method).- Overrides:
preloadModule
in classModuleLoader
- Parameters:
name
- the module identifier- Returns:
- the load result, or
null
if the module is not found - Throws:
ModuleLoadException
- if an error occurs
-
findModule
Find a Module's specification in this ModuleLoader by its name. This can be overriden by sub-classes to implement the Module loading strategy for this loader. The default implementation iterates the module finders provided during construction. If no module is found in this module loader with the given identifier, then this method should returnnull
. If the module is found but some problem occurred (for example, a transitive dependency failed to load) then this method should throw aModuleLoadException
of the relevant type.- Overrides:
findModule
in classModuleLoader
- Parameters:
name
- the module name- Returns:
- the module specification, or
null
if no module is found with the given identifier - Throws:
ModuleLoadException
- if any problems occur finding the module
-
setDelegates
Change the delegates map. A copy is made of the given map.- Parameters:
delegates
- the new delegates map to use
-
toString
Description copied from class:ModuleLoader
Get the string representation of this module loader.- Overrides:
toString
in classModuleLoader
- Returns:
- the string representation
-