Class ModuleLoader

java.lang.Object
org.apache.cayenne.di.spi.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:
  • Constructor Details

    • ModuleLoader

      public ModuleLoader()
  • Method Details

    • 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