WildFly 34 is released!

I’m pleased to announce that the new WildFly and WildFly Preview 34.0.0.Final releases are available for download at https://wildfly.org/downloads.

New and Notable

This quarter we had a heavy focus on WildFly Preview.

Supported Specifications

Jakarta EE

Standard WildFly 34 is a compatible implementation of the EE 10 Platform as well as the Web Profile and the Core Profile. WildFly is EE 10 Platform, Web Profile and Core Profile compatible when running on Java SE 11, Java SE 17 and Java SE 21.

Evidence supporting our certification is available in the WildFly Certifications repository on GitHub:

Specification Compatibility Evidence

Jakarta EE 10 Full Platform

SE 11

SE 17

SE 21

Jakarta EE 10 Web Profile

SE 11

SE 17

SE 21

Jakarta EE 10 Core Profile

SE 11

SE 17

SE 21

MicroProfile

WildFly supports numerous MicroProfile specifications. Because we no longer support MicroProfile Metrics, WildFly 34 cannot claim to be a compatible implementation of the MicroProfile 6.1 specification. However, WildFly’s MicroProfile support includes implementations of the following specifications in our "full" (e.g. standalone-full.xml) and "default" (e.g standalone.xml) configurations as well as our "microprofile" configurations (e.g. standalone-microprofile.xml):

MicroProfile Technology WildFly Full/Default Configurations WildFly MicroProfile Configuration

MicroProfile Config 3.1

X

X

MicroProfile Fault Tolerance 4.0

 — 

X

MicroProfile Health 4.0

 — 

X

MicroProfile JWT Authentication 2.1

X

X

MicroProfile LRA 2.0

 — 

X

MicroProfile OpenAPI 3.1

 — 

X

MicroProfile Reactive Messaging 3.0

 — 

 — 

MicroProfile Reactive Streams Operators 3.0

 — 

 — 

MicroProfile Rest Client 3.0

X

X

MicroProfile Telemetry 1.1

 — 

X

Compatibility evidence for the above specifications that are part of MicroProfile 6.1 can be found in the WildFly Certifications repository on GitHub.

As noted in the New and Notable section, instead of the version listed above, WildFly Preview 34 now supports later releases of two MicroProfile specifications:

WildFly Preview, EE 11 and SE 17

As I noted in the WildFly 32 release announcement, beginning with that release we are using WildFly Preview to provide a look at what we’re doing for Jakarta EE 11 support. EE 11 won’t go GA before later this year, and we don’t expect standard WildFly to support EE 11 before the WildFly 36 release. But there are milestone, Release Candidate and Final releases of many EE 11 specs and implementations available, so we are providiong those in WildFly Preview. This means for a number of EE APIs, WildFly Preview no longer provides an EE 10 compatible implementation.

However, for a number of specifications that are planning changes for EE 11 we are still offering the EE 10 variant. In future releases we’ll shift those to the EE 11 variants.

As a result of this shift to EE 11 APIs, WildFly Preview no longer supports running on Java SE 11. If you want to use WildFly Preview you’ll need to use SE 17 or higher. A number of EE 11 APIs no longer produce SE 11 compatible binaries, which means an EE 11 runtime can no longer support SE 11.

The following table lists the various Jakarta EE technologies offered by WildFly Preview 34, along with information about which EE platform version the specification relates to. Note that a number of Jakarta specifications are unchanged between EE 10 and EE 11, while other EE technologies that WildFly offers are not part of EE 11.

Jakarta EE Technology WildFly Preview Version EE Version

Jakarta Activation

2.1

10 & 11

Jakarta Annotations

3.0

11

Jakarta Authentication

3.0

10

Jakarta Authorization

3.0

11

Jakarta Batch

2.1

10 & 11

Jakarta Concurrency

3.1

11

Jakarta Connectors

2.1

10 & 11

Jakarta Contexts and Dependency Injection

4.1

11

Jakarta Data (preview stability only)

1.0

11 2

Jakarta Debugging Support for Other Languages

2.0

10 & 11

Jakarta Dependency Injection

2.0

10 & 11

Jakarta Enterprise Beans

4.0

10 & 11

Jakarta Enterprise Web Services

2.0

10 1

Jakarta Expression Language

6.0

11

Jakarta Faces

4.1

11

Jakarta Interceptors

2.2

11

Jakarta JSON Binding

3.0

10 & 11

Jakarta JSON Processing

2.1

10 & 11

Jakarta Mail

2.1

10 & 11

Jakarta Messaging

3.1

10 & 11

Jakarta MVC (preview stability only)

2.1

N/A 3

Jakarta Pages

3.1

10

Jakarta Persistence

3.2.0

11

Jakarta RESTful Web Services

4.0

11

Jakarta Security

4.0.0

11

Jakarta Servlet

6.1.0

11

Jakarta SOAP with Attachments

3.0

10 1

Jakarta Standard Tag Library

3.0

10 & 11

Jakarta Transactions

2.0

10 & 11

Jakarta Validation

3.1.0

11

Jakarta WebSocket

2.2.0

11

Jakarta XML Binding

4.0

10 1

Jakarta XML Web Services

4.0

10 1

Notes:

  1. This Jakarta EE 10 technology is not part of EE 11 but is still provided by WildFly.

  2. Jakarta Data is a new specification in EE 11.

  3. Jakarta MVC is not of the Jakarta EE Platform or the Web or Core Profile.

Java SE Support

Our recommendation is that you run WildFly 34 on Java SE 21, as that is the latest LTS JDK release where we have completed the full set of testing we like to do before recommending a particular SE version. WildFly 34 also is heavily tested and runs well on Java 17 and Java 11.

Our recommendation of SE 21 over earlier LTS releases is solely because as a general principle we recommend being on later LTS releases, not because of any problems with WildFly on SE 17 or SE 11.

However, one reason to use later SE versions is because it gets you ahead of the curve as WildFly and other projects begin to move on from supporting older SE releases. This is certainly happening, and we do not intend to support SE 11 in WildFly in WildFly 35!

Warning
The WildFly 34 series will be the last to support SE 11, so if you are running WildFly on SE 11 you should move to SE 17 or 21 as soon as possible.

WildFly Preview no longer supports SE 11, as the baseline for Jakarta EE 11 is SE 17.

While we recommend using an LTS JDK release, I do believe WildFly runs well on SE 23. By runs well, I mean the main WildFly testsuite runs with no more than a few failures in areas not expected to be commonly used. We want developers who are trying to evaluate what a newer JVM means for their applications to be able to look to WildFly as a useful development platform.

Please note that WildFly runs in classpath mode.

Incompatible Changes

We changed the Maven artifactId of the org.wildfly.bom:wildfly-microprofile user BOM to org.wildfly.bom:wildfly-expansion, so users of this BOM will need to update their poms. This BOM is intended to help developers develop applications that can run in a server provisioned using the wildfly feature pack, but which can’t run in a server only using its wildfly-ee feature pack dependency. (The org.wildfly.bom:wildfly-ee BOM is used for the wildfly-ee feature pack dependencies.) For a while now the additional functionality in the wildfly feature pack has gone beyond MicroProfile, to include things like Micrometer, so we’ve updated to the more general 'expansion' term that we use to describe this feature pack.

Release Notes

The full WildFly 34 release notes are available in GitHub. Issues fixed in the underlying WildFly Core 26.0.0 and 26.0.1 releases are listed in the WildFly Core JIRA.

Please try it out and give us your feedback, in the WildFly google group, Zulip or JIRA.

And, with that, I’m moving on to what I think will be a very busy WildFly 35!

Best regards,

Brian