Jakarta EE and Java EE 8 in Liberty

Liberty supports the full Java Platform, Enterprise Edition (Java EE) 8. Liberty also supports the Jakarta EE Platform 8, which is the migration of Java EE 8 from the Java Community Process to the Eclipse Foundation.


Benefits of Jakarta EE

Jakarta EE offers a community-driven open source model with more frequent releases than Java EE, enabling it to evolve more quickly to address the needs of modern applications. The Jakarta EE 8 full platform and Web Profile technologies are based on Java EE 8 technologies. The Jakarta EE 8 specifications are compatible with Java EE 8 specifications.

Jakarta EE 9.1 full platform and web profile technologies support the Jakarta EE 9.1 specifications. Due to changes in the underlying API package names between Jakarta EE 8 and Jakarta 9.1,Liberty features that support Jakarta EE 9.1 are incremented to new version numbers and in some cases have new short names. If we are moving applications from Java EE or a previous version of Jakarta EE to Jakarta EE9.1, we might need to update feature versions or short names in the server.xml file. For more information, see Jakarta EE 9.1 feature updates on the Open Liberty website.

Jakarta EE 10 full platform, web profile, and core technologies support the Jakarta EE 10.0 specifications

See also Open Liberty guides on Jakarta EE technologies.


Benefits of Java EE 8

  • JavaScript Object Notation Binding (JSON-B) 1.0 (JSR 367) is new and builds on the JavaScript Object Notation Processing (JSON-P) specification that was introduced in Java EE 7. This new specification provides a standard way to marshal Java objects to JSON text and to unmarshal Java objects from JSON text.

  • The JSON-P specification adds support for the JSON Pointer and JSON Patch standards in JSON-P 1.1 (JSR-374).

  • The new Security API (JSR 375) defines self-contained security applications that are portable across application servers. These security applications can provide their own implementations to over-ride authentication mechanisms or identity stores.

  • The servlet API adds support for HTTP 2.0 in Servlet 4.0 (JSR 369).

  • The JAX-RS specification adds support for a reactive client, server sent events, out of the box @PATCH method support, the option to specify the executor service, and out of the box JSON-B support. These additions are available in JAX-RS 2.1 (JSR 370).

  • Bean Validation 2.0 (JSR 380) provides an annotation-based model for validating JavaBeans. We can use the specification to assert and maintain the integrity of data as it travels through an application.

  • Contexts and Dependency Injection (CDI) 2.0 (JSR 365) adds support for firing asynchronous events, ordering event observers, using configuration SPIs, using built in annotation literals, and applying interceptors on producers.

  • Deprecation of older technologies

    The following older technologies are optional for Java EE 8: For EJB 3.2 (JSR-345), EJB entity beans and EJB QL that goes with it; JAX-RPC 1.1 (JSR-101); JAXR 1.0 (JSR-93); Java EE Deployment 1.2 (JSR-88).


Java EE 8 full platform and Web Profile

The Java EE 8 specification defines the full platform Enterprise Edition. The Web Profile is a properly defined subset of the full platform.

    Web Profile

    The Web Profile defines a reasonably complete stack that targets "modern" web applications. This stack is a subset of the full platform standard APIs, capable of addressing the needs of most web applications.

    Full platform

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

We need to consider these definitions when we install Liberty and its available features. Installation options provide the Liberty runtime (kernel) and features that support the full platform or Web Profile. We can choose to install the Liberty kernel with just the Web Profile features or install individual Java EE features to the existing Liberty kernel installation.

We also need to consider the definitions when we deploy applications to a Liberty server. For example, if our Liberty installation supports Web Profile features but the application needs a server that supports enterprise connectivity APIs, we must add full platform features to our Liberty installation or deploy the application to a Liberty installation that has full platform features.

To add support for Java EE to our Liberty server, use either the webProfile-8.0 or javaee-8.0 convenience features in the feature manager of the server configuration; for example:

    <featureManager>
       <feature>javaee-8.0</feature>
    </featureManager>

A third convenience feature, javaeeClient-8.0, is also available to quickly configure an application client component:

    <featureManager>
       <feature>javaeeClient-8.0</feature>
    </featureManager>


Install a Liberty kernel with Java EE 8 features

The quickest way to install a Liberty runtime with Java EE 8 features is to download a compressed (.zip) file from the Open Liberty download and extract the file into an empty directory.

See Install Liberty using downloaded archives.

We also can install a Liberty runtime with Java EE 8 features using a developer tool such as WebSphere Application Server Developer Tools for Eclipse.

See Install Liberty Repository assets.

We can add Java EE 8 features to an existing installation by running the featureManager or installUtility command.

See Install Liberty Repository assets.


Resources to help we use Java EE 8 technologies