Quarkus 3.37 - Extension-based modularity, Hibernate ORM 7.4, Jackson reflection-free serializers, and more
We’re pleased to announce the release of Quarkus 3.37.
This release brings several notable features:
-
#53140 - Extension-based modularity
-
#54083 - Bump Hibernate ORM to 7.4.0.Final, Reactive to 3.4.0.Final, Search to 8.4.0.Final
-
#54347 - Enable Jackson reflection-free serializers by default
-
#54533 - Introduce ability to get response metadata in streamed response
-
#54631 - Add
quarkus-rest-data-hibernate-typesextension
Update
To update to Quarkus 3.37, 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.37.
For more information about the adjustments you need to make to your applications, please refer to the Quarkus 3.37 migration guide.
変更点
Extension-based modularity
Quarkus 3.37 introduces the new quarkus-jlink extension, which produces a jlink-ed modular application using jlink.
By leveraging the Java module system, jlink creates a custom runtime image that includes only the JDK modules your application actually needs, stripping out everything else.
This results in significantly smaller deployment artifacts compared to shipping a full JDK, which is particularly beneficial for container-based deployments where image size matters.
When this extension is present, default JAR packaging is disabled.
This extension is experimental. Container builds, cross-architecture builds, AOT with jlink, and modular testing are not yet supported.
Have a look at the jlink guide to get started. As this is still experimental, we welcome your feedback!
Hibernate ORM 7.4, Hibernate Reactive 3.4, Hibernate Search 8.4
Quarkus 3.37 upgrades Hibernate ORM from 7.3 to 7.4, Hibernate Reactive from 3.3 to 3.4, and Hibernate Search from 8.3 to 8.4.
Hibernate ORM 7.4 includes several behavioral and DDL changes, for instance pagination limits are now processed in SQL, and new NOT NULL constraints are added on timestamp columns. PostgreSQL minimum version is also bumped to 14. Please refer to the Hibernate ORM 7.4 migration guide for the full list of changes.
Hibernate Search 8.4 is fully backwards-compatible. See the Hibernate Search 8.4 migration guide for more details.
Also, Elasticsearch Dev Services now defaults to Elasticsearch 9.4 and OpenSearch 3.6.
Jackson reflection-free serializers enabled by default
Jackson’s reflection-free serializers are now enabled by default in Quarkus. This improves serialization performance by avoiding reflection-based serialization.
If you run into any issues, you can disable this optimization by setting:
quarkus.rest.jackson.optimization.enable-reflection-free-serializers=false
and please report the problem so that we can fix it.
Streamed response metadata in REST Client
The REST Client introduces RestMultiResponse, which allows extraction of status codes and HTTP headers from streamed responses.
Previously, getting response metadata from a streamed response required falling back to the Vert.x HTTP Client directly.
New quarkus-rest-data-hibernate-types extension
A new quarkus-rest-data-hibernate-types extension has been added.
It is automatically included as a conditional dependency when both quarkus-rest-jackson and quarkus-data-hibernate are part of the application, providing better integration between the REST layer and Hibernate ORM data types.
完全な変更履歴
You can get the full changelog of 3.37.0.CR1 and 3.37.0 on GitHub.
コントリビューター
The Quarkus community is growing and has now 1203 contributors. Many many thanks to each and everyone of them.
In particular for the 3.37 release, thanks to Alex Martel, Alexey Loubyansky, Andreas Maechler, Arend von Reinersdorff, Arthur Navarro, Ashish Thakur, Atharv Hatwar, Aurea Munoz, Beutlin, Bruno Baptista, Carles Arnal, Chris Laprun, Clement Escoffier, David M. Lloyd, Dorothy Cheng, Enoque Duarte, Faisal Dilawar, Foivos Zakkak, Fouad Almalki, George Gastaldi, Georgios Andrianakis, Gorre Surya, Guillaume Smet, Holly Cummins, Inaki Villar, Jan Martiska, jcarranzan, Jesse White, Jiri Ondrusek, Julien Ponge, Katia Aresti, Kristian Rickert, Ladislav Thon, Laurent Goujon, lloydmeta, loiclefevre, lu1tr0n, Luca Molteni, Marco Belladelli, Marco Sappe Griot, Marek Skacelik, mariofusco, marko-bekhta, Martin Kouba, Matej Novotny, Matheus Cruz, Max Rydahl Andersen, MdTanwer, Michael Edgar, Michael Hertel, Michal Maléř, Michal Vavřík, Nikolas Schmidt-Voigt, Ozan Gunalp, Pantazis Vouzaxakis, Phillip Krüger, Roberto Cortez, Rolfe Dlugy-Hegwer, Sergey Beryozkin, Shivam Srivastav, Stéphane Épardaud, Sven Zbinden, Tamas Cservenak, Teymur Babayev, Willem Jan Glerum, xstefank, Yoann Rodière, and Zahanturel.
参加のお誘い
私達は皆様からのフィードバックに重きを置いています。バグ報告、改善要望を是非お願いします。一緒に素晴らしいものを作り上げていきましょう!
Quarkusユーザーの場合でも、単に興味を持っているだけの場合でも、恥ずかしがらずにコミュニティに参加して下さい!:
-
GitHub でフィードバック
-
コードを作成し、 プルリクエスト を送信
-
Stack Overflow で質問