WildFly 35 is released!
I’m pleased to announce that the new WildFly and WildFly Preview 35.0.0.Final releases are available for download at https://wildfly.org/downloads.
New and Notable
This quarter we had a heavy focus on MicroProfile, particularly MicroProfile 7.0, which I’m pleased to say WildFly 35 fully supports. Improvements in the MicroProfile area include:
-
WildFly now supports MicroProfile Fault Tolerance 4.1.
-
WildFly now supports MicroProfile OpenAPI 4.0.
-
Standard WildFly now supports MicroProfile REST Client 4.0. This was previously supported in WildFly Preview.
-
Standard WildFly now supports MicroProfile Telemetry 2.0. This was previously supported in WildFly Preview.
-
Our MicroProfile Reactive Messaging subsystem has added OpenTelemetry tracing integration for Kafka connectors and AMQP connectors.
There’s plenty of new things beyond MicroProfile area as well, though:
-
WildFly Preview is a compatible implementation of the Jakarta EE 11 Core Profile, which was released in November, independent of the work-in-progress EE 11 Platform and Web Profile specifications. WildFly Preview was one of the compatible implementations used to ratify the specification, and WildFly Preview 35 is also a compatible implementation, on both Java 17 and Java 21.
-
WildFly now includes supported
systemd
units in thebin/systemd
directory, replacing the old, unsupporteddocs/contrib/scripts/systemd
files. The new units include support for a managed domain. -
The
jaxrs
subsystem now provides JSON merge patch support. This feature allows the client to send a JSON http request with Content-Type "application/merge-patch+json", and the JSON content will be directly merged to the target resource. -
We added support for Jakarta Data 1.0 to standard WildFly. This was previously included in WildFly Preview 34; now it is available in standard WildFly as well. This feature is provided at the
preview
stability level. -
WildFly Preview has a new
vertx
subsystem and Galleon layer, intended to give users greater control over the configuration of Vert.x instances running in the server. This feature is provided at thepreview
stability level. -
We added a new Jakarta RESTful Web Services Helloworld quickstart and a new Deploying High-Availability Messaging with WildFly and AMQ 7 on OpenShift guide.
Another big thing that’s new is, as I announced in October, WildFly now requires a minimum of Java SE 17, and thus no longer supports running on Java 11.
Supported Specifications
Jakarta EE
Standard WildFly 35 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 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 |
|
Jakarta EE 10 Web Profile |
|
Jakarta EE 10 Core Profile |
|
MicroProfile
Standard WildFly 35 supports MicroProfile Platform 7.0, along with several other MicroProfile specifications that are not part of MicroProfile Platform. 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.1 |
— |
X |
MicroProfile Health 4.0 |
— |
X |
MicroProfile JWT Authentication 2.1 |
X |
X |
MicroProfile LRA 2.0 |
— |
X |
MicroProfile OpenAPI 4.0 |
— |
X |
MicroProfile Reactive Messaging 3.0 |
— |
— |
MicroProfile Reactive Streams Operators 3.0 |
— |
— |
MicroProfile Rest Client 4.0 |
X |
X |
MicroProfile Telemetry 2.0 |
— |
X |
Compatibility evidence for the above specifications that are part of MicroProfile 7.0 can be found in the WildFly Certifications repository on GitHub.
WildFly Preview and EE 11
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. The EE 11 Platform and Web Profile specifications won’t go GA before later this year. 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 I mentioned earlier, the EE 11 Core Profile specification did go GA in November and WildFly Preview 35 is a compatible implementation of that profile.
Full details on the EE specification versions provided by WildFly Preview can be found in the WildFly 35 documentation.
Java SE Support
Our recommendation is that you run WildFly 35 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 35 also is heavily tested and runs well on Java 17.
Our recommendation of SE 21 over SE 17 is solely because as a general principle we recommend being on later LTS releases, not because of any problems with WildFly on 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. We’ve also had good results with tests on Linux of an EA release of SE 24 (Oracle 24-ea+15-1658).
Please note that WildFly runs in classpath mode.
Incompatible Changes
Beginning with the WildFly 35 release, standard WildFly no longer supports running in a Java SE 11 environment. Users should run WildFly 35 on SE 21 or SE 17.
The default name of the bootable jar produced by WildFly’s maven tooling has changed from a fixed name of server-bootable.jar
to the dynamic name ${project.artifactId}-bootable.jar
where project.artifactId
is the maven artifact id of the module producing the jar. If this default value isn’t wanted, the bootable jar name can be configured.
Release Notes
The full WildFly 35 release notes are available in GitHub. Issues fixed in the underlying WildFly Core 27.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.
And, with that, I’m moving on to what I think will be a very busy WildFly 36!
Best regards,
Brian