[weld-issues] [JBoss JIRA] Assigned: (WELD-592) Support use of decorator of Callable<T>

Pete Muir (JIRA) jira-events at lists.jboss.org
Tue Aug 17 10:40:12 EDT 2010


     [ https://jira.jboss.org/browse/WELD-592?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Pete Muir reassigned WELD-592:
------------------------------

    Assignee: Peter Royle


> Support use of decorator of Callable<T>
> ---------------------------------------
>
>                 Key: WELD-592
>                 URL: https://jira.jboss.org/browse/WELD-592
>             Project: Weld
>          Issue Type: Feature Request
>          Components: Java SE Support
>            Reporter: Elias Ross
>            Assignee: Peter Royle
>
> Decorator exists for Runnable. Should allow for Callable<T> to be used as well.
> This is actually pretty useful, for example if you want to execute under a temporary new scope in the same thread, e.g.
> @Inject Instance<PaymentProcessor> paymentProcessorSource; // which implements Callable<Result>
> Result result = paymentProcessorSource.get().call();
> Or, in the case of a thread pool, you can use Future<T> etc.
> /**
>  * Decorator for all beans which implements Callable. It intercepts the call
>  * to the call() method to set up the ThreadContext for the new thread so that
>  * instances of @ThreadScoped beans can be correctly resolved.
>  */
> @Decorator
> public class CallableDecorator<T> implements Callable<T> {
>    @Inject @Delegate Callable<T> callable;
>    /**
>     * Set up the ThreadContet and delegate.
>     */
>    public T call()
>    {
>       // set up context for this thread
>       final ThreadContext threadContext = WeldSEBeanRegistrant.THREAD_CONTEXT;
>       threadContext.setBeanStore(new HashMapBeanStore());
>       threadContext.setActive(true);
>       // run the original thread
>      try {
>         return callable.call();
>     } finally {
>       threadContext.destroy();
>    }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the weld-issues mailing list