Class ClassifyingModuleLoader

java.lang.Object
org.jboss.modules.ModuleLoader
org.jboss.modules.ClassifyingModuleLoader

public final class ClassifyingModuleLoader extends ModuleLoader
A module loader which selects a delegate module loader based upon the prefix of the module name. Longer names are matched first always.
  • Field Details

  • 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 use
      defaultLoader - the default loader to use if no delegate mapping exists
  • Method Details

    • preloadModule

      protected Module preloadModule(ModuleIdentifier moduleIdentifier) throws ModuleLoadException
      Preload a module based on an identifier. By default, no delegation is done and this method simply invokes ModuleLoader.loadModuleLocal(ModuleIdentifier). A delegating module loader may delegate to the appropriate module loader based on loader-specific criteria (via the ModuleLoader.preloadModule(ModuleIdentifier, ModuleLoader) method).
      Overrides:
      preloadModule in class ModuleLoader
      Parameters:
      moduleIdentifier - the module identifier
      Returns:
      the load result, or null if the module is not found
      Throws:
      ModuleLoadException - if an error occurs
    • findModule

      protected ModuleSpec findModule(ModuleIdentifier moduleIdentifier) throws ModuleLoadException
      Find a Module's specification in this ModuleLoader by its identifier. 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 return null. If the module is found but some problem occurred (for example, a transitive dependency failed to load) then this method should throw a ModuleLoadException of the relevant type.

      Overrides:
      findModule in class ModuleLoader
      Parameters:
      moduleIdentifier - the module identifier
      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

      public void setDelegates(Map<String,ModuleLoader> delegates)
      Change the delegates map. A copy is made of the given map.
      Parameters:
      delegates - the new delegates map to use
    • toString

      public String toString()
      Description copied from class: ModuleLoader
      Get the string representation of this module loader.
      Overrides:
      toString in class ModuleLoader
      Returns:
      the string representation