What's New in Payara Platform 192?

Photo of Arjan Tijms by Arjan Tijms
Summer is coming, and Payara Platform 192 is already here! Here's a sampling of the new features, enhancements, fixes, and updates you can expect in this release:


JDK 11

The signature feature of this release is JDK 11 support, though as a technical preview. It has been a long time coming as JDK 11 entailed a lot of changes, quite a couple of them being breaking changes, and removed access to a lot of sun.* classes and the Java EE and Corba modules.  GlassFish is a Sun product and as the Payara Platform inherits the GlassFish codebase,  those Sun classes were used quite liberally within the Payara Platform as well. 

We addressed many JDK 11 issues and the codebase passes all of the hundreds of tests we use internally. Yet, as this is such a monumental change we do not recommend this version for use in production as of yet, but to use it for testing only.


Docker Nodes

To ease use of Payara Server in Docker environments 192 introduces the concept of Docker nodes, enabling you to communicate with a host running a Docker daemon and create containerised instances of Payara Server from a named Docker image. Previously you could not configure Payara Server instances running inside containers without creating a Payara node for each Docker container. This is a huge quality of life improvement for people wanting to use Docker with the Payara platform, as creating, managing and deleting these containers can now be done from the Admin console.


JAX-WS Tracing

One of the most important features of an application server like Payara Server is arguably its ability to monitor and trace its components. An important extension of that is the MP OpenTracing API, which builds on Payara’s native tracing support. MP Open Tracing is primarily defined for JAX-RS, which is often the preferred API to use for web services. However, SOAP, and with it JAX-WS, is still the foundation of many web services around the world and therefore of great importance, still. In this version we have extended MP OpenTracing to JAX-WS.

EJB Remote over HTTP

In the previous release we started with an initial light weight client to use remote EJB over HTTP, for which the main use case is in containerised and NAT/VPN environments. Being an initial release it was well received, so we decided to go forward with several additional improvements, these being:
  • Full JSON-B serialisation support (including support for primitives and top level null values)
  • Client-Side adapters (an innovative client side API for creating app specific client proxies which can emulate state on the client)
We also fixed a transitive dependency issue with the main client dependency.


Support for Eclipse MicroProfile 2.2

In the Payara Platform 5.192, MicroProfile support has been updated to 2.2. This means FaultTolerance 2.0, RestClient 1.20, OpenAPI 1.1.1 and OpenTracing 1.3 are now fully supported. In addition to this, some Payara-specific enhancements have been added, specifically to Fault Tolerance where the interaction of the various annotations has now been stricter defined, and support for alternative @Asynchronous annotations. (Read: Payara Platform 5.192 is Compatible with MicroProfile 2.2.)


Certificate Realm

The certificate realm in Payara, which powers the client-cert authentication mechanism, has always left a little bit to be desired. This is mostly because the specification around it is quite bare. In this version of the Payara Platform we have enhanced this realm by optionally allowing the Common Name (CN) part of a certificate to be used as the caller principal’s name, instead of the full Distinguished Name (DN). The full DN is often rather unwieldy and not always suitable as a simple principal name in an application.

Using this CN name revealed a couple of places where the certificate name wasn’t used consistently, specifically when authentication takes place in the web layer - the web principal and the principal uses elsewhere (e.g. in the EJB container) weren't consistent. When the default full DN name is used these are now all formatted in RFC 2253.


Numerous Bug Fixes

No Payara Platform release is complete without an assortment of various bug fixes, of course, and in this release quite a lot of bugs have been squashed.  We're particularly happy that MP RestClient instances can now be injected into JAX-RS endpoints again, and even more so that CDI Async events work on Payara Micro once again (this was a regression in 5.191). Also working again are the exploded wars on Payara Micro (a big thanks to user maxencelaurent for reporting this), and injecting in a JPA EntityListener  when AttributeConverters are used (big thanks to Alexander W. for reporting this one).


Community Contributions

We'd like to thank all of our community contributors again for their help in this release! One particular contribution to highlight is M.-Leander Reimer's PR to add CORS header support to the /openapi endpoint. This contribution doesn't only make us happy, but makes Swagger UI happy as well, which was complaining a lot before about those headers being absent.


Component Upgrades

As with nearly every Payara Platform release, we updated various components to their latest versions. This time around these include:

  • Felix 6.0.2
  • HK2 2.5.0
  • Jersey 2.29
  • Hibernate-validator 6.0.16
  • Snakeyaml 1.24
  • Mimepull 1.9.11
  • Libpam4j 1.11
  • Classmate 1.5.0
  • Ha-api 3.1.12


Download the Payara Platform

That's all for now!  Obviously there's quite a bit more in the release - check the release notes if you want the full details.Don't be shy and try it out! Our download links should have been updated, allowing you to access it from all the usual places.  For your convenience, here's the direct download link:

 Payara Server & Payara Micro  Download Here