Class ModuleLoader


  • public class ModuleLoader
    extends Object
    Auto-loads DI modules using ServiceLoader. To make a module auto-loadable, you will need to ship the jar with a file "META-INF/services/<full.provider.class.name>" that contains provider implementation for the module in question.
    Since:
    4.0
    See Also:
    ModuleProvider
    • Constructor Detail

      • ModuleLoader

        public ModuleLoader()
    • Method Detail

      • load

        public List<Module> load​(Class<? extends ModuleProvider> providerClass)
        Auto-loads all modules declared on classpath. Modules are loaded from the SPI declarations stored in "META-INF/services/<full.provider.class.name>", and then sorted in the order of override dependency.
        Returns:
        a sorted collection of auto-loadable modules.
        Throws:
        DIRuntimeException - if auto-loaded modules have circular override dependencies.
      • load

        public List<Module> load​(Class<? extends ModuleProvider> providerClass,
                                 ClassLoader classLoader)
        Auto-loads all modules declared on classpath. Modules are loaded from the SPI declarations stored in "META-INF/services/<full.provider.class.name>", and then sorted in the order of override dependency.
        Returns:
        a sorted collection of auto-loadable modules.
        Throws:
        DIRuntimeException - if auto-loaded modules have circular override dependencies.
        Since:
        4.2