Quarkus 3.22 - Compose Dev Services, improved test class loading infrastructure...
Today, we released Quarkus 3.22.
It comes with several important features, together with some infrastructure improvements:
-
#46848 - Compose Dev Services
-
#34681 - Improved testing class loader infrastructure
-
#44473 - Allow Hibernate ORM and Hibernate Reactive to be used in the same application
-
#46398 - Apply validation modes to the Hibernate Reactive session factory config / Add tests for Reactive + Validator
-
#46728 - Dedicated Dev UI interface to execute HQL (Hibernate ORM) queries
-
#47012 - Add Jakarta Data documentation, dependency management and tests
-
#46864 - Allow setting Clear-Site-Data on OIDC logout
-
#47254 - Add OIDC expanded configuration reference
-
#47127 - Support customization of gRPC server building
-
#47435 - Make Stork optional for REST Client
Update
To update to Quarkus 3.22, 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.22.
For more information about the adjustments you need to make to your applications, please refer to the Quarkus 3.22 migration guide.
What’s new?
Compose Dev Services
Dev Services is one of the key developer joy feature of Quarkus. It has been around for quite some time and is very handy to get simple containers started in dev and test modes.
Quarkus 3.22 introduces the ability to compose and orchestrate complex container setups as Dev Services, by leveraging the Compose approach offered by Docker and Podman.
You can learn all about it in the dedicated guide.
Improved testing class loader infrastructure
This one has been in the works for quite some time and we are pleased to announce a new testing class loader infrastructure. It fixes a lot of issues but might also introduce some issues - even if we tried hard to squash all of them.
You can learn (a lot!) more about it in Holly’s blog post presenting this work.
If you encounter any weird class loading issues in your tests, please report back!
Hibernate ORM and Hibernate Reactive
We used to not be able to mix Hibernate ORM and Hibernate Reactive in the same application. This limitation has now been lifted and you can leverage the strengths of both extensions in the same app.
Also, Hibernate Validator is now properly integrated with Hibernate Reactive.
Finally, Quarkus 3.22 includes a new Dev UI feature: you can execute HQL queries (as in Hibernate Query Language) directly in the Dev UI, allowing you to very easily test your HQL queries and iterate on them.
Jakarta Data
Jakarta Data has been supported by Quarkus since its inception but it wasn’t properly documented. It has now a dedicated section in the Hibernate ORM guide.
The Jakarta Data dependencies have been added to our BOM.
OIDC
Starting with 3.22, on OIDC logout, you have the ability to set Clear-Site-Data
header by using the quarkus.oidc.logout.clear-site-data
configuration property.
We also added a brand new guide with extensive coverage of the OIDC configuration.
gRPC
It is now possible to customize the gRPC server building by implementing the ServerBuilderCustomizer
interface.
You can find out more about in the new section added to the documentation.
Stork
To avoid having to initialize Stork even if not needed, Stork is no longer a hard dependency of the REST Client.
If you want to leverage Stork with the REST Client, you need to add the Stork extension to your build file.
Platform component upgrades
Quarkus CXF
Quarkus CXF 3.22 was released and is now available in Quarkus Platform 3.22. Check the Quarkus CXF 3.22.0 release notes for more information about what is new in this release.
Full changelog
You can get the full changelog of 3.22.0.CR1, 3.22.0, and 3.22.1 on GitHub.
Contributors
The Quarkus community is growing and has now 1075 contributors. Many many thanks to each and everyone of them.
In particular for the 3.22 release, thanks to Aixi-dev, Ales Justin, Alexey Loubyansky, Andreas Eberle, Andy Damevin, Antonio Musarra, Auri Munoz, Barry LaFond, Bruno Baptista, Clemens Classen, Clement Escoffier, Davide D’Alto, Digvijay Singh, elmodeer, Eric Deandrea, Esben Nedergaard, Fabian, Fabian Senn, feibl, Foivos Zakkak, franz1981, George Gastaldi, Georgios Andrianakis, Giancarlo Calderón Cárdenas, Guillaume Smet, Harry Chan, Holly Cummins, holomekc, Inaki Villar, ineednousername, Jan Martiska, Jeremie Bresson, Johnathan Gilday, Juan Antonio Breña Moral, Julien Ponge, Junes, Karm Michal Babacek, Katia Aresti, Ladislav Thon, Loïc Mathieu, Luca Basso Ricci, Luca Molteni, Marco Belladelli, mariofusco, marko-bekhta, Martin Bartoš, Martin Kouba, Martin Panzer, Matej Novotny, Matheus Cruz, Matheus Oliveira da Silva, Maximilian Zellhofer, Michael Edgar, Michael Musgrove, Michal Vavřík, Michiel Dockx, Mikhail Polivakha, Ozan Gunalp, Ozzy, Paulo Casaes, Peter Palaga, Phillip Krüger, Roberto Balarezo, Roberto Cortez, Rod Cheater, Rostislav Svoboda, Rüdiger zu Dohna, Sergey Beryozkin, shjones, Stuart Douglas, Stéphane Épardaud, Tamas Cservenak, Vardhman, w0pp, Yassine Haouzane, 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:
-
provide feedback on GitHub;
-
craft some code and push a PR;
-
discuss with us on Zulip and on the mailing list;
-
ask your questions on Stack Overflow.