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
- Payara Server and Payara Micro in 2018 by Steve Milledge (January 8, 2018)
- Cloud Native Java Has A New Home: Jakarta EE by InfoQ (April 25, 2018)
- MicroProfile OpenAPI in the Payara Platform by Matthew Gill (June 28, 2018)
- Eclipse GlassFish Release Plan by Ivar Grimstad (September 13, 2018)
- Welcoming GlassFish to the Eclipse Foundation by Tanya Obradovic (September 18, 2018)
- OpenID Connect in the Payara Platform 5.183 by Gaurav Gupta (September 20, 2018)
- Payara Platform Latest Release webinar by Payara (September 21, 2018)