MMS • A N M Bazlur Rahman
Article originally posted on InfoQ. Visit InfoQ
Jakarta EE 10, released on September 22, 2022, is the third major and fourth overall release of Jakarta EE by the Jakarta EE Working Group since Oracle donated Java EE 8 to the Eclipse Foundation in 2017. This release aims to deliver a set of coordinated specifications for building modernized, simplified, and lightweight cloud-native Java applications across the spectrum of Jakarta EE technologies, such as the Jakarta EE Platform, Web, and the new Core profiles.
The new Core Profile defines a subset of the Jakarta EE specifications geared toward microservices development, smaller runtimes, and ahead-of-time (AOT) compilation.
Java SE 11 is the new baseline runtime supported by Jakarta EE-compatible implementations. However, developers can also develop and deploy the Jakarta EE application on Java 17, which is the most current LTS release. This leads to the opportunity to build modularized applications (introduced in Java 9) and offers improved integration across component APIs.
Jakarta EE 10 provides new functionality in over 20 component specifications. For example:
- A new CDI-Lite specification is introduced in Jakarta Context and Dependency Injection (CDI) 4.0, allowing a reflection-free programming model while maximizing resilience, testability, and maintainability in comparison to conventional approaches.
- Jakarta RESTful Web Services 3.1 standardizes a Java SE Bootstrap API, which allows REST services outside of the Jakarta EE environment, e.g. unit tests, integration tests, etc. This specification also standardizes the multipart form data, which has been missing for many years, and developers needed either Servlets or a vendor-specific REST API to handle the multipart media type.
- Jakarta Persistence 3.1 now supports java.util.UUID, to be used as a basic type of field, which is very convenient for entity IDs in the cloud environment since many databases don’t automatically generate UUID. It also adds several new functions to the Query Language and Criteria API, making Jakarta Persistence much more versatile and allowing developers to write more complex queries utilizing the full power of entity mappings without having to resort to native SQL queries.
- Jakarta Faces 4.0 brings a new API to define the full view (HTML Pages) using only Java code.
- Jakarta Security 3.0 brings necessary and standard support for the OpenID Connect protocol, which has become widely used to login using other services, e.g., Facebook, Google, Twitter, etc.
- Jakarta Concurrency 3.0 adds asynchronous methods with a new Asynchronous annotation, which doesn’t require using EJB, and allows developers to specify the thread pool.
In addition to these, a significant number of other component specifications are introducing major or minor version updates to reflect significant changes in their respective specifications and APIs. Besides, many deprecated features have been removed, streamlining and enhancing the developer experience.
Regarding this release, Reza Rahman, principal program manager at Microsoft and Jakarta EE ambassador, discussing the Jakarta EE 10 release during the launch celebration, stated:
Jakarta EE 10 is an incredibly important release. The earlier releases, such as 9 and 9.1, were essential; however, they didn’t bring any direct value in terms of changes or innovations. This release is foundationally important as it brings the long pending set of changes that, if you are somebody who relies on Jakarta EE as a technology you haven’t really had in the past few years, that’s going to change. And hopefully, moving forward and, more importantly, it’s also sort of proof in the way that the Jakarta EE process can also continue to deliver features and innovations in the same way that Java EE had done for some period of time.
Alongside the release of Jakarta EE 10, the Eclipse Foundation also released the results of its 2022 Jakarta EE Developer Survey, which include the following key results:
- Jakarta EE usage increased from 47% in 2021 to 53% in 2022, while Spring/Spring Boot and MicroProfile usage experienced slight declines.
- The Jakarta EE community is looking for faster support from existing Java EE/Jakarta EE or cloud vendors (28%).
- Despite being released less than a year ago, the use of Java 17 (the LTS release of Java SE) has surged to 26%. Java 11 use remains steady at 57% (58% in 2021). This is a good indicator that enterprises closely follow the LTS releases.
Developers who wish to evaluate Jakarta EE 10 can leverage the article by Ivar Grimstad, Jakarta EE Developer Advocate, and his presentation at JavaZone 2022, read the specifications, and download the compatible products.