First quarter of 2018 will bring with it our long-awaited Payara 5, fresh out of Beta. Scheduled for a Q1 release (download the Release Candidate here), Payara 5 brings with it a host of improvements to Payara Server and Payara Micro. Bringing long-awaited upgrades to a raft of APIs, as well as a rethinking of the cluster concept, Payara 5 also brings us up to date with Eclipse MicroProfile 1.2 and the core functionality of GlassFish 5.
Changes to clustering
Since the first release of GlassFish, the server has relied on the cluster concept. Originally meant as a simple way to combine configuration for instances on a node with data sharing, the current cluster technology is beginning to show its age. In Payara 5, the old clusters will be deprecated in favour of the Domain Data Grid and Deployment Groups.
Domain Data Grid
In a major overhaul of Hazelcast for Payara 5, all instances of a domain will be automatically added to a single data grid, removing the need for multicast discovery and all of its associated configuration. This dramatically simplifies using Payara Server within a cloud environment, making it far easier to deploy to and manage multiple instances, be it local, on AWS, Google Compute, or Microsoft Azure.
As part of this change, you will no longer need to create custom Hazelcast configuration files instead of the usual multicast for cloud environments, lessening the configuration needed for cloud deployments.
With the removal of the cluster, we've been able to switch to fluid groupings of instances. Rather than clusters, where instances could only be a member of a single cluster and were not able to be simply reassigned, deployment groups can now be used as a single place to manage your deployed applications. Instances can belong to multiple deployment groups, be added and removed dynamically (and have their deployed applications undeployed as they do so), and instances within deployment groups can have different configurations.
Finally, Shoal - the native method of clustering within Payara Server inherited from GlassFish - will be removed in Payara 5. Functionally, your applications will work on Payara 5 exactly as they did on Payara 4 and GlassFish 4.
In Payara 5, the venerable Apache Derby database will be replaced with H2. While the embedded database is not intended for production, H2 is lighter, faster, and more concurrent than Derby, with a smaller footprint and less effect on Payara Server's boot time.
GlassFish 5 Sync - Java EE APIs
Fresh for Payara 5, we've synchronised with GlassFish 5 in order to provide the ability to deploy Java EE 8 applications using the latest reference implementations
Payara 5 will ship with its own build of Mojarra that has been optimised for faster initialisation and has an optional, payara specific switch, to enable parts to be initialised in parallel. The Payara build is based on the 2.4 master of Mojarra, which is a refactored version of the 2.3 branch, albeit without any new features.
MicroProfile 1.2 Support
Finally, Payara 5 will include an update for compatibility with MicroProfile 1.2 with the following APIs:
- JAX-RS 2.0
- CDI 2 (updated 1.2 → 2)
- JSON-P 1.0
- Annotation 1.2
- Microprofile Config 1.1 (updated 1.0 → 1.1)
- Microprofile Fault Tolerance 1.0 (new)
- Microprofile Health 1.0 (new)
- Microprofile Metrics 1.0 (new)
- Microprofile JWT Propagation 1.0 (new)