Java Enterprise Edition or Java EE was a popular platform to build mission-critical business applications. Jakarta EE is the new name for Java EE after the project has moved under the governance of the Eclipse Foundation.
The Eclipse Foundation is a noncommercial open-source organization, and it also manages the Eclipse IDE project in addition to many other open-source initiatives. There are several leading software vendors for whom open-source technologies are critical to their business strategies. The rename of this platform was required because Oracle owns the trademark for the name Java.
Many enterprise customers of Java EE were not happy with the slow pace of development of the platform. Taking inspiration from the rapid development and momentum of the Eclipse MicroProfile initiative, leading software vendors joined forces to move Java EE technologies to the Eclipse Foundation. This was done with a primary goal to speed up the business application development for cloud-native environments.
It’s not just another enhancement of Java EE but rather an entirely new platform built by the community.
Jakarta EE is a collection of technologies, compatible implementations, standards, and APIs that extend
The goal of Jakarta EE is to address the integration and architectural challenges faced by Enterprise Applications.
Note: This project is not related to the Jakarta Project, which The Apache Software Foundation previously hosted.
Jakarta EE has various Java-based technologies and modern architectures for building cloud-native apps, microservices, and scalable web apps. It also provides connectors for integrating with other systems and technologies. It leverages decades of expertise of Java EE in developing and deploying mission-critical applications.
Jakarta EE Platform is an umbrella specification which references other detailed specifications. The Jakarta EE platform reference implementation is based on the OpenJDK implementation.
The Jakarta EE platform is used by many cloud-native development platforms and framework offerings by IBM, Red Hat, Tomitribe, and Payara.
The Jakarta EE Platform primarily consists of technologies from Java SE and a subset of technologies from Java EE.
Jakarta EE contains around forty components. For the sake of clarity, the above diagram does not show all the components.
The Jakarta EE platform is designed to use any tool that runs on the JVM like Groovy, Scala, Clojure, Kotlin, and the Java language.
Jakarta EE would provide a platform to build applications that can be deployed on-premises or in cloud-native environments.
Jakarta EE Specifications are divided into the following categories:
Below are the details of some of the critical technologies of Jakarta EE:
Jakarta Messaging (earlier known as Java Messaging Service or JMS) provides an API that allows message-oriented middleware such as JMS providers to create, send, receive, and read messages.
Jakarta Mail enables application servers to support sending mail on the server-side and reading mail on the client-side.
WebSocket provides a standard Java API which allows web browsers and other clients to establish bi-directional communication with servers, supporting WebSocket protocol at both ends.
JSON Processing provides a standard Java API for parsing, generating, transforming, and querying JSON documents.
JSON Binding provides APIs to read/write data objects as JSON documents using the popular JSON representation.
Concurrency provides standard ways to deal with multi-threading in applications.
Bean Validation is a common validation mechanism used by applications independently of the presentation layer, business logic, or data access layers. It allows developers to express application expectations on objects during creation and set constraints.
JAX-RS is an annotation-driven Java-based API for RESTful web services in compliance with the Representational State Transfer (REST) architectural style.
Context and Dependency Injection (CDI) provides typesafe dependency injection mechanisms that can be used by any managed bean or framework extension.
Jakarta EE Platform Specification also defines several new features such as Declarative Transactions, Batch processing, and Scheduler.
Jakarta EE applications consist of standard components that can be deployed and executed on either microservices runtimes or application servers (compatible with Jakarta EE specifications). In the future, the Jakarta EE components might get reorganized.
Jakarta EE provides a low-level platform that implementations can shape to match any complex business requirements while supporting industry standards.