<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>I think this is a very bad idea. It's better not to use either API and wait to sort out how CompletableFuture can be used in EE consistently. Because of backwards compatibility rules, it is better to have no API than a bad API.</div><div><br>On Mar 7, 2016, at 3:45 AM, Romain Manni-Bucau &lt;<a href="mailto:rmannibucau@gmail.com">rmannibucau@gmail.com</a>&gt; wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2016-03-07 9:07 GMT+01:00 Martin Kouba <span dir="ltr">&lt;<a href="mailto:mkouba@redhat.com" target="_blank">mkouba@redhat.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
Dne 7.3.2016 v 09:03 Romain Manni-Bucau napsal(a):<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
Le 7 mars 2016 08:35, "Martin Kouba" &lt;<a href="mailto:mkouba@redhat.com" target="_blank">mkouba@redhat.com</a><br></span>
&lt;mailto:<a href="mailto:mkouba@redhat.com" target="_blank">mkouba@redhat.com</a>&gt;&gt; a écrit :<span class=""><br>
&nbsp;&gt;<br>
&nbsp;&gt; Dne 6.3.2016 v 15:39 Romain Manni-Bucau napsal(a):<br>
&nbsp;&gt;<br>
&nbsp;&gt;&gt; Hi guys,<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; as a user having a ComlpetionStage makes me loose some JDK utilities,<br>
&nbsp;&gt;&gt; can we move back to CompletionFuture?<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; It would allow for instance:<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; // doesn't work with CompletionStage<br>
&nbsp;&gt;&gt; CompletionFuture.allOf(event1.fireAsync(...), event2.fireAsync(...))<br>
&nbsp;&gt;&gt;&nbsp; &nbsp; &nbsp; &nbsp; .then(...)<br>
&nbsp;&gt;<br>
&nbsp;&gt;<br>
&nbsp;&gt; Well, this should work if the underlying CompletionStage impl<br>
supports toCompletableFuture(), i.e. in Weld 3:<br>
&nbsp;&gt;<br>
<br>
Yes but it is not natural to convert it IMO = we can do better<br>
<br>
&nbsp;&gt; CompletableFuture.allOf(event1.fireAsync(...).toCompletableFuture(),<br>
event2.fireAsync(...).toCompletableFuture())<br>
&nbsp;&gt;<br>
&nbsp;&gt; AFAIK the default async execution facility of CompletableFuture is<br>
ForkJoinPool.commonPool() which is not a good fit for Java EE. Using the<br>
CompletionStage interface allows us to wrap the async calls without the<br>
specified executor (e.g. CompletionStage.thenApplyAsync(Function&lt;? super<br>
T, ? extends U&gt;)) and supply a default one provided by the impl.<br>
&nbsp;&gt;<br>
<br>
Should use the pool in which the evznt is fired then "then step" is<br>
synchronous is my sample so all is decided at fire time<br>
</span></blockquote>
<br>
I don't talk about your particular example - I understand that it's not using async exec (although the "then()" method does not exist).<br>
<br></blockquote><div><br></div><div>was supposed to represent the different flavours (thenRun, thenCompose, ...) ;).</div><div><br></div><div>That said I agree on the state switching the pool is better but with these 2 notes:</div><div><br></div><div>- could be better to hide these poorly designed methods then -&gt; don't use CompletionXXX but a CDI API with a bridge to CompletionX to let the user go back on SE tools</div><div>- we still don't have a *standard* config for the pool(s) underlying CDI features so it sounds as poor as SE solution IMO (at least a core/max/ttl config in beans.xml)</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">
<br>
&nbsp;&gt;<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; Romain Manni-Bucau<br>
&nbsp;&gt;&gt; @rmannibucau &lt;<a href="https://twitter.com/rmannibucau" rel="noreferrer" target="_blank">https://twitter.com/rmannibucau</a>&gt; | Blog<br>
&nbsp;&gt;&gt; &lt;<a href="http://rmannibucau.wordpress.com" rel="noreferrer" target="_blank">http://rmannibucau.wordpress.com</a>&gt; | Github<br>
&nbsp;&gt;&gt; &lt;<a href="https://github.com/rmannibucau" rel="noreferrer" target="_blank">https://github.com/rmannibucau</a>&gt; | LinkedIn<br>
&nbsp;&gt;&gt; &lt;<a href="https://www.linkedin.com/in/rmannibucau" rel="noreferrer" target="_blank">https://www.linkedin.com/in/rmannibucau</a>&gt; | Tomitriber<br>
&nbsp;&gt;&gt; &lt;<a href="http://www.tomitribe.com" rel="noreferrer" target="_blank">http://www.tomitribe.com</a>&gt;<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; _______________________________________________<br>
&nbsp;&gt;&gt; cdi-dev mailing list<br></span>
&nbsp;&gt;&gt; <a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:cdi-dev@lists.jboss.org" target="_blank">cdi-dev@lists.jboss.org</a>&gt;<span class=""><br>
&nbsp;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/cdi-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/cdi-dev</a><br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;&gt; Note that for all code provided on this list, the provider licenses<br>
the code under the Apache License, Version 2<br>
(<a href="http://www.apache.org/licenses/LICENSE-2.0.html" rel="noreferrer" target="_blank">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas<br>
provided on this list, the provider waives all patent and other<br>
intellectual property rights inherent in such information.<br>
&nbsp;&gt;&gt;<br>
&nbsp;&gt;<br>
&nbsp;&gt; --<br>
&nbsp;&gt; Martin Kouba<br>
&nbsp;&gt; Software Engineer<br>
&nbsp;&gt; Red Hat, Czech Republic<br>
<br>
</span></blockquote><div class="HOEnZb"><div class="h5">
<br>
-- <br>
Martin Kouba<br>
Software Engineer<br>
Red Hat, Czech Republic<br>
</div></div></blockquote></div><br></div></div>
</div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>cdi-dev mailing list</span><br><span><a href="mailto:cdi-dev@lists.jboss.org">cdi-dev@lists.jboss.org</a></span><br><span><a href="https://lists.jboss.org/mailman/listinfo/cdi-dev">https://lists.jboss.org/mailman/listinfo/cdi-dev</a></span><br><span></span><br><span>Note that for all code provided on this list, the provider licenses the code under the Apache License, Version 2 (<a href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>). For all other ideas provided on this list, the provider waives all patent and other intellectual property rights inherent in such information.</span></div></blockquote></body></html>