Jakarta EE 12

State of the Java ecosystem - image of coffee cup lying on its side spilling out coffee beans

With so much attention being focused on the Spring framework and its associated projects such as Spring Boot and Spring Data, we tend to lose sight of the Jakarta Enterprise Edition (JEE). The original framework was formerly known as J2EE/Java EE.

A few years ago I wrote about the then updated Jakarta EE Framework. Let’s have a look at what’s been happening in that side of the Java ecosystem.

JEE was really the foundation for enterprise development for many of us older developers. While Spring has since won the developer mindshare war for daily enterprise work, Jakarta EE hasn’t just been sitting quietly in a corner.

In fact, the Jakarta EE 12 release cycle is currently one of the more interesting developments in the Java ecosystem. It’s the first version to fully align with the Java 25 LTS baseline. It’s foundational, evolving fast, and every Java developer should know about Jakarta EE.

If you haven’t looked at JEE in a while, you might be surprised to find that it has moved away from the heavyweight application server paradigm. Modern implementations like Open Liberty and Payara can run the ultra-lightweight MicroProfile microservices architecture.

Jakarta EE powers enterprise Java development

Jakarta EE powers enterprise Java development, and major frameworks all rely on it. Whether you’re building applications with Spring, Quarkus or Helidon, you’re relying on Jakarta EE technologies, often without even realizing it.

Jakarta EE is not a competitor to these frameworks, but rather a foundational layer on which they build and run. If you use Spring Data JPA, you’re using the Jakarta Persistence API. If you’re writing web controllers or using HTTP filters, you’re relying on Jakarta Servlet under the hood.

This is the importance of Jakarta EE: it standardises the APIs that power the vast majority of Java enterprise applications, regardless of the third-party frameworks developers might use.

Even Spring had to make sweeping changes in response to Jakarta EE’s namespace migration when it switched from the javax.* to jakarta.* top-level package names. This was not just a name change; it was an acknowledgment of Jakarta EE’s centrality in the Java ecosystem.

Another important aspect of Jakarta EE is that it is vendor-neutral. This means that multiple vendors implement the Jakarta EE specifications, allowing you to choose the best runtime based on your needs without vendor lock-in.

Jakarta EE 12: Robust and Flexible

The theme for the upcoming version 12 release (targeted for late 2026) is Robust and Flexible. Here is what is changing:

  • Java 25 Alignment: JEE 12 is officially targeting Java 25. This means the specifications are being updated to leverage new features such as compact object headers and flexible constructor bodies.

  • Virtual Thread Support: The Jakarta Concurrency 3.2 spec is being refined to ensure that the container handles virtual threads natively. This is where the magic of virtual threads happens. The @ManagedExecutorDefinition(virtual=true) attribute is the key to high-scale concurrency.

  • New Specifications: There are three new kids on the block that are being voted into the platform:

    1. Jakarta Data 1.1 is heavily inspired by Spring Data JPA. It allows us to create repository interfaces that the container implements automatically at compile-time or runtime. No more manual EntityManager boilerplate code for basic CRUD!

    2. Jakarta Query 1.0 is a brand new specification that unifies how we write queries across Relational (JPA), NoSQL, and Data repositories. It’s the “one language to rule them all” for the EE ecosystem. It unifies JPQL (Persistence) and JDQL (Data) into a single, object-oriented query language.

    3. Jakarta NoSQL 1.1 is finally bringing a standardised API for non-relational databases to the platform.

Comparison of Older APIs

If you’ve used Java EE before, stepping into the newest Jakarta EE world will feel like visiting an old hometown that’s been completely renovated. The street names are the same, but the buildings are different and everyone’s driving electric cars.

The following table shows the evolution and replacement of older APIs that you might have been familiar with:

Java EE Jakarta EE 12
EJB Mostly replaced by CDI (Contexts and Dependency Injection).
JSP Effectively deprecated in favour of Jakarta Faces (JSF) or REST APIs.
Servlets Now at v6.2, adding support for HTTP/3 and native Virtual Threads.
JPA Now Jakarta Data, which feels almost identical to Spring Data.

Further Reading and Signing Off

The full Jakarta EE 12 specifications are here. They are well worth viewing, even just to get an idea about the depth and breadth of the framework.

There is a Jakarta EE channel on YouTube at https://www.youtube.com/@JakartaEE/videos with over 700 videos. You can search for Jakarta EE 12, or any other topics.

Was this interesting? Please share your comments, and as always, stay safe and keep learning!

Leave a Comment

Your email address will not be published. Required fields are marked *

Your Java tip is on its way!

Check that incusdata.com is an approved sender, so that your Java tips don’t land up in the spam folder.

Our privacy policy means your data is safe. You can unsubscribe from these tips at any time.

Thank You

We're Excited!

Thank you for completing the form. We're excited that you have chosen to contact us about training. We will process the information as soon as we can, and we will do our best to contact you within 1 working day. (Please note that our offices are closed over weekends and public holidays.)

Don't Worry

Our privacy policy ensures your data is safe: Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

If you need any further information, please contact us on tel: (27) 12-666-2020 or email info@incusdata.com

How can we help you?

Let us contact you about your training requirements. Just fill in a few details, and we’ll get right back to you.