The Road to Jakarta EE Compatibility

Uncategorized

Payara Platform 5.194 was released recently, and just like the previous release, it is a certified Jakarta EE implementation. The request for certification can be seen on Jakarta EE platform project issue tracker.

Filing this issue is the last step in getting the certification. Wondering what it takes to become Jakarta EE Compatible? Here’s what it took for Payara Server to become compatible:

Jakarta EE Technology Compatibility Kit (TCK), also referred to as Compatibility Test Suite (CTS), is downloadable from the website of Jakarta EE Platform or can be built from source, given enough time and determination. The test suite is based on Java Test Harness – the tool used for running JDK tests, and a large number of deployment descriptors and Apache Ant files to drive the execution. So many, that there are actually 50% more XML files in TCK distribution than there are java files. In addition to this primary distribution, a compatible server needs also pass TCKs for Context and Dependency Injection and Bean Validation, that are distributed separately.

There are strict rules what you are permitted to change in the files that make up the TCK. Mostly only configuration file ts.jte and porting package. That is the code that facilitates the management of the server and deployment of test applications. We benefitted from our roots in Glassfish as its porting package was usable for Payara with only minor changes. Shell scripts that drive certification of Glassfish over at Eclipse Foundation were also very helpful.

In total, we ran 49850 TCK test cases. Each test case usually involves deployment to the application server or setting up application client container and CORBA connection to the server. And this takes time. The full test suite needs a little bit over 119 hours or 5 full days.

Here we were again able to learn from efforts of Eclipse Foundation members, including ourselves, towards running TCK suites in Jenkins. Just like them, we have split these almost 50,000 test cases by technology or by vehicle — a term describing the technology in which the use of API is tested. For example, every JDBC test is invoked in the context of EJB, JSP page, Servlet, and Application Client container. We ended up with 77 parts that we run in parallel on 9 Linux virtual machines.

With that, we got our full test report in under 14 hours. When all tests passed, Jenkins gives us the test results summary back. If they didn’t pass, we also get test logs and server logs for inspection and need to go fixing the server.

The test results summary is then published as part of our documentation and serves as proof on compatibility, which we request from the Jakarta Platform project via a GitHub issue, like the one we opened this article with.

Running Jakarta EE TCK has become a fixed part of our quarterly release process, as well as our monthly patch release process. It helps us ensure not only do we deliver new functionalities with each release, but also guaranteeing the same behavior for your existing applications.

Download the Jakarta EE Compatible Payara Server 5.194

{{cta(‘bd21989b-afba-4c77-b96b-5372331505cb’)}}

We are looking into improving this test process further, shortening configuration phases of the partial jobs or even running parts of the suite on JDK 11. Due to classloading changes since Java 8, not all of the suites are capable of running on 11, and these results will help us shape future Jakarta EE releases, so they can become compatible with newer Java versions.

Want to Get Involved with the Future of Jakarta EE?

Learn more and get involved here:

{{cta(‘a296beaa-f248-40b7-b242-cccf7b9af44b’)}}

 

Comments (4)

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. ratcash

    So even though Payara 5.1.194 supports JDK11 and meets Jakarta EE8 cert requirements, it only meets them on JDK8? Does this mean we should refrain from running EE8 FULL apps on top of JDK11 and consider JDK11 support as an experimental feature without any guarantees for proper EE8 behavior from the app server’s side?

    1. Patrik Duditš

      Jakarta EE 8 builds on some features of Java SE 8 that are not present on Java SE 11, in particular on Java Extension Mechanism.

      Just because of that, no product out there would be able to pass all test cases of Jakarta EE 8 TCK without modifying the tests, which is not permitted.

      We are run different test suites, for example, those from javaee-samples github organization regularly and we are seeing no issues on Java 11.

      We continue working on this issue, identifying the test cases and techniques that need to be updated in the TCK so that certification on Java 11 is possible.

  2. hua sheng

    I install payara 5.194 in eclipse-2019-12, using Jdk 1.8.0_181,
    run JSF project, error occur as followings:
    —————————————————
    Error: Could not create the Java Virtual Machine.
    Error: A fatal exception has occurred. Program will exit.
    Unrecognized VM option ‘UseOpenJSSE’
    ————————————————–
    how can fix it, thank you very much.

  3. Gaurav Gupta

    Hi Hua,

    Can you update the Payara Eclipse plugin to the latest version v1.0.1

Related Posts

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 […]