This spring's silver lining, Payara Server 126.96.36.199, 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.
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.
- 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.
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
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 188.8.131.52 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
--helpcommand is now clearer and more readable
Over 50 bugs squashed
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
Payara Server 172 also includes a new security fix:
- PAYARA-1424: XSS Flaw discovered by Dmitri Kaslov - thanks!