[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