It's because we need an executor that is able to return the handle 
after starting the process in the background. Methods marked as 
asynchronous should not return anything, so we need that extra level of 
nesting to execute some things synchronously (like returning the 
handle) and others asynchronously (the task itself). Maybe in the 
future we can integrate this class more closely with 
java.util.concurrent.ExecutorService, but for the time being it's not 
really needed. I'll add some brief javadoc for this.

Carlos A. Munoz
Senior Software Engineer
Engineering - Internationalization
Red Hat

On Mon 26 Aug 2013 03:33:26 PM EST, David Mason wrote:
> In
> zanata-war/src/main/java/org/zanata/async/AsynchronousTaskExecutor.java:
>
> >  @Scope(ScopeType.STATELESS)
> >  @AutoCreate
> >  @Slf4j
> > -public class AsynchronousExecutor
> > +public class AsynchronousTaskExecutor
>
> Sounds reasonable.
>
> What is the reason not to use it directly? Might be handy to mention
> that in the javadoc.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/zanata/zanata-server/pull/141/files#r5971423>.
>