[cdi-dev] async: back to completion future?

Martin Kouba mkouba at redhat.com
Mon Mar 7 02:35:37 EST 2016

Dne 6.3.2016 v 15:39 Romain Manni-Bucau napsal(a):
> Hi guys,
> as a user having a ComlpetionStage makes me loose some JDK utilities,
> can we move back to CompletionFuture?
> It would allow for instance:
> // doesn't work with CompletionStage
> CompletionFuture.allOf(event1.fireAsync(...), event2.fireAsync(...))
>        .then(...)

Well, this should work if the underlying CompletionStage impl supports 
toCompletableFuture(), i.e. in Weld 3:


AFAIK the default async execution facility of CompletableFuture is 
ForkJoinPool.commonPool() which is not a good fit for Java EE. Using the 
CompletionStage interface allows us to wrap the async calls without the 
specified executor (e.g. CompletionStage.thenApplyAsync(Function<? super 
T, ? extends U>)) and supply a default one provided by the impl.

> Romain Manni-Bucau
> @rmannibucau <https://twitter.com/rmannibucau> | Blog
> <http://rmannibucau.wordpress.com> | Github
> <https://github.com/rmannibucau> | LinkedIn
> <https://www.linkedin.com/in/rmannibucau> | Tomitriber
> <http://www.tomitribe.com>
> _______________________________________________
> cdi-dev mailing list
> cdi-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/cdi-dev
> Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (http://www.apache.org/licenses/LICENSE-2.0.html). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.

Martin Kouba
Software Engineer
Red Hat, Czech Republic

More information about the cdi-dev mailing list