<div dir="ltr"><div dir="ltr">On Thu, Jun 11, 2020 at 9:08 AM Tristan Tarrant &lt;<a href="mailto:ttarrant@redhat.com">ttarrant@redhat.com</a>&gt; wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I commented on GitHub, but probably this is more appropriate:<br>
<br>
I really so no point in building releases with JDK 8 any more:<br>
<br>
* Using the -release 8 compiler argument produces the correct bytecode <br>
and verifies JDK method signature compatibility similar to what animal <br>
sniffer did<br></blockquote><div><br></div><div>To add to this -release produces the correct bytecode, but -target does not so it is important to use the correct one of these.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
* It acts as an obstacle to the usage of JDK-specific improvements<br></blockquote><div><br></div><div>As we found out, such as preventing the use of new methods added to SSLEngine and SSLSocket in the most recent Java 8 releases.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
* Raises awareness about incompatibilities that might happen with newer <br>
JDKs.<br>
<br>
I would even go as far as saying that you should build upstream <br>
nightlies with the latest stable JDK (14) even if it isn&#39;t an LTS just <br>
to validate that last statement.<br></blockquote><div><br></div><div>Let&#39;s not push it ;-) - we already know PicketBox and it&#39;s integration will crumble when we get to that version ;-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
<br>
Tristan<br>
<br>
<br>
<br>
On 10/06/2020 23:39, Brian Stansberry wrote:<br>
&gt; Thanks for this thread, Paul.<br>
&gt; <br>
&gt; On Wed, Jun 10, 2020 at 3:31 PM Paul Ferraro &lt;<a href="mailto:paul.ferraro@redhat.com" target="_blank">paul.ferraro@redhat.com</a> <br>
&gt; &lt;mailto:<a href="mailto:paul.ferraro@redhat.com" target="_blank">paul.ferraro@redhat.com</a>&gt;&gt; wrote:<br>
&gt; <br>
&gt;     In version 30 of jboss-parent-pom, David Lloyd added the ability to<br>
&gt;     easily produce multi-release jars [1].  While several components<br>
&gt;     consumed by WildFly currently produce multi-release jars (e.g.<br>
&gt;     wildfly-common, Undertow, Infinispan, etc.), as far as I am aware,<br>
&gt;     none of the modules in WildFly (or wf-core) do this.<br>
&gt; <br>
&gt;     I recently created a pull request to WildFly [2] that ports a<br>
&gt;     collection class from Undertow [3], which, when built using Java 9+,<br>
&gt;     results in faster expiration scheduling for persistent HttpSessions<br>
&gt;     and local @Stateful EJBs.  While the changes introduced in this PR are<br>
&gt;     still compatible with JDK 8 [4], this optimization will not be<br>
&gt;     available to users unless they build wildfly using JDK 9+ in order to<br>
&gt;     produce the requisite multi-release jar for the<br>
&gt;     wildfly-clustering-ee-cache module.<br>
&gt; <br>
&gt;     What do people think about this?<br>
&gt; <br>
&gt;     Is there any reason why we should *not* compile using JDK 11 when<br>
&gt;     building releases (while still maintaining Java 8 source<br>
&gt;     compatibility, of course)?<br>
&gt; <br>
&gt; <br>
&gt; One issue I can think of is CI. We&#39;d probably need to alter jobs to <br>
&gt; build with JDK 11 and then test with JDK 8. I think our integration <br>
&gt; testsuite runs for JDK 8 should be running a server built the way a <br>
&gt; released server is built.<br>
&gt; <br>
&gt; The tests in the subsystems wouldn&#39;t run with JDK 8 unless we had <br>
&gt; separate jobs just for that purpose (which is no big deal.)<br>
&gt; <br>
&gt; To be fair, our JDK 11 CI jobs are building with JDK 11 and then testing <br>
&gt; that, and our releases are built with JDK 8. So the existence of a <br>
&gt; mismatch is not new. My impression though is JDK 8 remains dominant, so <br>
&gt; shifting the mismatch to the JDK 8 side is a concern.<br>
&gt; <br>
&gt; This isn&#39;t a showstopper kind of thing for me, it&#39;s just something to <br>
&gt; think about and make a conscious plan.<br>
&gt; <br>
&gt; <br>
&gt;     Even if we continue to create releases using JDK 8 builds, does anyone<br>
&gt;     object to giving users the  option to build WildFly with multi-release<br>
&gt;     module jars when compiling with a more recent JDK version?<br>
&gt; <br>
&gt; <br>
&gt; I don&#39;t.<br>
&gt; <br>
&gt; <br>
&gt;     [1] <a href="https://issues.redhat.com/browse/WFLY-10178" rel="noreferrer" target="_blank">https://issues.redhat.com/browse/WFLY-10178</a><br>
&gt;     [2] <a href="https://github.com/wildfly/wildfly/pull/13334" rel="noreferrer" target="_blank">https://github.com/wildfly/wildfly/pull/13334</a><br>
&gt;     [3]<br>
&gt;     <a href="https://github.com/undertow-io/undertow/blob/master/core/src/main/java9/io/undertow/util/FastConcurrentDirectDeque.java" rel="noreferrer" target="_blank">https://github.com/undertow-io/undertow/blob/master/core/src/main/java9/io/undertow/util/FastConcurrentDirectDeque.java</a><br>
&gt;     [4] <a href="https://ci.wildfly.org/buildConfiguration/WFPR/207451" rel="noreferrer" target="_blank">https://ci.wildfly.org/buildConfiguration/WFPR/207451</a><br>
&gt; <br>
&gt;     _______________________________________________<br>
&gt;     wildfly-dev mailing list<br>
&gt;     <a href="mailto:wildfly-dev@lists.jboss.org" target="_blank">wildfly-dev@lists.jboss.org</a> &lt;mailto:<a href="mailto:wildfly-dev@lists.jboss.org" target="_blank">wildfly-dev@lists.jboss.org</a>&gt;<br>
&gt;     <a href="https://lists.jboss.org/mailman/listinfo/wildfly-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/wildfly-dev</a><br>
&gt; <br>
&gt; <br>
&gt; <br>
&gt; -- <br>
&gt; Brian Stansberry<br>
&gt; Manager, Senior Principal Software Engineer<br>
&gt; Red Hat<br>
&gt; <br>
&gt; _______________________________________________<br>
&gt; wildfly-dev mailing list<br>
&gt; <a href="mailto:wildfly-dev@lists.jboss.org" target="_blank">wildfly-dev@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/wildfly-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/wildfly-dev</a><br>
&gt; <br>
<br>
_______________________________________________<br>
wildfly-dev mailing list<br>
<a href="mailto:wildfly-dev@lists.jboss.org" target="_blank">wildfly-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/wildfly-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/mailman/listinfo/wildfly-dev</a></blockquote></div></div>