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

Martin Kouba mkouba at redhat.com
Mon Mar 7 03:07:07 EST 2016


Dne 7.3.2016 v 09:03 Romain Manni-Bucau napsal(a):
>
> Le 7 mars 2016 08:35, "Martin Kouba" <mkouba at redhat.com
> <mailto:mkouba at redhat.com>> a écrit :
>  >
>  > 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:
>  >
>
> Yes but it is not natural to convert it IMO = we can do better
>
>  > CompletableFuture.allOf(event1.fireAsync(...).toCompletableFuture(),
> event2.fireAsync(...).toCompletableFuture())
>  >
>  > 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.
>  >
>
> Should use the pool in which the evznt is fired then "then step" is
> synchronous is my sample so all is decided at fire time

I don't talk about your particular example - I understand that it's not 
using async exec (although the "then()" method does not exist).

>
>  >
>  >>
>  >> 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 <mailto: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
>

-- 
Martin Kouba
Software Engineer
Red Hat, Czech Republic


More information about the cdi-dev mailing list