What's Coming in Payara 5.194: MicroProfile 3.2 Compatibility

Photo of Cuba Stanley by Cuba Stanley

With the release of Payara Platform 5.194 (coming in December), Payara will officially be MicroProfile (MP) 3.2 compatible. But what's the big deal about this? In this blog, we'll be taking a look at the benefits and features of the upgrade and why you'll want to make use of it.

MicroProfile 3.2 Compatibility in the Payara Platform 5.194 Release

Payara Platform 5.193 ended up in a limbo state between MP 2.2 and 3.0, so with the 5.194 release comes the simplicity and benefits of a full implementation of 3.2 - here's what this is going to provide (referencing the MicroProfile release blogs):

  • Continued alignment with Java EE / Jakarta EE 8 feature subset
  • Richer feature set for Health Check, Metrics, and Rest Client
  • Additional features offering more functionality for implementing enterprise Java microservices
  • Specification clarifications and documentation enhancements
  • Richer integration between MicroProfile APIs
  • APIs with CDI-based and programmatic easy-to-use interfaces
  • Interoperability across different MicroProfile implementations provides users the freedom to select one or combine many MicroProfile implementations in a microservices architecture
  • Thorough set of artifacts for each API, including a Test Compatibility Kit (TCK), Javadoc, PDF and HTML documents for download, API Maven artifact coordinates, Git tag, and downloads (spec and source code)

The upgrades feature new versions of the Health Check, Metrics and Rest Client packages with each of them moving to versions 2.1, 2.2 and 1.3 respectively.

A Brief Glance at the New Versions

The Rest Client update (rooted in MP 3.0 and the smallest of the three) introduces the simplification of the configuration of multiple client interfaces, support for SSL configuration, resource cleanup after use, and media type defaulting when none is specified.

The latest version of Metrics includes some breaking changes related to the refactoring of counters (see spec for more details). In addition, it introduces support for the OpenMetrics format (formerly called Prometheus format), removes unnecessary annotations and deprecated methods, and improves the identification of specific metrics. Further to this, it includes many clarifications, such as metric registry implementations requiring to be thread-safe, metrics being omitted by implementations, and private methods in an annotated class not needing metrics. A fix was created in Metrics 2.2 (rooted in MP 3.2) which reverts a problematic change from Metrics 2.1 where Gauges were required to return subclasses of java.lang.Number.

Finally, Health Check 2.1 adds support for @Liveness and @Readiness health check annotations for container orchestration solutions like Kubernetes along with the addition of a new method to create responses as well as the addition of a config property to disable implementation health procedures and improvements to the javadoc.

All in all, there's a decent set of core stability and functionality improvements being introduced with these updates which can bring a large amount of value to your production environment - all good reason to keep up to date and notified on the release of Payara Platform 5.194!

You can find out more about the MicroProfile Organisation and the spec for the new 3.2 version at the official MicroProfile website and GitHub.

Try using the Payara Micro implementation of MicroProfile - use the MicroProfile Starter to generate a MicroProfile Maven Project with code examples: MicroProfile Starter Project.