Package org.codehaus.groovy.runtime.m12n

# Class ExtensionModuleScanner

java.lang.Object
org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner

public class ExtensionModuleScanner extends Object
A module extension scanner is responsible for searching classpath modules, loading metadata from module descriptors, then perform custom tasks for each module. This class was introduced as a fix for GROOVY-6008

Since:
  2.1.2

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static interface`
  `ExtensionModuleScanner.ExtensionModuleListener`
  Listener interface for extension module discovery events.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `LEGACY_MODULE_META_INF_FILE`
  Legacy location for META-INF module metadata files (Java services format).
  `static final String`
  `MODULE_META_INF_FILE`
  Current location for META-INF module metadata files (Java properties format).

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExtensionModuleScanner(ExtensionModuleScanner.ExtensionModuleListener listener, ClassLoader loader)`
  Constructs a new ExtensionModuleScanner.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `scanClasspathModules()`
  Scans the classpath for extension module metadata files.
  `void`
  `scanExtensionModuleFromProperties(Properties properties)`
  Scans and creates an extension module from the given properties.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### LEGACY_MODULE_META_INF_FILE

    public static final String LEGACY_MODULE_META_INF_FILE
    Legacy location for META-INF module metadata files (Java services format).
    See Also:
      - Constant Field Values

  - ### MODULE_META_INF_FILE

    public static final String MODULE_META_INF_FILE
    Current location for META-INF module metadata files (Java properties format).
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### ExtensionModuleScanner

    public ExtensionModuleScanner(ExtensionModuleScanner.ExtensionModuleListener listener, ClassLoader loader)
    Constructs a new ExtensionModuleScanner.
    Parameters:
      `listener` - the listener to be notified when modules are discovered
      `loader` - the class loader to use for scanning and loading modules

- ## Method Details

  - ### scanClasspathModules

    public void scanClasspathModules()
    Scans the classpath for extension module metadata files. This method scans for both the current and legacy module metadata file locations.

  - ### scanExtensionModuleFromProperties

    public void scanExtensionModuleFromProperties(Properties properties)
    Scans and creates an extension module from the given properties. Properties are typically loaded from a module metadata file (properties format).
    Parameters:
      `properties` - the module metadata properties