• Share this article:

Migrating to Jakarta EE 9

Thursday, December 3, 2020 - 12:22 by Ivar Grimstad

Jakarta EE 9 is out, and with it the namespace change from javax.* to jakarta.*. When we talk about the namespace change, we mostly talk about changing the import statements in your code when migrating to Jakarta EE 9. But there is more to it. I have created a slightly more advanced “Hello, World” application in order to highlight a couple more. I won’t claim that these are all areas, but I hope I have touched most…

Complete Duke Architecture

The Complete Duke application provides a RESTful endpoint that produces a JSON message using Jakarta RESTful Web Services 3.0, which in turn uses Jakarta JSON Binding 2.0 to generate the JSON response. The message is fetched through Stateless Jakarta Enterprise Bean 4.0 and Jakarta Persistence API 3.0 from a relational database. To spice it up, a Jakarta CDI 3.0 Extension is used to produce a log message at deployment.

While this may seem like slightly overkill for a “Hello, World” application, but it is also a very good example of the different areas of your codebase that are affected by the new namespace:
– Maven dependencies
– Import statements and fully qualified class names
– XML Schema namespaces
– Properties
– Bootstrapping
– Dynamic data

During one of the Studio Jakarta EE 15-minute sessions of JakartaOne Livestream 2020, I will convert Complete Duke from Jakarta EE 8 to Jakarta EE 9 in 15 minutes or less!

The code is available on GitHub where there is a step-by-step guide you can follow to perform the same migration as I will do live during JakartaOne Livestream 2020. This is a session you will want to attend!