[
https://issues.apache.org/jira/browse/ISIS-2270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andi Huber resolved ISIS-2270.
------------------------------
Resolution: Resolved
I'd say resolved:
Lifecycles of DomainObject, ViewModel and Mixin are still managed by Isis not
Spring. Simply because those are not inject-able Bean sorts. However, for all
of these, service injection is supported.
> Rethink, who shall manage Lifecycles of DomainObjects, ViewModels and Mixins
> ----------------------------------------------------------------------------
>
> Key: ISIS-2270
> URL: https://issues.apache.org/jira/browse/ISIS-2270
> Project: Isis
> Issue Type: Improvement
> Components: Isis Core
> Reporter: Daniel Keir Haywood
> Assignee: Andi Huber
> Priority: Minor
> Fix For: 2.0.0-M4
>
>
> 1) Document and annotate @DomainObject, @ViewModel and @Mixin with
> @Scope(SCOPE_PROTOTYPE)
> 2) FactoryService#instantiate needs a semantic update
> We want Spring to discover these types from the classpath (so that we can
> build the metamodel eagerly), but we don't want it to manage them, or do we?
> Using @Scope(PROTOTYPE) is the closest we can come to expressing that without
> (attempting to) define a custom scope for each of these three types.,
> analogous to factoryService#instantiate for transient objects.
> In practical terms, inventing a custom "entity" scope is probably impossible
> due to DN's design (the enhancer creates a dnNewInstance method and this is
> called upon as a factory).
> Instead, then, we "veto" any of these domain types so that Spring is NOT
> allowed to instantiate any of them.
> The docs should be updated to explain what we're doing here.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)