Quarkus 1.10 リリース - デフォルトとしてのJSON、複数のReactiveデータソース、 新しいMicrometerレジストリ

Red Hat で Solution Architect として Quarkus を担当している伊藤ちひろ(@chiroito)です。

この記事は、Quarkus.io のブログ記事、Quarkus 1.10 released - JSON as default, Multiple reactive datasources, new Micrometer registries... の翻訳記事です。

リリースされたばかりの Quarkus 1.10.2.Final には、多くの改善と新機能が搭載されています。

  • デフォルトのメディアタイプが JSON になりました
  • CodeStarts はデフォルトのプロジェクト生成ツールになりました。
  • Micrometer の拡張機能は、かなりの部分で改善されています(新しいレジストリなど)。
  • 新しい Qute のエラーページ
  • Swagger/GraphQL/Health/OpenAPI UI とSwagger UI の設定
  • Hibernate の ORM 設定の一部が実行時にオーバーライド可能になりました。
  • SmallRye Reactive Messaging 2.5.0 と Mutiny 0.11.0
  • Reactive SQL クライアントが複数のデータソースをサポート
  • 新しい Amazon IAM 拡張機能
  • Google クラウドにデプロイするための新しいガイド

いつものように、バグ修正や使い勝手の改善、ドキュメントの改善なども行われています。

移行ガイド

既存のアプリケーションの移行をお考えですか?ここに 1.10 の移行ガイドがあります。

Java 11 対応の GraalVM 20.2 は、まだ推奨の GraalVM のバージョンです。

1.10.0.Final (1.10.1.Finalも)はどこにあるの!?

Caffeine 拡張機能のリグレッションを発見しました。そのため 1.10.0.Final の発表をスキップしました。そして、Platform BOM の問題を発見しました。なので 1.10.2.Final をリリースしなければなりませんでした。

その間にいくつかの問題を修正することができたので、1.10.2.Final はより大きなリリースとなりました。

何が新しいの?

デフォルトのコンテンツタイプとしての JSON

REST リソースを冗長にならないようにするための努力と、最近では JSON が REST サービスで最も広く使用されているコンテンツタイプであることを考慮して、Quarkus では REST リソースのデフォルトとして JSON が使用されるようになりました。

つまり、JSON を使用している場合は、@Produces@Consumes のアノテーションを追加する必要がなくなります。

また、コンテンツタイプネゴシエーションに頼っていた場合、サポートしているコンテンツタイプでこれらのアノテーションを追加しなければいけません。

デフォルトのプロジェクト生成ツールとしての CodeStarts

CodeStarts プロジェクトは、長い間地道な努力を続けてきました。朗報:今はデフォルトのプロジェクト生成ツールになりました。

エンドユーザーの視点から見ると、より良い UI、より柔軟性のあるコード例をもたらします。

Micrometer レジストリ

新たに2つのレジストリが追加されました。

  • StatsD
  • SignalFX

さらにメトリクスを追加しました。

Swagger/GraphQL/Health/OpenAPI UIs

Swagger/GraphQL/Health/OpenAPI UI を一貫して Quarkus をテーマにしたものにするために、多くの作業が行われました。

また、実行時にそれらを無効にすることもできます。

より具体的には、Swagger UI の前面では、すべての Swagger UI 設定のつまみが Quarkus の設定プロパティとして公開されています。それについては、先日公開されたばかりの Stylish API のブログ記事で紹介しています。

Qute エラーページ

テンプレートエンジンのQuteをお使いの方は、ピカピカのエラーページをご覧になって喜んでいただけると思います。これがエラーを指摘し、さらに生産性を高めてくれます。

https://quarkus.io/assets/images/posts/quarkus-1-10-2-final-released/qute-error-page.png

Hibernate ORM ランタイム設定

1.10 以前では、すべての Hibernate ORM 構成プロパティがビルド時に修正されていました。主に最適化のためのものです。

1.10 では、慎重に選択したいくつかのプロパティについてこのルールを緩和しました。以下のプロパティを実行時にオーバーライドできるようになりました。

  • quarkus.hibernate-orm.database.generation
  • quarkus.hibernate-orm.database.generation.create-schemas
  • quarkus.hibernate-orm.database.generation.halt-on-error
  • quarkus.hibernate-orm.log.sql
  • quarkus.hibernate-orm.log.format-sql

より多くの Reactive の変更

SmallRye Reactive Messaging が 2.5.0 にアップグレードされました。これにより、いくつかの改善と Mutiny が 0.11.0 にアップグレードされました。

Reactive SQL クライアントは複数のデータソースをサポートするようになりました。これによって複数のデータベースに接続できるようになりました。JDBC データソースの場合と全く同じ方法で使用できます。

Amazon IAM の新しい拡張機能

Amazon サービスの拡張機能に新しい友人ができました。真新しい Amazon IAM 拡張機能です。

これについては、Amazon IAM ガイドで詳しく紹介されています。

Google Cloud

Google Cloud 関連の仕事の多くは Quarkiverse で行われています。

また、Quarkus アプリケーションをどのように Google Cloud にデプロイするのか疑問に思っている方のために、新しいガイドをご用意しました。

その他の変更点

  • Hibernate ORM が 5.4.24.Final にアップグレードされました。

完全な変更ログ

1.10.0.CR11.10.0.Final1.10.1.Final1.10.2.Final の完全な変更ログはGitHubで入手できます。

ADOPTERS.md

Quarkusの使用に関する情報を共有するために、リポジトリのルートにADOPTERS.mdファイルを追加しました。

Quarkusを使用していて、私たちのブログでインタビューを受けたい場合、または単にこのファイルに追加したい場合は、私たちにご連絡ください。

貢献者

Quarkusには現在395人の貢献者がいます。皆様、本当にありがとうございました。

特に1.10リリースについてはみなさんのおかげです。

Alexey Loubyansky, Andrea Cosentino, Andreas Eberle, Andrej Petras, Andrew Hatch, Andy Damevin, Anton Fagerberg, Antonio Goncalves, antonwiens, Arne Mejlholm, Auri Munoz, Bill Burke, Bobby Alex Philip, Bobby Philip, Cem Nura, Clement Escoffier, Daniel Platz, David M. Lloyd, Denis Fuenzalida, Dheeraj Nalluri, Dmitry Telegin, Dominik Henneke, Dušan Križan, Erin Schnabel, Falko Modler, Felix Wong, Foivos Zakkak, George Andrinopoulos, George Gastaldi, Georgios Andrianakis, ghokun, Guillaume Le Floch, Guillaume Smet, Gwenneg Lepage, Gytis Trikleris, Ioannis Canellos, Jack Hu, Jaikiran Pai, Jakub Antosik, Jan Martiška, Jordi Sola, Julien Ponge, Justin Holmes, Justin Lee, jyemin, jzuriaga, Jérôme TAMA, Jörg von Frantzius, kdnakt, Kevin Viet, Knut Wannheden, Kuba Antosik, Ladislav Thon, Libor Krzyzanek, Lovekesh Garg, Loïc Mathieu, luneo7, Maciej Swiderski, Manyanda Chitimbo, Marcin Czeczko, Martin Kouba, Matej Novotny, Matej Vasek, Matthias Harter, Michal Szynkiewicz, Nathan Erwin, osaka-svg, Paul Kunysch, Pedro Igor, Peter Palaga, Phillip Kruger, René Grob, Robbie Gemmell, Roberto Cortez, Rostislav Svoboda, Samuel Le Berrigaud, Sanne Grinovero, seregamorph, Sergey Beryozkin, Simon Bengtsson, Stefan Hacker, Stephane Epardaud, Stuart Douglas, Thorasine, Vincent Sevel, Vincent Sourin, Vinod Anandan, xstefank, Xumk, Yoann Rodière

参加しよう

私たちはあなたのフィードバックをとても大切にしていますので、バグを報告し、改善を依頼してください...一緒に何か素晴らしいものを作りましょう!

Quarkusのユーザーや好奇心の強い人は、恥ずかしがらずに歓迎コミュニティに参加してください。

* 各記事は著者の見解によるものでありその所属組織を代表する公式なものではありません。その内容については非公式見解を含みます。