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

Andi Huber updated ISIS-2301:
-----------------------------
    Description: 
We allow IsisInteractions to be nested. The @IsisInteractionScope is always 
bound to the top-level IsisInteraction of the current thread's session stack. 
(first stack element, aka bottom of stack) 

Isis (not Spring) is aware, when any IsisInteractionScope ends. So at the end 
of each IsisInteractionScope, we call the destruction runnables on the 
IsisInteractionScope-d beans that belong to the current thread, then clear the 
IsisInteraction stack (of the current thread). (edited) 

The IsisInteractionScope-d beans are managed by Spring, that is Spring creates 
them and registers their destruction runnables.

Requires Provider idiom: we fail early if one tries to inject an 
IsisInteractionScope-d bean directly. The thrown exception gives a hint, how to 
fix it. (Use the Provider<> idiom instead)

  was:
We allow IsisSessions to be nested. The @IsisSessionScope is always bound to 
the top-level IsisSession of the current thread's session stack. (first stack 
element, aka bottom of stack) 

Isis (not Spring) is aware, when any IsisSessionScope ends. So at the end of 
each IsisSessionScope, we call the destruction runnables on the 
IsisSessionScope-d beans that belong to the current thread, then clear the 
IsisSession stack (of the current thread). (edited) 

The IsisSessionScope-d beans are managed by Spring, that is Spring creates them 
and registers their destruction runnables.

Requires Provider idiom: we fail early if one tries to inject an 
IsisSessionScope-d bean directly. The thrown exception gives a hint, how to fix 
it. (Use the Provider<> idiom instead)


> Docs for new IsisInteractionScope
> ---------------------------------
>
>                 Key: ISIS-2301
>                 URL: https://issues.apache.org/jira/browse/ISIS-2301
>             Project: Isis
>          Issue Type: Improvement
>          Components: Isis Docs &amp; Website
>            Reporter: Andi Huber
>            Assignee: Andi Huber
>            Priority: Major
>             Fix For: 2.0.0-M4
>
>
> We allow IsisInteractions to be nested. The @IsisInteractionScope is always 
> bound to the top-level IsisInteraction of the current thread's session stack. 
> (first stack element, aka bottom of stack) 
> Isis (not Spring) is aware, when any IsisInteractionScope ends. So at the end 
> of each IsisInteractionScope, we call the destruction runnables on the 
> IsisInteractionScope-d beans that belong to the current thread, then clear 
> the IsisInteraction stack (of the current thread). (edited) 
> The IsisInteractionScope-d beans are managed by Spring, that is Spring 
> creates them and registers their destruction runnables.
> Requires Provider idiom: we fail early if one tries to inject an 
> IsisInteractionScope-d bean directly. The thrown exception gives a hint, how 
> to fix it. (Use the Provider<> idiom instead)



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to