[
https://issues.apache.org/jira/browse/ISIS-1194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14746877#comment-14746877
]
ASF subversion and git services commented on ISIS-1194:
-------------------------------------------------------
Commit a129fd2d5b3817d682aa128086d2cfa3a02854a3 in isis's branch
refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=a129fd2 ]
ISIS-1194: simplfying the bootstrap and wiring of components, in particular
around PersistenceSessionFactory
specifically:
- IsisSessionFactory
- now passed in the ServicesInjector (rather than obtaining it from the
PersistenceSessionFactory)
- initialization of FixtureClock done in IsisSessionFactory rather than
PersistenceSessionFactory
- IsisSystem
- createSessionFactory(), changed the order in order to remove some bidir
relationships
- in shutdownServices, avoid NPE if the serviceInitializer was never
instantiated during init()
- PersistenceSessionFactory
- no longer implements MetaModelRefiner, instead moved out to separate class
(PersistenceSessionFactoryMetamodelRefiner)
- this allows us to break the bidir between PersistenceSessionFactory and
SpecificationLoader
- no longer requires a RuntimeContext
- no longer requires a ServicesInjector (is provided by IsisSessionFactory
when #createPersistenceSession() is called to pass onto the created
PersistenceSession)
- no longer implements SpecificationLoaderAware, nor requires a
SpecificationLoader (is provided by IsisSessionFactory when
#createPerisistenceSession is called)
- similar changes to IsisMetaModel, in its constructor an init() method, to
wire up components in the correct order
- PersistenceSession
- no longer holds reference to PersistenceSessionFactory (though does only as
FixturesInstallerFlag in order that PSF can continue to cache whether fixtures
installed)
- is passed in the JDO PersistenceManagerFactory from Isis' PSF (rather than
accessing the PSF's DataNucleusApplicationComponents, which is now wholly
internal to PSF)
- is passed in the ServicesInjector directly (rather than obtain from Isis'
PSF)
- RuntimeContextAbstract
- now also passed in SpecificationLoader into its constructor (required
reordering of IsisSessionFactory#init to be able to do this)
- thereby remove the whole SpecificationLookupDelegator contrivance
- JavaReflectorHelper
- pass through deploymentType to ObjectReflectorDefault
- ObjectReflectorDefault
- removal of isInjectorMethodFor, instead have callers instantiate the
InjectorMethodEvaluatorDefault directly
also, to make caller hierarchy more useful::
- changed ApplicationScopedComponent and SessionScopedComponent into marker
interfaces
- removed Injectable, pushed injectInto(Object) into subtypes
also:
- enhanced IsisMojoAbstract and IsisMojoValidate (maven-isis-plugin)
- to accept an appManifest in the pom.xml
- use an AppManifest rather than MetaModel to bootstrap the system and
validate
- moved IsisComponentProviderDefault from core-integtest into core-runtime
(renamed as ...Default2), so can be used by maven-isis-plugin
also:
- deleted AdapterManagerDefault, no longer used
> Remove dead code, remove support for @Aggregated, for
> isDirty/clearDirty/markDirty.
> -----------------------------------------------------------------------------------
>
> Key: ISIS-1194
> URL: https://issues.apache.org/jira/browse/ISIS-1194
> Project: Isis
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.9.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Minor
> Fix For: 1.10.0
>
>
> removed ResolveState concept, instead derive state from underlying pojo
> - services and view models implicitly always persistent
> removed support for manual dirtying of objects:
> - isDirty
> - clearDirty
> - markDirty.
> removed support for @Aggregated:
> - Any @Aggregated will be picked up by the metamodel validation.
> - attempting to call DomainObjectContainer#newAggregatedInstance(...) will
> throw an exception.
> - ObjectAdapter#isAggregated removed
> - @Embedded annotation is no longer picked up as aggregated (is simply
> ignored)
> simplified Oid hierarchy
> - RootOid
> - ParentedCollectionOid
> combined OidGenerator and IdentifierGenerator
> simplified PersistenceSession, ObjectStore and other supporting components
> - removed ObjectStore, now part of PersistenceSession
> - removed PojoAdapterFactory, now part of AdapterManager
> - removed PersistAlgorithm, now part of PersistenceSession
> - removed FrameworkSynchronizer, now part of PersistenceSession
> - IsisLifecycleListener is now request-scoped and a subcomponent of
> PersistenceSession
> - ObjectSpecificationDefault no longer instantiates objects, instead this is
> done by PersistenceSession (remove CreateObjectContext and ObjectInstantiator)
> - all subcomponents call back to PersistenceSession which delegates out as
> necessary
> - no longer have two impementations
> - use the DataNucleus impl always (and remove unnecessary interface)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)