What's new in Payara Server & Payara Micro 173?

Photo of Mike Croft by Mike Croft
Payara Server and Payara Micro are now available for download! With 58 bug fixes, 30 improvements, 2 security fixes and 5 component upgrades ( see the release notes for more), this release sees a number of new features focused on making your life easier, whether you're in development or operations. 
 Download Payara Server 


The most major new feature is support for Eclipse MicroProfile 1.1 in Payara Server and Payara Micro! As I mentioned in my recent blog, this compatibility with MicroProfile brings with it the requirement of Java 8 thanks to the first new API to originate from the MicroProfile project: the Config API.
The Config API specification is intended to allow applications to be reconfigured from outside without needing to repackage the application. This is especially useful where settings vary across different environments. In addition to the default ConfigSources outlined by the specification (system properties, environment variables and properties files found on the classpath), the implementation of Config in Payara Server and Payara Micro also supports the following sources out-of-the-box:
  • domain
    The domain source stores and retrieves config values from the domain.xml
  • config
    "config" here refers to the Payara config. This could be the "server-config", which is used for the DAS, or a shared config like "myCluster-config".
  • server
    This source can store and retrieve config values from a server instance
  • application
    An application source refers to a deployed artifact
  • module
    A module source is a module within an application
  • cluster
    The "cluster" source will store and retrieve config values from the underlying Hazelcast cluster.
  • jndi
    Config values can be stored and retrieved from JNDI.

To help work with these additional sources, there are asadmin commands to get and set the ordinal (get-config-ordinal and set-config-ordinal) for each source and to get and set properties (get-config-property and set-config-property) in each source.


Payara 5

Snapshots of Payara Server 5 and Payara Micro 5 are now available on Maven Central's snapshots repository! Since these are tracking our usual quarterly-release cycle, they have snapshot version numbers to indicate the Payara project version they are synced from. The Maven GAV coordinates for Payara Server 5 are:




The coordinates for Payara Micro 5 are:




Alternatively, you can get started with our Docker images. We have added 5-SNAPSHOT tags to each repository, so that the following docker commands will start a Payara Server or Payara Micro 5 instance:


docker run -it payara/micro:5-SNAPSHOT
docker run -it payara/server-full:5-SNAPSHOT
docker run -it payara/server-web:5-SNAPSHOT

One question we get a lot regarding our plans for Payara 5 is when the release will be final. I'm happy to announce that we have the following milestone targets in place:

  • Payara 5-ALPHA
    We are in the process of preparing an Alpha release of Payara Server and Payara Micro 5, which should be available very soon.

  • Payara 5-BETA
    We intend to publish a Beta release of Payara Server and Payara Micro 5 in sync with our final quarterly release of the year, 174

  • Payara 5-FINAL
    Our first fully-supported release of Payara Server and Payara Micro 5 will be in sync with our first release of 2018 - 181

This means that we will begin a new year with Payara Server and Payara Micro 5 as our community release and end our community releases of Payara Server and Payara Micro 4. We will continue to provide builds of Payara Server and Payara Micro 4 for our support customers, in accordance with our 10-year support lifecycle. This means that our customers will still get regular releases in the Feature Stream into 2018, and Stability Stream releases beyond that to 2021.


Enhancements for Ops

The HealthCheck Service has been expanded further to add a checker for stuck threads. There was already a checker for hogging threads - those which are using more than a configured percentage of the CPU - but now, with the stuck threads checker, you can be alerted for all threads which have not progressed in the configured interval. This is especially useful to track, for example, where a deadlock has occurred. Instead of needing to wait for a high resource message you can be notified immediately of a stuck thread.


When using the Slow SQL Logger integration is possible to record the top most used SQL traces among all applications deployed on a server's instance, along with the slowest SQL queries too. This historic recording can be configured to set both of these metrics. This is especially useful for applications that connect to multiple databases using the JDBC or JPA APIs, since it can help identify potential bottlenecks on database connections for further performance-tuning.


Enhancements for Developers

This version includes the release of the Payara Arquillian container. This means that you can use your normal Payara deployment to test your applications on. The Arquillian container connects to the DAS via the Payara Server REST interface. This means that the container can accommodate any form of deployment scenario.


Finally, new to this release is an integration with the Weld (CDI) development mode, allowing Payara Server or Payara Micro to turn it on. This development mode comes with a probe tool that allows a server instance to monitor all application CDI components on run-time. On Payara Server, is also possible to turn this integration on via the web admin console, and its also possible to access the probe tool's UI interface and REST API through the server as well. For more complex monitoring scenarios, the probe tool's data can also be queried using JMX too. This puts Payara Server alongs Wildfly and Tomcat on the list of compatible web servers that allow this integration.


Enhancements for Docker Users

On top of the Payara 5 Docker image releases, users of Docker images will have some major new features to look forward to. Firstly, applications which depend on a database can now be deployed before the database is provided. Previously, deploying an application before the database was present would cause the deployment to fail but the server to continue running. An application can now be deployed before the database, and begin working as normal when the database is provided. This helps in a microservices environment when each service should be available regardless of the others.


Third party libraries can now be added dynamically to Payara Server and Micro with one command. Payara Micro now has a --addJars parameter, to pass external library JARs to the Payara Micro instance. This command can either be repeated for every required library, or the library JARs can be colon separated. Payara Server has a add-library command, which will also accept an external library JAR, but will now dynamically load the JAR so the server doesn't need a restart. This is useful as, for example, database connector JARs can now be loaded at any time.


Minor Fixes and Features

  • For fans of Jolokia, there is a technical preview of REST based JMX monitoring.
  • A CDI Eventbus Notifier has been added to allow applications to react to server events.
  • The Asadmin Recorder now handles passwords.
  • The --deployFromGAV now accepts RAR files.
  • tar.gz packaged build released.
  • Style changes made to support page.
  • Over 80 bugs squashed.

Component Upgrades

  • Jersey upgraded to 2.25.1.
  • Jackson upgraded to 2.8.8.
  • Grizzly upgraded to 2.3.31.
  • Weld upgraded to 2.4.2.SP1.
  • HK2 upgraded to 2.5.0.b44.

Security Fixes

A few security fixes have been made for 173:


 Download Payara Server