Class LocalModuleFinder

java.lang.Object
org.jboss.modules.LocalModuleFinder
All Implemented Interfaces:
ModuleFinder

public final class LocalModuleFinder extends Object implements ModuleFinder
A module finder which locates module specifications which are stored in a local module repository on the filesystem, which uses module.xml descriptors.
  • Field Details

    • NO_FILES

      private static final File[] NO_FILES
    • repoRoots

      private final File[] repoRoots
    • pathFilter

      private final PathFilter pathFilter
    • accessControlContext

      private final AccessControlContext accessControlContext
  • Constructor Details

    • LocalModuleFinder

      private LocalModuleFinder(File[] repoRoots, PathFilter pathFilter, boolean cloneRoots)
    • LocalModuleFinder

      public LocalModuleFinder(File[] repoRoots, PathFilter pathFilter)
      Construct a new instance.
      Parameters:
      repoRoots - the repository roots to use
      pathFilter - the path filter to use
    • LocalModuleFinder

      public LocalModuleFinder(File[] repoRoots)
      Construct a new instance.
      Parameters:
      repoRoots - the repository roots to use
    • LocalModuleFinder

      public LocalModuleFinder()
      Construct a new instance, using the module.path system property or the JAVA_MODULEPATH environment variable to get the list of module repository roots.

      This is equivalent to a call to LocalModuleFinder(true).

    • LocalModuleFinder

      public LocalModuleFinder(boolean supportLayersAndAddOns)
      Construct a new instance, using the module.path system property or the JAVA_MODULEPATH environment variable to get the list of module repository roots.
      Parameters:
      supportLayersAndAddOns - true if the identified module repository roots should be checked for an internal structure of child "layer" and "add-on" directories that may also be treated as module roots lower in precedence than the parent root. Any "layers" subdirectories whose names are specified in a layers.conf file found in the module repository root will be added in the precedence of order specified in the layers.conf file; all "add-on" subdirectories will be added at a lower precedence than all "layers" and with no guaranteed precedence order between them. If false no check for "layer" and "add-on" directories will be performed.
  • Method Details

    • getRepoRoots

      static File[] getRepoRoots(boolean supportLayersAndAddOns)
    • getModulePathFiles

      private static File[] getModulePathFiles()
    • getFiles

      private static File[] getFiles(String modulePath, int stringIdx, int arrayIdx)
    • toPathString

      private static String toPathString(ModuleIdentifier moduleIdentifier)
    • findModule

      public ModuleSpec findModule(ModuleIdentifier identifier, ModuleLoader delegateLoader) throws ModuleLoadException
      Description copied from interface: ModuleFinder
      Find a module specification for the given identifier.
      Specified by:
      findModule in interface ModuleFinder
      Parameters:
      identifier - the module identifier
      delegateLoader - the module loader from which dependencies should be resolved
      Returns:
      the module specification, or null if no specification is found for this identifier
      Throws:
      ModuleLoadException
    • parseModuleXmlFile

      public static ModuleSpec parseModuleXmlFile(ModuleIdentifier identifier, ModuleLoader delegateLoader, File... roots) throws IOException, ModuleLoadException
      Parse a module.xml file and return the corresponding module specification.
      Parameters:
      identifier - the identifier to load
      delegateLoader - the delegate module loader to use for module specifications
      roots - the repository root paths to search
      Returns:
      the module specification
      Throws:
      IOException - if reading the module file failed
      ModuleLoadException - if creating the module specification failed (e.g. due to a parse error)
    • toString

      public String toString()
      Overrides:
      toString in class Object