[ https://issues.apache.org/jira/browse/ISIS-274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13471738#comment-13471738 ]
Dan Haywood commented on ISIS-274: ---------------------------------- The API I've come up with for the refining of the metamodel is: /** * Provides the ability for components to inform/alter/adjust/refine the metamodel. */ public interface MetaModelRefiner { ClassSubstitutor createClassSubstitutor(IsisConfiguration configuration); MetaModelValidator refineMetaModelValidator(MetaModelValidatorComposite baseMetaModelValidator, IsisConfiguration configuration); ProgrammingModel refineProgrammingModel(ProgrammingModel baseProgrammingModel, IsisConfiguration configuration); } This is now implemented by the PersistenceMechanismInstaller. In theory, it could also be implemented by other components, eg the FileAuthorizor (in order to install the appropriate FacetFactorys to enable authorization). > Simplify the bootstrapping of Isis so that there are fewer configuration > properties to set in isis.properties > ------------------------------------------------------------------------------------------------------------- > > Key: ISIS-274 > URL: https://issues.apache.org/jira/browse/ISIS-274 > Project: Isis > Issue Type: Improvement > Affects Versions: 0.2.0-incubating > Reporter: Dan Haywood > Fix For: 0.3.1-incubating > > > 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. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira