Eclipse Transformer Configuration Option with Jakarta EE 9 Milestone Release

Jakarta EE

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.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  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

Docker logo 4 minutes
Community

Level Up Your Jakarta EE Apps with Payara 7 and New Docker Images

We’re excited to share major updates around the Docker image story for the Payara Platform Community, aligned with our […]

Timeline showing Payara Platform Enterprise 4, 5, and 6 support phases (Full, Extended, Lifetime) from 2023–2033, along with JDK 8, 11, 17, and 21 support periods and end-of-life markers. 4 minutes
Thought Leadership

Understanding the Payara Platform Enterprise Software Lifecycle: How We Support Long-Term Stability 

Keeping an application server running smoothly isn’t so much about new features, but more about predictability and consistency. Software […]

Patrik Dudits presenting at Devoxx Belgium 2025 5 minutes
Cloud & Microservices

Devoxx BE 2025: It Only Starts with a Container & How Abstraction Becomes Reality 

At Devoxx Belgium 2025, I was able to talk about what happens after you build your container. In theory, […]