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