Eclipse Transformer Configuration Option with Jakarta EE 9 Milestone Release

Uncategorized

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.

ValueTransformation operation
truetransformation process is always performed
falsetransformation 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 (1)

Post a comment

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

Payara needs the contact information you provide to us to contact you about our products and services. You may unsubscribe from these communications at any time. For information on how to unsubscribe, as well as our privacy practices and commitment to protecting your privacy, please review our Legal & Privacy Policy.

  1. Aleks No

    Maybe it is an interesting finding: if you do not specify the property fish.payara.deployment.transform.namespace then the jars in the domain1/lib directory will be not transformed at deplyment time. With -Dfish.payara.deployment.transform.namespace=true it works.

    Cheers

Related Posts

Community_Announcement 4 minutes
Uncategorized

Leading the Way: Payara Platform Community 7 Beta Now Fully Jakarta EE 11 Certified

We’re excited to announce that Payara Platform Community 7 Beta application server is now fully certified as Jakarta EE 11 […]

Understanding the Security Issues of Aging Middleware 8 minutes
Security

Understanding the Security Issues of Aging Middleware

Middleware runs quietly in the background of most applications, which makes it easy to overlook its lifecycle. In effect, […]

Blue background with coral and fish. Left text: 'MONTHLY CATCH'. Right: laptop screen with tech tabs and Payara Community logo. 4 minutes
Community

The Payara Monthly Catch – August 2025

Welcome aboard the August 2025 issue of The Payara Monthly Catch! With summer in full swing, things may have felt […]