[ 
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)

Reply via email to