WildFly 41 is released!
I’m happy to announce that the new WildFly, WildFly EE 10 and WildFly Preview 41.0.0.Final releases are available for download at https://wildfly.org/downloads. The Galleon feature-packs for WildFly 41 are available in Maven Central.
New and Notable
We feature-boxed the WildFly 40 release in order to deliver EE 11 support, which meant it was released over a month later than our normal January/April/July/October cadence. We wanted to get back to the normal cadence for WildFly 41. This meant the development cycle for 41 was quite short, but we were still able to provide quite a lot of new goodies:
-
Bootable jars We’ve enhanced the
wildfly-cloud-galleon-packand thewildfly-maven-pluginto support bootable jar packaging on the cloud. You can now take advantage of the cloud optimizations provided by thewildfly-cloud-galleon-packwhen using a bootable jar. -
JDK 25 images We have introduced a JDK 25 variant of our container image, S2I builder image and runtime image. These JDK 25 images replace the previous JDK 17 images, which are no longer being updated.
-
UBI 10 images We also shifted our images from basing on
ubi9-minimaltoubi10-minimal.
We promoted a number of existing features to a higher stability level, making them newly available in servers that are limited to that stability level:
-
In WildFly 32, we added
previewstability support for configuring additionalscopevalues for OpenID Connect authentication requests. This feature is now provided at thecommunitystability level. -
In WildFly 33, we added
previewstabilityelytron-oidc-clientsubsystem support for authentication requests sent as a signed and encrypted request object. This feature is now provided at thecommunitystability level. -
In WildFly 39 we added
communitystability support for TLS configuration for TCP-based JGroups transport protocols. This feature is now provided at thedefaultstability level. -
In WildFly 40 we added
previewstability support for logging out of an application secured with OIDC. This feature is now provided at thedefaultstability level.
We also introduced a couple of notable behavior improvements in the HA/clustering and transaction management areas:
-
Infinispan cache stores now default to non-segmented storage, changing the previous default behavior.
-
The JGroups
FD_SOCK2failure detection ports were moved out of the OS ephemeral port range to prevent conflicts, with theport_rangeset to0for deterministic binding. -
We added a new
transactions-recovery-graceful-shutdownattribute in thetransactionssubsystem. When set towait, this allows transaction recovery to continue operating during a WildFly graceful shutdown, helping avoid data loss for in-flight transactions. Work on transaction recovery and graceful shutdown is ongoing.
Finally, we updated a wide range of dependencies to their latest versions, improving performance, stability, and security. Notable upgrades include:
-
Apache MINA SSHD 2.18.0, addressing CVE-2026-48827
-
Apache Artemis 2.54, addressing CVE-2026-32642
-
Apache CXF 4.1.8-jbossorg-1, addressing numerous CVEs
-
Jackson 2.21.5, addressing numerous CVEs and GHSA-mhm7-754m-9p8w
-
Netty 4.1.136, addressing numerous CVEs
-
Hibernate ORM 7.4.5 in standard WildFly and WildFly Preview
-
Hibernate Search 8.4.0 in standard WildFly and WildFly Preview
WildFly EE 10 Variant
The WildFly 41 release includes an update of the "WildFly EE 10" variant that we introduced with WildFly 40. While standard WildFly and WildFly Preview have moved on to EE 11, the WildFly EE 10 variant still supports the EE 10 specifications.
The purpose of WildFly EE 10 is to give our users a bit more time to migrate to EE 11 following standard WildFly 40’s move to EE 11, while still getting the bug fixes and non-EE-specific features that come with keeping up with the latest release.
For more on WildFly EE 10, please see:
-
Our Using the WildFly EE 10 Feature-pack step-by-step guide to using WildFly EE 10.
-
The Different Flavors of WildFly document, which delves more deeply into the differences between standard WildFly, WildFly EE 10 and WildFly Preview.
-
The WildFly Maven Plugin Guide which explains more about how to use WildFly EE 10 when configuring provisioning in your
pom.xml. -
The Galleon Provisioning Guide, for those who use the Galleon CLI tool to provision.
|
Important
|
WildFly EE 10 is a temporary addition to the set of WildFly variants. We plan to produce a WildFly EE 10 variant for 40.0.0.Final, 40.0.1.Final, 41.0.0.Final and 41.0.1.Final. We will discontinue the variant with WildFly 42, which is planned for the fall of 2026. |
Supported Specifications
Jakarta
Standard WildFly 41 supports the EE 11 Platform as well as the Web Profile and the Core Profile. WildFly is EE 11 Platform, Web Profile and Core Profile compatible when running on Java SE 17 and Java SE 21.
Evidence demonstrating our compatibility is available in the WildFly Certifications repository on GitHub:
| Specification | Compatibility Evidence |
|---|---|
EE 11 Full Platform |
|
EE 11 Web Profile |
|
EE 11 Core Profile |
|
WildFly EE 10 41 supports the EE 10 Platform as well as the Web Profile and the Core Profile. WildFly EE 10 is EE 10 Platform, Web Profile and Core Profile compatible when running on Java SE 17 and Java SE 21.
Evidence demonstrating our compatibility is available in the WildFly Certifications repository on GitHub:
| Specification | Compatibility Evidence |
|---|---|
EE 10 Full Platform |
|
EE 10 Web Profile |
|
EE 10 Core Profile |
|
MicroProfile
WildFly 41 supports the MicroProfile Platform 7.1 specifications, along with several other MicroProfile specifications that are not part of the MicroProfile Platform. The full listing is available in the Getting Started Guide.
Compatibility evidence for the specifications that are part of MicroProfile 7.1 can be found in the WildFly Certifications repository on GitHub.
WildFly Preview
For the 41 release, standard WildFly and WildFly Preview are providing implementations of the same set of standards, although there are other differences between the two, as outlined in the Different Flavors of WildFly document.
Beginning with WildFly Preview 42, we hope to begin bringing early milestone releases of EE 12 APIs and implementations into WildFly Preview.
|
Important
|
The WildFly project makes no claims about the compatibility of WildFly Preview with the Jakarta and MicroProfile specifications it implements. |
Java SE Support
Our recommendation is that you run standard WildFly 41 and WildFly Preview 41 on Java SE 25, since that is the latest LTS JDK release.
For WildFly EE 10 our recommendation is that you run on Java SE 21. This is not because of any significant issues we are aware of with running on SE 25, other than if you run with the Java SecurityManager enabled. SE 25 does not support enabling the SecurityManager. The EE 10 specifications require support for the SecurityManager in some contexts.
|
Note
|
We do not claim to be compatible with EE 11 on SE 25. We are satisfied with what we see when running the TCKs on SE 25, so we are comfortable making SE 25 our recommended SE version for standard WildFly 41. However, if running WildFly on an SE version where it passes the EE TCKs is important to you, we suggest using SE 21 or 17. |
All three WildFly 41 variants — standard WildFly, WildFly EE 10 and WildFly Preview — are heavily tested and run well on Java 25, 21 and 17. Our recommendation of a later SE version over SE 21 or SE 17 is solely because as a general principle we recommend being on later LTS releases, not because of any problems with WildFly on the other supported LTS versions.
While we recommend using LTS releases outside of development environments, we believe WildFly runs well on SE 26, which is the most recent non-LTS release, released this March. By runs well, I mean the main WildFly nightly testsuite jobs produce results equivalent to what we see with SE 17, SE 21 and SE 25. We want developers who are trying to evaluate what SE 26 means for their applications to be able to look to WildFly as a useful development platform.
Please note that WildFly runs in classpath mode.
|
Warning
|
It is likely that WildFly will withdraw support for SE 17 in some release in the next year. We do not plan to do so in WildFly 42 though, unless some required components stop supporting SE 17. In any case, we recommend that users on SE 17 migrate their workloads to SE 21 or 25. |
Incompatible Changes
There are some incompatible changes in WildFly 41 that may affect some users:
-
As discussed in the New and Notable section, container images are available for JDK 21 and 25 on UBI 10 minimal. There is no longer a container image for JDK 17 (the JDK 21 image can safely replace its usage). The latest tag now points to the JDK 25 image.
-
We also added a JDK 25 variant of our S2I builder image and runtime image, and stopped producing new JDK 17 variants. The existing JDK 17 images can still work with WildFly 41, but they are seriously out-of-date when it comes to security vulnerability patches. Users are strongly encouraged to move to the current images.
-
We deprecated support for the AJP listener in the
undertowsubsystem. Including theajp-listenerin your configuration will result in a WARN message in the log. The AJP listener is deprecated due to its inherent security deficiencies (no encryption, no authentication, CVEs), its inability to support modern protocols (WebSocket, HTTP/2), and protocol stagnation (no development since 2001). Users should migrate to HTTP proxying which offers all the same functionality with proper TLS and mutual authentication support.
New and Noteworthy Contributors
WildFly gets great contributions from so many people. Time to thank a few of them!
-
@aidentZhang made their first contribution in #20107
-
@christosderetzis made their first contribution in #20096
-
@cruiztorresj made their first PR contribution to main code base in #20194 and made a number of other helpful contributions during over the last few months.
-
@Ohifeme made their first WildFly Core contribution in #6806
Thank you, all! It’s great to see so many new contributors!
Rado Husar did great stuff all over the place, from driving the JGroups TLS support feature promotion, to finding and resolving critical bugs, to clearing lots of technical debt, to being the key person keeping our PR queue (somewhat) under control. Thank you, Rado!
Release Notes
The full WildFly 41 release notes are available in GitHub. Issues fixed in the underlying WildFly Core 33.0.0 release are listed in the WildFly Core JIRA.
Please try it out and give us your feedback, in the WildFly google group, Zulip or JIRA.
Best regards,
Brian
By Brian Stansberry
| July 16, 2026