[wildfly-dev] Multi-release module JARs

Paul Ferraro paul.ferraro at redhat.com
Wed Jun 10 16:30:14 EDT 2020


In version 30 of jboss-parent-pom, David Lloyd added the ability to
easily produce multi-release jars [1].  While several components
consumed by WildFly currently produce multi-release jars (e.g.
wildfly-common, Undertow, Infinispan, etc.), as far as I am aware,
none of the modules in WildFly (or wf-core) do this.

I recently created a pull request to WildFly [2] that ports a
collection class from Undertow [3], which, when built using Java 9+,
results in faster expiration scheduling for persistent HttpSessions
and local @Stateful EJBs.  While the changes introduced in this PR are
still compatible with JDK 8 [4], this optimization will not be
available to users unless they build wildfly using JDK 9+ in order to
produce the requisite multi-release jar for the
wildfly-clustering-ee-cache module.

What do people think about this?

Is there any reason why we should *not* compile using JDK 11 when
building releases (while still maintaining Java 8 source
compatibility, of course)?

Even if we continue to create releases using JDK 8 builds, does anyone
object to giving users the  option to build WildFly with multi-release
module jars when compiling with a more recent JDK version?

[1] https://issues.redhat.com/browse/WFLY-10178
[2] https://github.com/wildfly/wildfly/pull/13334
[3] https://github.com/undertow-io/undertow/blob/master/core/src/main/java9/io/undertow/util/FastConcurrentDirectDeque.java
[4] https://ci.wildfly.org/buildConfiguration/WFPR/207451



More information about the wildfly-dev mailing list