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 Version | Wildfly Version |
7.4 | 23 |
7.3 | 18 |
7.2 | 14 |
7.1 | 11 |
7.0 | 10 |
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 Version | Specifications | Java SE Support |
Jakarta EE 10 | 10 | 17, 11 |
Jakarta EE 9.1 | 9.1 | 11, 8 |
Jakarta EE 9 | 9 | 8 |
Jakarta EE 8 | 8 | 8 |
Java EE 8 | JSR 366 | 8 |
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 Version | Wildfly Version | Platform Version |
8 | 27 | Jakarta EE 10 |
7.4 | 23 | Jakarta 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.