As recently published, RedHat planned to release a new JBoss EAP version: Release 8. A beta release is planned in Q2 this year when official release is tentatively planned in first semester 2023. One might think it is a too early to look at it, but as you know JBoss is downstream of upstream open source project Wildfly. Let’s look at the history to understand features and Java standards compatibilities.

Versions Mappings

To lay the foundation, we have to look at where we are with current Release:

JBoss EAP VersionWildfly Version
7.423
7.318
7.214
7.111
7.010

JBoss and Wildfly are based on Java standards currently known as Jakarta EE. Jakarta EE is a set of specifications extending Java SE with versions mapping as follow:

Platform VersionSpecificationsJava SE Support
Jakarta EE 101017, 11
Jakarta EE 9.19.111, 8
Jakarta EE 998
Jakarta EE 888
Java EE 8JSR 3668

As you can see, Java Enterprise Edition (EE) was renamed to Jakarta EE on release 8.

Jakarta EE 9 contains mainly a renaming of the javax.* to jakarta.* namespace. This have an importance for your application to run smoothly whether it is developed internally or out-of-the-box. On his side, RedHat decided to bypass the support of Jakarta EE 9 as JBoss EE 8 will go directly to Jakarta EE 10.

To summarize as a table:

JBoss EE VersionWildfly VersionPlatform Version
827Jakarta EE 10
7.423Jakarta EE 9.1

JBoss EAP 8 will be based on Wildfly 27 (currently in Alpha) which means we can test the new features right now. Of course, until JBoss is released this is subject to change.

JBoss EAP Version 8 Features

The main improvement, as specified in Jakarta EE, is the introduction of a new Core profile. This profile is lighter for the need of the container world (microservices and serverless architectures) to be able to spin up extra instances faster. So, additionally to the existing out-of-the-box standalone profiles, Wildfly adds two new profiles:

  • standalone-microprofile
  • standalone-microprofile-ha

These are not using some subsystems (ejb, jdr, jsf, mail) and are adding, among others, SmallRye, OpenAPI and OpenTracing.

Migration Tools

As in previous versions, RedHat provides tools to help on JBoss migration: jboss-server-migration script is stored in /bin subdirectory of your EAP home.

Even if script does not mark it as mandatory, it requires two parameters:

  • -s for home directory of source installation
  • -t for target installation

If you forgot -t, it will do in-place migration which will fail with error:

Caused by: java.nio.file.NoSuchFileException: C:\Users\ols\Documents\Technical\JBoss\jboss-eap-7.4\standalone\configuration\standalone-full-ha.xml

This is happening because script is doing a backup of all modified files with “.beforeMigration” extension. Then, it will be able to work on source file has it has been renamed.

One important step to confirm that you are doing correctly is at beginning of output. Here is an example of configuration migration from 7.3 to 7.4:

----------------------------------------------------------
----  JBoss Server Migration Tool  -----------------------
----------------------------------------------------------

Retrieving servers...
11:48:37,848 INFO  [logger] SOURCE server name: JBoss EAP, version: 7.3.0.GA.
11:48:37,890 INFO  [logger] TARGET server name: JBoss EAP, version: 7.4.0.GA.

Finally, script will output list of modified files and statuses:

----------------------------------------------------------------------------
 Task Summary
----------------------------------------------------------------------------

 server ............................................................ SUCCESS
  standalone ....................................................... SUCCESS
   standalone-configurations ....................................... SUCCESS
    standalone-configuration(source=standalone-full-ha.xml) ........ SUCCESS
    standalone-configuration(source=standalone-full.xml) ........... SUCCESS
    standalone-configuration(source=standalone-ha.xml) ............. SUCCESS
    standalone-configuration(source=standalone-load-balancer.xml) .. SUCCESS
    standalone-configuration(source=standalone.xml) ................ SUCCESS
  domain ........................................................... SUCCESS
   domain-configurations ........................................... SUCCESS
    domain-configuration(source=domain.xml) ........................ SUCCESS
   host-configurations ............................................. SUCCESS
    host-configuration(source=host-master.xml) ..................... SUCCESS
    host-configuration(source=host-slave.xml) ...................... SUCCESS
    host-configuration(source=host.xml) ............................ SUCCESS

----------------------------------------------------------------------------
 Migration Result: SUCCESS
----------------------------------------------------------------------------

xml and html versions of the report are created as well.

RedHat also provides tools to help developers in the application migration which is called Migration Toolkit for Applications.

To Summarize: Anticipation

As JBoss EAP 7 full supports ends on June 30, 2023 (extended support goes up to 2029), it is better to study migration sooner than later. Moreover, move to Jakarta EE 10 is a big step ahead that could take some time.