Quarkus 3.12 - TLS Registry, load shedding, native image agent, Kotlin 2.0 and more

Today, we released Quarkus 3.12, which among other new features comes with what we called the TLS Registry.

The TLS Registry is an important piece of our security infrastructure as it centralizes the TLS configuration to a single place. Some extensions have already been moved to it, some others will follow, together with some additional tooling like commands in the Quarkus CLI.

The main changes are:

  • #39825 - Implementation of the internal TLS Registry

  • #40142 - Load shedding extension

  • #37900 - Java Flight Recorder extension

  • #40729 - Introduce container-image-podman extension

  • #36826 - Initial native image agent with JVM mode tests integration

  • #40344 - Update Spring APIs to Spring Boot 3

  • #40745 - Kotlin was bumped to 2.0

  • #40714 - Enhance MongoDb OpenTelemetry integration

Update

To update to Quarkus 3.12, we recommend updating to the latest version of the Quarkus CLI and run:

quarkus update

Note that quarkus update can update your applications from any version of Quarkus (including 2.x) to Quarkus 3.12.

For more information about the adjustments you need to make to your applications, please refer to the Quarkus 3.12 migration guide.

What’s new?

TLS Registry

TLS configuration used to be spread in each Quarkus extension and wasn’t exactly consistent.

The TLS Registry changes that and centralizes all the TLS configuration in one place. Even if centralized, you can define several named configurations that you will be able to consume in the supported extensions.

Extensions using the new TLS Registry are:

  • REST Client (the one from Quarkus REST)

  • Mailer

  • Redis

  • WebSockets Next

More will come soon and you can also expect more features related to the TLS Registry very soon.

You can find more information about the TLS Registry in the dedicated guide.

Load shedding

Load shedding is the practice of detecting service overload and rejecting requests.

Quarkus 3.12 comes with the quarkus-load-shedding extension, which implements…​ drumroll!…​ load shedding.

The Load Shedding reference guide will help you getting started.

Java Flight Recorder

Java Flight Recorder is a monitoring tool that allows to record events recorded during the execution of a Java application.

While you can use Java Flight Recorder with Quarkus as is, the Quarkus JFR provides some integration at the Quarkus level that can be handy.

For more information, have a look at the Quarkus JFR tutorial.

Container Image Podman

If you are using Podman instead of Docker, you can now use the Container Image Podman extension that is dedicated to Podman.

More information in the Container Image guide.

Native Image agent

You can use Quarkus in JVM and native mode and both are their strengths.

Switching from JVM to native can be a challenge though if you have a complex application: while Quarkus takes care of all the heavy lifting for the extensions, you might have to tweak the native image configuration for your own classes.

It is often a trial and error process and given compiling a native executable takes time, it can be a long and tedious process.

Quarkus 3.12 integrates with the native image agent to provide some configuration hints.

The general idea is to run your integration tests with the tracing agent and, based on the execution of the tests, it will determine how to best configure the native build.

For now, this integration is only available with Maven but contributions are very welcome to integrate it in the Gradle plugin.

You can find more information about this new feature in the Native reference guide.

Note that newly generated projects will automatically come with the appropriate configuration in the generated pom.xml.

Spring compatibility layer aligned with Spring Boot 3

Quarkus has a Spring compatibility layer with some support for Spring DI, Spring MVC, Spring Data…​

This compatibility layer has been upgraded to be aligned with the Spring Boot 3 APIs.

Kotlin 2.0

Kotlin users will be thrilled, we upgraded our Kotlin support to Kotlin 2.0.

MongoDB and OpenTelemetry

The OpenTelemetry integration in the MongoDB extension has been improved a lot in Quarkus 3.12.

So if you’re using MongoDB and OpenTelemetry, it is a good reason to upgrade!

Quarkus CXF

Quarkus CXF 3.12.0 was released and is now available in Quarkus Platform 3.12. Check Quarkus CXF 3.12.0 release notes for more information about what is new in this release.

Full changelog

You can get the full changelog of 3.12.0.CR1 and 3.12.0 on GitHub.

Contributors

The Quarkus community is growing and has now 956 contributors. Many many thanks to each and everyone of them.

In particular for the 3.12 release, thanks to Alex Martel, Alexey Loubyansky, Andre F de Miranda, Andy Damevin, Arthur Burke, Auri Munoz, Bruno Baptista, Chihiro Ito, Chris Laprun, Christian Navolskyi, Christian Schmidt, cknoblauch, Clement Escoffier, Cody Moore, Daniel Meier, David Andlinger, David M. Lloyd, Davide D’Alto, Eric Deandrea, Fabrice Bauzac-Stehly, Floris Westerman, Foivos Zakkak, Fouad Almalki, Galder Zamarreño, George Gastaldi, Georgios Andrianakis, Giancarlo Calderón Cárdenas, Graham Cunningham, Guillaume Smet, Harsh Bhagat, Holly Cummins, Ioannis Canellos, Jakub Jedlicka, Jerome Prinet, Katia Aresti, Ladislav Thon, Marc Nuri, Marco Schaub, marko-bekhta, Martin Kouba, Matej Novotny, Matheus Cruz, Max Rydahl Andersen, Michal Karm Babacek, Michal Vavřík, Nithanim, Ozan Gunalp, Patryk Najda, Peter Palaga, Phillip Krüger, Pierre Cheucle, Rolfe Dlugy-Hegwer, Said BOUDJELDA, Sanne Grinovero, Sergey Beryozkin, Siva_M7, Stéphane Épardaud, Tamaro Skaljic, Thibault Meyer, Thomas Darimont, Vincent Sevel, vkn, vsevel, Yoann Rodière, and Yoshikazu Nojima.

Come Join Us

We value your feedback a lot so please report bugs, ask for improvements…​ Let’s build something great together!

If you are a Quarkus user or just curious, don’t be shy and join our welcoming community: