Eclipse Transformer Configuration Option with Jakarta EE 9 Milestone Release

Photo of Gaurav Gupta by Gaurav Gupta

The Eclipse Transformer tooling helps you transform existing Jakarta EE 8 binary to Jakarta EE 9. This is another step toward the full release of Jakarta EE 9. Payara Server Community Edition now includes a TECH PREVIEW of Jakarta EE 9 support to allow users to try out the new Jakarta EE 9 namespace and start experimenting and migrating applications in these early stages.

The Jakarta EE 9 3rd release candidate is available on Maven Central with the namespace changes in all of the Jakarta EE APIs and compatible implementations passing the standalone TCKs. Jakarta EE 9 will not be full of exciting new features, but this is an important milestone to drive forward and innovate the Jakarta EE 10 Platform in the cloud space.

What's Coming in Jakarta EE 9?

Looking forward to the full release, Jakarta EE 9 will provide:

  • Availability of the Jakarta EE 9 specifications with the package rename to jakarta namespace
  • Availability of the Jakarta EE 9 compatible implementations with the jakarta namespace
  • Availability of the Jakarta EE 9 TCK in the new namespace
  • Jakarta namespace change in the Jakarta EE 9 specification docs
  • Pruning of some old specifications that are no longer relevant

What About Jakarta EE 9 Support in Payara Server?

Payara Services is one of the leading contributor companies of the Jakarta EE and Eclipse GlassFish projects. We now provide the support of the Jakarta EE 9 Platform as a TECH PREVIEW feature in Payara Server Community 5.2020.5 to give our users an opportunity to try out the new Jakarta EE 9 namespace and start experimenting and migrating their applications. Do not migrate your production apps at this time - this is basically a proof of concept, and a tool for getting us from Jakarta EE 8 to Jakarta EE 9.

The Payara Server Community 5.2020.5 supports deployment of both Jakarta EE 8 (javax.* namespace) and Jakarta EE 9 (new jakarta.* namespace) applications in parallel without any additional configuration or setup.

Payara Server performs the detection of jakarta.* package references during the deployment of application and auto transform the class and resource files from the jakarta.* namespace to javax.* using the Eclipse Transformer tool. Transformation tasks can be customized via system property fish.payara.deployment.transform.namespace=<true|false|null> which is by default set to null.

Value Transformation operation
true transformation process is always performed
false transformation process is permanently disabled
null
(default)
transformation is performed automatically on the detection of jakarta.* namespace in the deployment archive class and resource files.

 

How to Use the Tech Preview and Build a Jakarta EE 9 Application

To create the Jakarta EE 9 application, you may simply create the Web Application from your favorite IDE or archetype. In this example, I am using the Apache NetBeans IDE to create the Maven Web Application:

Add the Jakarta EE 9 API dependency to the project’s pom.xml file:

<dependency>
        <groupId>jakarta.platform</groupId>
       <artifactId>jakarta.jakartaee-api</artifactId>
       <version>9.0.0-RC3</version>
       <scope>provided</scope>
</dependency>


or build.gradle file in the case of Gradle project:

providedCompile group: 'jakarta.platform', name: 'jakarta.jakartaee-api', version: '9.0.0-RC3'


Create a simple Rest Endpoint class with the new jakarta.ws.rs.* import:

Now the clean-n-build and deploy the application to the Payara Server:JakartaEE9SampleApp

Similarly, You may also deploy the Jakarta EE 9 application from any other Java IDE or directly from the command line.

What’s Coming Next for Payara Server and Jakarta EE?

We are targeting Payara Server 6 to become fully compatible with the Jakarta EE 9 and Jakarta EE 10 and we will support the deployment of new namespace applications without dynamic transformation. For compatibility and to provide the support to Jakarta EE 8 namespace applications, reverse transformation of the older namespace from javax.* to jakarta.* will be introduced moving forward.

Please share your feedback on the Payara forum and as always, if you find a bug, please report an issue.

Comments