Late last year, the Jakarta EE community released the next step in the evolution of the Jakarta EE specification. Version 9.0 of the Jakarta EE specification focuses on renaming packages and namespaces by changing to jakarta prefixed packages names in the API and to the jakarta.ee namespace in the deployment descriptor files. Additionally, the specification makes optional or removes older functions that have been deprecated or stabilized for many years.
Over the last year, the Open Liberty development team worked to implement the Jakarta EE 9 specification as it was being finalized. To avoid having to duplicate the code just to change the API package names, the team developed an open source byte code transformation technology. With this technology, Jakarta EE 8 compatible code is transformed to work with Jakarta EE 9 APIs by manipulating the byte code to convert class and property reference prefixes from
As of the 126.96.36.199-beta release, Open Liberty is the first vendor product to be Jakarta EE Web Profile 9.0 compatible. With the recent 188.8.131.52-beta release, Open Liberty is the first vendor product to be added to the Jakarta EE Platform 9.0 compatibility list. These releases continue to demonstrate Open Liberty’s leadership in the Jakarta EE technologies. With the upcoming Jakarta EE 9.1 release that adds Java 11 support to the TCK, I anticipate that Open Liberty will be added to the compatibility list for the 9.1 release when it is available since Open Liberty has supported Java 11 for the last 2 years.
Even with reaching these milestones, the journey to support Jakarta EE 9 in the Open Liberty product will continue until it is available in a non-beta release. Many Liberty value-add features need to be enabled to run with Jakarta EE 9 and still continue to work with the previous EE specifications. In the coming months, you will see additional enablement of these features in the beta releases until all are ready. Thanks to the Open Liberty pluggable feature architecture, you will be able to run your Java EE 7, Java / Jakarta EE 8 and Jakarta EE 9 applications with the same product install.