[
https://issues.jboss.org/browse/CDI-452?page=com.atlassian.jira.plugin.sy...
]
John Ament commented on CDI-452:
--------------------------------
[~edburns] I just want to confirm. Your expectation here is that you can bridge the
existing request context/session context from the servlet request in to the new async
thread, allowing the same instances of the beans (and in turn, their data) to be accessed
in both threads.
If so, what synchronization would you expect, if any, to be provided by the CDI container?
Or would you prefer to leave it to the developer to handle synchronization concerns?
Specify that web scoped (request, session, application) beans are
injectable in async servlets
----------------------------------------------------------------------------------------------
Key: CDI-452
URL:
https://issues.jboss.org/browse/CDI-452
Project: CDI Specification Issues
Issue Type: Feature Request
Components: Java EE integration
Affects Versions: 1.0
Reporter: Ed Burns
Priority: Trivial
Fix For: 2.0 (discussion)
Consider this code based on this blog post: <
https://weblogs.java.net/blog/swchan2/archive/2013/06/06/asynchronous-ser...
>.
{code}
@WebServlet(urlPatterns="/test2", asyncSupported=true)
public class TestAsyncMESServlet extends HttpServlet {
@Resource
private ManagedExecutorService managedExecutorService;
@Inject
MyRunnableImpl myRunnableImpl;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
final AsyncContext asyncContext = req.startAsync();
final PrintWriter writer = res.getWriter();
managedExecutorService.submit(myRunnableImpl);
}
public static class MyRunnableImpl implements Runnable {
@Inject
Bean bean; // Bean is @RequestScoped
@Override
public void run() {
writer.println("Done");
asyncContext.complete();
}
}
}
{code}
According to Jozef Hartzinger, this currently does not work, because only @Dependent and
@ApplicationScoped beans are propagated to the new thread. To keep CDI relevant in light
of the reactive programming movement and the popularity of node.js, we need to make this
work.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)