Skip to the content.

Upgrading to Jakarta EE 9

In the Jakarta EE 9 Milestone Release Party, the Jakarta team shared the latest work from Eclipse EE4j project.

You can also read Jakarta EE is taking off from the official Eclipse blog to know more details about the current status of the Jakarta EE specification and Eclipse EE4j project.

What is new in Jakarta EE 9

No panic, there are almost no new features added in Jakarta EE 9, but it will bring breaking changes in your codes if you are upgrading from Jakarta EE/Java EE 8.

Upgrading to Jakarta EE 9

Currently the Jakarta EE vendor are busily moving to the new Jakarta EE 9 platform.

Eclipse transformer tooling project provides some utilities (such as cli, maven plugin, etc. ) to help you to upgrade your codes in a batch mode, currently Jakarta EE 9 rules is under development.

Another cool tool - tomcat-jakartaee-migration is from Apache Tomcat project, which is also used to handle the namespace changes automatically when migrating to Jakarta EE 9 platform.

Here we will use Glassfish v6.0.0.M1 as target runtime , and manually upgrade my former Jakarta EE 8 starter to Jakarta EE 9 platform.

Note : Unfortunately, Glassfish v6.0.0.M1 still requires Java 8 at runtime. ~Java 11 support will be added in the next milestones~ Java 11 in Glassfish is postponed to 6.1.

Getting Glassfish v6.0.0.M1

Download Glassfish v6.0.0.M1 and extract files into your discs.

Open your terminal, and switch to the glassfish6/bin folder, and start up Glassfish manually by executing the following command.

asadmin start-domain domain1

Clean up the Jakarta EE 8 Codes

Now let’s clean up the codes of Jakarta EE 8 starter and migrate to Jakarta EE 9 step by step.

Here I describe the steps in a manual way, when the Eclipse Transformer project becomes mature, maybe I will turn back and introduce it in another post.

Running the application

At this moment when I am writing this post, you have to use Java 8 to build and run the application on Glassfish 6.0M1.

Make sure you are using Java 8 .

>java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.252-b09, mixed mode)

We will switch to Java 11 as default JVM when Glassfish v6 is ready for Java 11, the products from other Jakarta EE providers, such as Payara Server, WildFly, Open Liberty, etc. are compatible with Java 11 for a long time.

Next, follow these steps to deploy our sample application on the running Glassfish server.

Staying informed

I will keep updating this sample project as the related products is coming to the Jakarta EE 9 support, eg.

And do not forget track the latest new of Jakarta EE from the official Jakarta EE website.