[cdi-dev] [JBoss JIRA] (CDI-587) Propose a way to propagate an existing context
Romain Manni-Bucau (JIRA)
issues at jboss.org
Wed Jul 18 09:44:01 EDT 2018
[ https://issues.jboss.org/browse/CDI-587?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13607583#comment-13607583 ]
Romain Manni-Bucau edited comment on CDI-587 at 7/18/18 9:43 AM:
-----------------------------------------------------------------
Since CDI 2 we could have a simple solution reusing RequestContextController and adding a method to be able to manipulate the context:
{code}
RequestContextController scope = controller.handler();
// do something
// start a new thread or eq () -> {
scope.activate();
try { /*...*/}
finally { scope.deactivate(); }
// };
{code}
It would:
1. let to the caller the thread safety responsability
2. use some kind of reference counting to not destroy the scope too early (before all deactivate are called)
was (Author: rmannibucau):
Since CDI 2 we could have a simple solution reusing RequestContextController and adding a method to be able to manipulate the context:
{code}
RequestContextController scope = controller.handler();
// do something
// start a new thread or eq () -> {
scope.activate();
try { /*...*/}
finally { scope.deactivate(); }
// };
It would:
1. let to the caller the thread safety responsability
2. use some kind of reference counting to not destroy the scope too early (before all deactivate are called)
> Propose a way to propagate an existing context
> ----------------------------------------------
>
> Key: CDI-587
> URL: https://issues.jboss.org/browse/CDI-587
> Project: CDI Specification Issues
> Issue Type: Epic
> Components: Contexts
> Affects Versions: 1.2.Final
> Reporter: Romain Manni-Bucau
>
> The overall idea is to ensure that it is not cause the code becomes asynchronous/reactive/... that we loose the instances or get another context.
> An example is starting an AsyncContext in a servlet.
> One proposal is to add a flag to ask for propagation of the context in async managed threads: @RequestScoped(inherited = true) which would reuse the same instances for these "new" threads.
> Note however this issue is not only bound to servlets even if it is the easiest example.
> The original thread disucssion on the list: http://cdi-development-mailing-list.1064426.n5.nabble.com/RequestScope-Life-Cycle-td5712701.html
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)
More information about the cdi-dev
mailing list