Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.2.0-incubating
-
None
-
None
Description
Currently there is a number of settings in isis.properties whose values is pretty much determined by the configured persistor/object store. Most notable examples included the class substitutor and the object factory, where cglib versions are configured for most persistors (for lazy loading), but is not configured for the JDO object store (that leverages the built-in lazy loading of DataNucleus).
This ticket is to remove some of these configuration settings, and instead arrange things such that selecting the persistor automatically configures these components.
In particular, that means removing:
1. isis.reflector.class-substitutor
(with the default being org.apache.isis.runtimes.dflt.bytecode.dflt.classsubstitutor.CglibClassSubstitutor for most object stores, overridden by the JDO object store)
2. isis.persistor.identifier-generator
(with the default already being overridden by all object stores)
3. isis.persistor.object-factory
(with the default being
org.apache.isis.runtimes.dflt.bytecode.dflt.objectfactory.CglibObjectFactory for most object stores, overridden by the JDO object store)
4. isis.persistor.services-injector
(with the default being ServicesInjectorDefault; there are no other implementations.)
5. isis.persistor.adapter-factory
(with the default being PojoAdapterFactory; there are no other implementations.)
At the same time, persistor/object stores sometimes have a requirement to install their own FacetFactories and/or MetaModelValidators. So this ticket is also to provide a mechanism such that a persistor can "refine" the metamodel.