[ https://issues.apache.org/jira/browse/CAY-2166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andrus Adamchik closed CAY-2166. -------------------------------- Resolution: Fixed Fix Version/s: 4.0.M5 The following modules are made auto-loadable: * cayenne-crypto * cayenne-dbsync * cayenne-java8 * cayenne-joda * cayenne-project * cayenne-server We still need to convert the ROP client and the Modeler to auto-loading. Those probably warrant separate jiras. > Auto-loading of Cayenne modules > ------------------------------- > > Key: CAY-2166 > URL: https://issues.apache.org/jira/browse/CAY-2166 > Project: Cayenne > Issue Type: Improvement > Reporter: Andrus Adamchik > Assignee: Andrus Adamchik > Fix For: 4.0.M5 > > > We need to borrow the central modularity feature from bootique.io - module > auto-loading based on Java ServiceLoader: > 1. Each module in Cayenne (or custom modules if a user so desires) will ship > with "META-INF/services/org.apache.cayenne.di.spi.ModuleProvider" file that > will contain the name of the provider class. > 2. Provider will contain a factory method for the module, as well as a method > that returns a collection of modules that this module "overrides" > 3. There will be a loader class that will load all providers via > "java.util.ServiceLoader", create modules for each provider and then sort > them in the order of override dependencies. > 4. ServerRuntimeBuilder will contain a method to turn auto-loading on and > off. "on" will be the default. -- This message was sent by Atlassian JIRA (v6.3.4#6332)