[ 
https://issues.apache.org/jira/browse/ISIS-2270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andi Huber updated ISIS-2270:
-----------------------------
    Description: 
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.

  was:
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.

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.


> 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
>            Reporter: Daniel Keir Haywood
>            Assignee: Daniel Keir Haywood
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> 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)

Reply via email to