Quarkus 3.5.0 released - Java 21, OIDC enhancements

It is our pleasure to announce the release of Quarkus 3.5.0.

Major changes are:

  • Official support for Java 21 (meaning it’s fully tested in our CI)

  • GraalVM/Mandrel builder images updated to Java 21

  • Several OIDC-related enhancements

This version also comes with bugfixes, performance improvements and documentation improvements.

We currently maintain two version streams in the community:

  • 3.5: it is the latest and greatest and it introduces new features

  • 3.2: it is our current LTS release

Quarkus 2.x is not maintained in the community anymore. If you are using the community version, please upgrade to Quarkus 3.x (either 3.2 LTS or 3.5).

Update

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

quarkus update

To migrate from 3.4, please refer to our migration guide.

If you are not already using 3.x, please refer to the 3.0 announcement for all the details. You can also refer to this blog post for additional details. Once you upgraded to 3.0, also have a look at the 3.1, 3.2, 3.3, and 3.4 migration guides.

What’s new?

Java 21

Most of Quarkus was already working with Java 21 but we polished a few things during the 3.5 development cycle and Quarkus is now fully tested with Java 21. The main reason why we were not able to include Java 21 in our CI before is that part of our build is using Gradle (typically to build the Gradle plugin) and Gradle doesn’t fully support Java 21 yet. To overcome this situation, we have decoupled the JVM used to build the Gradle bits from the JVM used to build Quarkus and run our tests, so we won’t have this problem in the future anymore.

Quarkus supports Java 11, Java 17, and Java 21.

GraalVM/Mandrel

We updated our native executable builder images to GraalVM/Mandrel for Java 21 (this is the new version scheme for GraalVM, they now target a Java version).

We still support GraalVM/Mandrel 23.0 but we recommend using GraalVM/Mandrel for Java 21.

OIDC

TokenStateManager backed by database

The TokenStateManager can now be backed by the database of your choice.

You can find more information about the new extension introduced to support this feature in our documentation.

Mastodon provider

Our OIDC extension provides preconfigured setups for a lot of well-known identity providers (such as Google, GitHub, Apple…​).

Quarkus 3.5 adds Mastodon to this list.

OIDC scope attribute

The OIDC scope attribute is now mapped to the SecurityIdentity permissions.

Hibernate Reactive and Agroal

Hibernate Reactive can now coexist with Agroal meaning you can use Flyway or Liquibase in your applications using Hibernate Reactive as the ORM.

It is still not possible to have both Hibernate ORM and Hibernate Reactive in the same application.

Decompiler changed to Vineflower

When developing extensions or working on Quarkus internals, it is often practical to decompile the generated classes as the output of the bytecode is more readable than the bytecode.

Quarkus includes the ability to do it automatically and we changed the compiler from Quiltflower to Vineflower, which is the continuation of Quiltflower. You can find more information about this feature in our documentation.

Full changelog

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

Contributors

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

In particular for the 3.5 release, thanks to Ales Justin, Alex Martel, Alexander Schwartz, Alexey Loubyansky, Andries Reurink, Andy Damevin, Àngel Ollé Blázquez, asjervanasten, Bill Burke, Bruno Baptista, Bruno Lellis, Chris Laprun, Christian Beikov, Clement Escoffier, David Andlinger, Dennis Kieselhorst, effedici, Emanuel Alves, Erin Schnabel, Falko Modler, Foivos Zakkak, Galder Zamarreño, Geoffrey De Smet, George Gastaldi, Georgios Andrianakis, Guillaume Smet, Holly Cummins, Ioannis Canellos, Ivan, Jan Martiska, Julien Ponge, Katia Aresti, kdnakt, Ladislav Thon, Laurent SCHOELENS, Leonor Boga, Loïc Mathieu, Marc Nuri, Marc Savy, Marco Bungart, Marek Skacelik, Marko Bekhta, Martin Kouba, Matej Novotny, melloware, Michael Kanis, Michal Karm Babacek, Michal Maléř, Michal Vavřík, Michelle Purcell, Monhemius, B. (Bart), Nathan Erwin, Navinya Shende, Ozan Gunalp, Paul Wright, Peter Palaga, Phillip Krüger, Robert Pospisil, Robert Stupp, Roberto Cortez, Rostislav Svoboda, Said BOUDJELDA, Sanne Grinovero, Sap004, Sergey Beryozkin, svkcemk, Thomas Darimont, Thomas Segismont, tom, Vinícius Ferraz Campos Florentino, Will Li, Willem Jan Glerum, Yacine Kheddache, and Yoann Rodière.

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: