The Payara Foundation has recently released version 5.183 of Payara Server and Payara Micro with a host of new features, upgrades, and bug fixes including full support for MicroProfile 2.0 and Java EE 8. New features include: updates to MicroProfile APIs and the Admin Console; support for the OpenID specification; and a new application deployment descriptor schema.

First introduced in 2014, Payara was based on the open-source edition of GlassFish 4.1 while it was still maintained by Oracle. Payara has strived to provide outstanding customer support by being open-source, small/simple/powerful and compatible with major cloud platforms.

Payara release streams, introduced in 2017, define customer-focused release schedules. The community stream, available to all Payara users, is the normal quarterly release that includes new features, updates, and bug fixes. For Payara customers, the features stream contains monthly patches to the quarterly releases and the stability stream adds more frequent patches for improved stability and consistency.

Payara 5.183 is the third quarter release for 2018. At the beginning of the year, Steve Milledge, founder and director at Payara, discussed Payara's plans for 2018. He stated that version 5.183 would focus on reactive and asynchronous. In particular:

For the 183 release due August we are focusing on expanding our support for reactive and asynchronous programming styles. Ideas at the moment are: Ensuring Java EE APIs can be used from Lambdas, Completable Futures, Collections parallel stream operations

Support Lambdas as Message Listeners

Support CDI beans as Message Listeners

Add enhanced CDI support with @Asynch ; @Pooled ; @ClusterScoped ; @ServerScoped

; ; ; Deployable Concurrency Resources In addition we are targeting MicroProfile 2.0 for the 5.183 release although depending on what the MicroProfile project does this may come earlier.

MicroProfile Updates

To be aligned with the MicroProfile 2.0 specification, Payara provided updates to existing implementations of APIs OpenAPI and REST Client and new implementations of APIs Fault Tolerance, Config, Open Tracing and JWT-Auth.

Fault Tolerance 1.1

Fault Tolerance was updated to include integration with the Metrics and Config APIs. Multiple metrics can be collected and exposed to provide data such as which methods wrapped around a @FaultTolerance annotation were executed, the status of any triggered circuit breakers, the number of retries, the number of failures, etc. Also, parameters, using a specific configuration key format, can be provided within @FaultTolerance annotations, classes or methods.

Config 1.3

To complement the URL class, Payara added support for the URI class by introducing new methods to convert a string into a URI class or any other class containing a constructor that accepts a string. This will allow configuration values to be converted to any class that is constructed with a string.

A new mapping rule was also added to allow for easier conversion of environmental variables containing an underscore to configuration keys.

Open Tracing 1.1

Open Tracing 1.1 is now aligned with the latest Open Tracing specification that offers Java APIs to collect tracing information. Also included is a tag to indicate which component provided the trace.

JWT-Auth 1.1

JWT-Auth was updated to include integration with Config. Originally implemented in the early days of Payara, JWT-Auth public keys were supported, but not portable. Using Config, public keys can now be specified containing the contents of the public key or the location where the key resides.

REST Client 1.1

REST Client, originally implemented in version 5.182, has been updated to include asynchronous support for calling REST services. It is now possible to create methods that return an instance of CompletionStage that can be asynchronously followed with another thread.

To complement the URL class, Payara added support to set an instance of URI class as a parameter using Config when injecting a RestClient interface. Application-specific URI/sURLs are specified as a configuration key in the microprofile-config.properties file as shown below:

org.redlich.payara.RestClientApp/mp-rest/url=http://localhost:8080/restapp

Admin Console

Enhancements to the Payara Server admin console include a new MicroProfile settings page for each server instance. As shown below, there are a multitude of property settings for the various MicroProfile APIs.

Also, based on customer feedback, the list of server configuration options that were once unordered are now listed in alphabetical order.

OpenID Connect

With the introduction of support for the OAuth 2.0 protocol in version 5.182, Payara now supports OpenID Connect, a security mechanism layered on top of OAuth, in version 5.183. OpenID Connect implements the OpenID specification, but as stated in the OpenID Connect documentation:

OpenID Connect performs many of the same tasks as OpenID 2.0, but does so in a way that is API-friendly, and usable by native and mobile applications. OpenID Connect defines optional mechanisms for robust signing and encryption. Whereas integration of OAuth 1.0a and OpenID 2.0 required an extension, in OpenID Connect, OAuth 2.0 capabilities are integrated with the protocol itself.

Resources