[ 
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 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 IsisSessionScope
> -----------------------------
>
>                 Key: ISIS-2301
>                 URL: https://issues.apache.org/jira/browse/ISIS-2301
>             Project: Isis
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Andi Huber
>            Assignee: Andi Huber
>            Priority: Major
>             Fix For: 2.0.0
>
>
> 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)



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

Reply via email to