What's New in Payara Server 172?

Photo of Michael Ranaldo by Michael Ranaldo

This spring's silver lining, Payara Server, a highly cloud-focused release, is now available!

Focusing on enhancing Payara Server and Payara Micro's ease-of-use in cloud environments, we've brought in new features to make working with Docker more seamless and secure, native support for SaaS monitoring solutions and a huge increase in messaging capabilities for Payara Micro! Inside this quarter's release you will find 54 fewer bugs, a host of ecosystem and cloud improvements, and an update to match GlassFish 4.1.2. Carry on reading for a summary of this quarter's changes, or check out the full release notes for a complete list of changes.


 Download Payara Server 


JMS Client Support for Payara Micro

For the very first time, Payara Micro will be able to send and receive JMS messages! It won't package a broker, but provides a fantastic stepping-stone in migrating legacy monolith apps towards distributed, event-based microservice architectures! We've had requests from many users for JMS support in Payara Micro and it's been the biggest blocker for migration for many people. Thanks to the new ability to deploy JCA adapters in Payara Micro, it's now possible to deploy a JMS resource adapter and have Payara Micro act as a JMS client, meaning your message driven beans will now run in Payara Micro rather than needing the full server.


We've already added an example of using Payara Micro as a JMS client to our Payara Examples repository, and recently published a complete example of subscribing to HealthCheck event notifications over JMS


Payara Cloud Connectors

Support for JCA adapters in Payara Micro is probably the biggest feature in this release, and a real game-changer for users with distributed microservice apps. Reliable, asynchronous messaging is at the heart of the modern web, so we didn't want to leave ourselves restricted to just JMS! We created the Payara Cloud Connectors repository in GitHub to allow users of Payara Micro to interact with four popular cloud messaging technologies using fully standard message driven beans!


172 brings four new cloud connectors for:

  • Apache Kafka
    • With hefty, high-volume, fault-tolerant streams of records, Apache Kafka is built for the reliable storage and consumption of data, both historical and real-time. 
  • Amazon SQS
    • Secure, scalable, and unsurprisingly built for Amazon, Amazon SQS allows you to completely integrate Payara Server with the entirety of your Amazon services infrastructure, from EC2 to S3.
  • MQTT
    • Built for the Internet of Things (IoT), MQTT is extremely lightweight, perfect for tiny devices with scarce network bandwidth. The MQTT connector helps bridge the gap between small IoT devices and Java EE applications.
  • Azure Service Bus
    • Covered in detail in Yoshio Terada's blog, Microsoft Azure is a powerful alternative to AWS, and works well with Payara Server. With the Payara Cloud Connector, it is now possible to integrate Payara Server with your Microsoft Azure infrastructure.

View the new connectors on GitHub.


Run Asadmin Commands at Boot in Payara Server

When we first put out our Payara Server and Payara Micro Docker images, we expected Payara Micro would be the first choice for most users. What we've found is that a huge number of you like to use Payara Server in Docker!


A key "best practice" for Docker is to reduce the number of layers so use of the autodeploy directory is quite common. The problem is that the autodeploy scanner is a security risk for production. To address that problem and allow a way for users to deploy applications on startup without using the scanner, we have brought over a feature from Payara Micro - the ability to run asadmin commands as the server starts up! You can now change your start command to be as follows:


asadmin start-domain --postbootfile=deploy-my-app.txt


Maven Plugin for Payara Micro

While not technically part of Payara Micro itself, we are releasing a Maven plugin for Payara Micro. The plugin has three goals available: bundle, start and stop. Prior to the release of this plugin, you would have had to use the general Maven "exec" plugin to create an Uber JAR, resulting in a slow build time as Payara Micro had to boot, deploy your compiled app and finally output an Uber JAR artefact. Now, using mvn payara-micro:bundle, this all happens as part of the install phase.


For more details, see the plugin on GitHub.


New Notifiers for the Notification Service

Continuing our expansion of the notification service, 172 includes the ability to send notification events to cloud performance monitors. If you're a user of either DataDog or New Relic, you will likely already have much of your infrastructure already configured in these performance monitors. When it comes to monitoring, however, more data in to the system is, on the whole, a very good thing and can provide even deeper insights to the behaviour of requests through your system. In the case of New Relic, for instance, you may be able to see that much of the time for a given request is spent in the JVM but, with so many moving parts that is not always so helpful!

With you will be able to send, for example, request tracing data to both DataDog and New Relic and use the timings of slow requests as seen by Payara Server.


Enhanced Environment Variable References

The final big ticket cloud enhancement for users of Payara Server with Docker, we've massively expanded our existing support of environment variable references within Payara Server, meaning that it's now very easy to read most configuration options from the environment.

Payara Server 172 now supports the widespread use of variable references from within the following areas:

  • domain configuration (such as domain.xml, logging.properties, etc.)
  • file descriptors in the applications (such as web.xml, glassfish-web.xml, persistence.xml, ...)
  • annotations in the applications (such as @EJB, @ActivationConfigProperty, ...)
  • JNDI lookups 

Minor Fixes and Features

We've got a host of smaller improvements and fixes in Payara Server172 release:

  • Payara Server now uses Payara self-signed certificates instead of GlassFish
  • An "Environment Warning" to alert users when they edit a production system
  • Rest endpoints are now displayed on deployment for Payara Micro, and from the "Application Details" page on Payara Server
  • Payara Server can now deploy from Maven repositories and URLs
  • Payara Micro's --help command is now clearer and more readable
  • Over 50 bugs squashed

Component Upgrades

  • GlassFish 4.1.2 updates included

  • Grizzly upgraded to 2.3.29

  • Hazelcast upgraded to 3.8

  • Tyrus upgraded to 1.13.1

  • jsftemplating upgraded to 2.1.2

  • ha-api upgraded to 3.1.9

  • Weld upgraded to 2.4.3.Final

  • antlr upgraded to 2.7.7

Security Fixes

Payara Server 172 also includes a new security fix:

  • PAYARA-1424: XSS Flaw discovered by Dmitri Kaslov - thanks!


 Download Payara Server