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.

  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

Payara promotional graphic showing transition from Spring to Jakarta EE, including technology logos, a code icon and arrows leading from Spring to Jakarta EE. 6 minutes
Jakarta EE

From Spring Boot To Jakarta EE 11: How Payara Starter Eases The Transition

If you’ve been living in the Spring ecosystem, you’re used to fast project setup. Spring Initializr gives you a […]

Graphic promoting the Jakarta EE Agentic AI Project by Payara Community. The design shows a laptop screen with a central icon of a person wearing headphones and using a laptop, surrounded by sparkles. The background features blue ocean-themed elements with coral and small fish. Logos for Jakarta EE and Payara Community appear at the top. 3 minutes
Community

Announcing the Jakarta Agentic AI Project

Exploring the Future of AI with the Jakarta EE Community At Payara, we’re passionate about pushing the boundaries of […]

Image promoting a Payara blog with an illustration of a document with checkmarks and a magnifying glass. 5 minutes
Jakarta EE

Why Jakarta EE Standards Make Legacy App Modernization Simple

Legacy Java applications built on enterprise standards don’t have to be roadblocks to modernization. When applications follow established specifications […]