Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions modules/ROOT/pages/jakarta-ee.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
:seo-description: Jakarta EE, formerly known as Java EE, is an open source Java platform for building enterprise applications. Open Liberty implements Jakarta EE, which provides specifications for common services such as transaction management, security, and database access.
:page-layout: general-reference
:page-type: general

= Jakarta EE overview

Jakarta EE, formerly known as Java EE, is an open source Java platform for building enterprise applications. Open Liberty implements Jakarta EE, which provides specifications for common services such as transaction management, security, and database access.
Expand All @@ -33,9 +34,11 @@ The JCL is a set of dynamically loadable libraries that the JVM can call at run

The following diagram shows the relationship between the Jakarta EE and Java SE platforms. The Java SE platform provides specifications for the Java SDK, the JRE, the JVM, and the JCLs. Jakarta EE extends Java SE by specifying a collection of APIs that are designed for enterprise application development. An Open Liberty server supports cloud-native applications by implementing the functions that these platforms specify.


.Jakarta EE Platform
image::jakarta-ee-ol-2.png[diagram that shows the relationship between Jakarta EE components and Open Liberty,align="center"]


[#platform]
=== Platform versions
Java SE evolved through a series of versions as more classes were added to the JCL, new APIs were introduced, and some older functions were deprecated and replaced. Currently, the following versions of Java SE are maintained with long-term support (LTS):
Expand All @@ -44,6 +47,7 @@ Java SE evolved through a series of versions as more classes were added to the J
* Java SE 11
* Java SE 17
* Java SE 21
* Java SE 25

In between LTS releases, Oracle introduces short-term support releases, such as Java 16. These short-term releases are supported for only 6 months. For more information about which versions of Java SE Open Liberty runs on, see xref:java-se.adoc[Java SE support].

Expand All @@ -53,6 +57,8 @@ Java EE, which is now the open source Jakarta EE platform, has also evolved over
* Jakarta EE 9 arrived in 2020. The primary change in this release was to replace `javax` with `jakarta` in Jakarta package names.
* In February 2021, Jakarta EE 9.1 was released. Although this release did not include any API changes from version 9.0, it added support for Java SE 11.
* In September 2022, Jakarta EE 10 was released. This release included many API changes and dropped support for Java SE 8.
* In June 2025, Jakarta EE 11 was released. This release included many API changes, added the new Jakarta Data 1.0 specification, and dropped support for Java SE 11.


== Jakarta EE specifications

Expand All @@ -61,6 +67,7 @@ Ongoing development of Jakarta EE platform is advanced by the Jakarta developer
Open Liberty was a reference implementation of Jakarta EE 9.1, which means it implements all the required Jakarta EE specifications as defined by the Jakarta EE Platform Specification.
Applications that run on Open Liberty can take advantage of Jakarta EE APIs by enabling the corresponding xref:reference:feature/feature-overview.adoc[Open Liberty features] in the server configuration. The following table describes several of the most commonly used Jakarta EE specifications and lists their corresponding Open Liberty features. The _Try it out_ column provides links to Open Liberty guides that demonstrate how Open Liberty implements the specification.


.Jakarta EE specifications
[%header, cols="3,6,3,6"]
|===
Expand All @@ -70,7 +77,6 @@ Applications that run on Open Liberty can take advantage of Jakarta EE APIs by e
|Open Liberty feature
|Try it out


|https://jakarta.ee/specifications/cdi[Jakarta Context Dependency Injection]
|Enables Java object dependencies to be automatically injected at run time, and helps manage the lifecycle of those dependencies
|feature:cdi[display=Contexts and Dependency Injection]
Expand All @@ -96,13 +102,14 @@ Applications that run on Open Liberty can take advantage of Jakarta EE APIs by e
|feature:jsonb[display=JavaScript Object Notation Binding]
|link:/guides/rest-client-java.html[Consuming a RESTful web service]

|https://jakarta.ee/specifications/bean-validation/[Jakarta Bean Validation]
|https://jakarta.ee/specifications/bean-validation/[Jakarta Validation]
|Defines a metadata model to validate EJB beans
|feature:beanValidation[display=Bean Validation]
|feature:validation[display=Validation]
|link:/guides/bean-validation.html[Validating constraints with microservices]

|===


== Jakarta EE and Open Liberty

The Open Liberty team's involvement with Jakarta EE goes back to the beginning of the project. The team is active across the https://jakarta.ee/about/[Jakarta Working Group], sitting on committees such as the Specification Committee and the Steering Committee.
Expand All @@ -111,7 +118,6 @@ Our developers are committers to numerous Jakarta EE specifications, including h
As new specification versions are introduced, Open Liberty implements them in new versions of its xref:reference:feature/feature-overview.adoc[modular features]. The Open Liberty xref:zero-migration-architecture.adoc[zero migration architecture] gives you the flexibility to continue to use the same version of an API or upgrade to newer versions according to the needs of your applications. New versions of Jakarta EE implementing features are regularly introduced in xref:installing-open-liberty-betas.adoc[Open Liberty beta releases] before they are included in a full general availability (GA) release.



=== Java SE Compatibility

The following table lists the supported Java SE versions for each Java EE and Jakarta EE level:
Expand All @@ -137,6 +143,9 @@ The following table lists the supported Java SE versions for each Java EE and Ja

| Jakarta EE 10
| 11+

| Jakarta EE 11
| 17+
|===


Expand All @@ -145,13 +154,15 @@ The following table lists the supported Java SE versions for each Java EE and Ja

The Jakarta EE specification defines the platform Enterprise Edition. The Web Profile is a properly defined subset of the platform. The Core Profile is introduced in Jakarta EE 10 and is a properly defined subset of the Web Profile.


Core Profile::
The Core Profile is added in Jakarta EE 10 and includes the Jakarta EE features that are needed for modern cloud native applications. This subset of function includes all Jakarta EE functions that are required for MicroProfile-based applications.


Web Profile::
The Web Profile defines a reasonably complete stack that targets modern web applications. This stack is a subset of the platform standard APIs that can address the needs of most web applications.


Platform::
The platform defines the full complement of the Jakarta EE programming model. In addition to the Web Profile features, the platform has specifications for advanced business capabilities that an enterprise needs, such as for connectivity, enterprise beans, messaging, and application clients.

Expand All @@ -164,7 +175,9 @@ To quickly add support for Jakarta EE, specify the feature:webProfile[display=We
== See also

- xref:java-se.adoc[Java SE support]
- xref:reference:diff/jakarta-ee11-diff.adoc[Differences between Jakarta EE 11 and 10]
- xref:reference:diff/jakarta-ee10-diff.adoc[Differences between Jakarta EE 10 and 9.1]
- xref:reference:diff/jakarta-ee-diff.adoc[Differences between Jakarta EE 9.1 and 8]
- xref:reference:diff/jakarta-ee9-feature-updates.adoc[Jakarta EE 9 feature updates]
- https://eclipse-ee4j.github.io/jakartaee-tutorial/[The Jakarta EE tutorial] from the Eclipse Foundation