Quarkus 1.2.0.Final リリース-GraalVM 19.3 .1のサポート、メトリック、キャッシュ拡張など

この記事は、Quarkus.io のブログ記事、Quarkus 1.2.0.Final released - GraalVM 19.3.1 support, Metrics, Cache extension, and more の翻訳記事です。

前回のQuarkusの修正から1ヶ月が経過し、みなさんも頻繁なリリースにも慣れてきましたので、1.2.0.Final がリリースされました。私たちは多くの新しい機能を提供するために努力してきました:GraalVM 19.3 .1のサポートがついにされ、すべてを簡単にキャッシュするために新しいキャッシュ拡張機能を追加し、いくつかの拡張機能のためのデフォルト計量機能を追加し、私たちのHashiCorp Vaultサポートが大幅に改善するなど多くのものを提供しました。

既存のアプリケーションを移行したいとお考えですか?ここに1.2.0.Finalの移行ガイドがあります

このすべてについてさらに学ぶことに興奮していますか?これらの新機能について詳しく説明します。

何が新しいの?

GraalVM 19.3 .1のサポート

1.2.0.Finalは3種類のGraalVMをサポートしています。

  • GraalVM 19.2 .1-JDK8 (これは1.3に廃止されます。)
  • GraalVM 19.3 .1-JDK8
  • GraalVM 19.3 .1-JDK11 (JDK11です!)

Red HatのOpenJDKチームとGraalVMチームと一緒に、私たちはついに19.3ブランチで遭遇したすべての問題に打ち勝ち、19.3.1で我々に必要な最新の修正を提供しました。

最後に、ネイティブの実行可能ファイルを構築する場合でも、みなさんはJDK11の使用を開始できます。ただし、JDK11向けのGraalVMはまだテクニカルプレビューの段階です。

19.3 .0はサポートされていません。19.2.1または19.3.1のいずれかが必要です。

要約すると、Quarkusでは次のように使用できます。

  • JVMモードのJDK 8, 11, 12, 13。JDK 14のサポートはQuarkus 1.3に予定されています。
  • ネイティブ実行可能ファイルを構築するためには JDK 8または11

キャッシュ拡張

まったく新しいCache拡張機能では、CDI Beanメソッドの戻り値をキャッシュすることができます。Caffeineをベースにしており、それを駆動するための一連の注釈が付いています。

簡単に言うと、次のようになります。

@ApplicationScoped
public class CachedBean {

    @CacheResult(cacheName = "foo")
    public MyObject load(MyKey key)
        // Call expensive service here.
    }

    @CacheInvalidate(cacheName = "foo")
    public void invalidate(MyKey key) {
    }

    @CacheInvalidateAll(cacheName = "foo")
    public void invalidateAll() {
    }
}

もっと知りたいですか?こちらにガイドがあります。

計量機能

私たちはQuarkusの可観測性を継続的に改善し、デフォルトの健全性調査の追加に取り組んだ後、デフォルトの計量機能の追加に取り組んでいます。

1.2.0では、Agroal(データベース接続プール)とHibernate ORMの計量機能を追加しました。

Quarkusに貢献するための出発点を探していて、特定の拡張のための計量機能を必要としているなら、これは良い最初の貢献になるでしょう。

Vaultの改良

HashiCorp Vaultサポートにいくつかの改良を加えました。

  • Vault Transit Secret Engineがサポートされ、Vaultを「サービスとしての暗号化 (encryption as a service)」に使用できるようになりました。必要な情報はすべて専用のガイドに記載されています。
  • 複数のKVパスのサポートが追加されました。

SmallRye Fault Tolerance 4.x

このブログ記事日本語)で詳しく説明しているように、私たちはまったく新しいMicroProfile Fault Tolerance実装を用意しました。

以前よりも高速になるはずです(1.3に向けてさらに改良が進められています)ので、試してみて問題が発生したら報告してください。

Hibernate ORM

自動関連付け管理を使用不可にしました。 Hibernate ORMの拡張機能には、関連付けを自動的に管理する機能があります。関連付けの一方の端に要素を追加すると、もう一方の端に要素が自動的に追加されます。

これは非常に実用的ですが、状況によってはうまく機能しない場合があり、すぐに扱いにくくなることがあります。Quarkusで無効にすることにしました。

チューニングの詳細

application.propertiesから次の設定を行えます。:

  • 物理的な命名戦略
  • 暗黙の命名戦略
  • 識別子をすべて引用符で囲む必要がある場合

すべてのHibernate ORM構成プロパティーについては、マニュアルを参照してください。

Hibernate Validatorのローカライズ

複数のロケールをサポートするようにQuarkusアプリケーションを構成する場合、REST呼び出しのコンテキストでBeanまたはメソッドを検証すると、Hibernate ValidatorがAccept-Languageヘッダーから使用するロケールを自動的に解決するようになりました。

詳細については、検証ガイドを参照してください。

ArCにおけるトランザクション監視のサポート

私たちのCDI実装であるArCは現在、トランザクション監視@Observes(during = TransactionPhase.AFTER_SUCCESS)をサポートしています。

さらに Qute

メール拡張機能を使ってメールを送るときにQuteテンプレートエンジンを使うことができるようになりました。

現在、UBIをベースイメージとして使用

私たちはしばらくの間、JDKベースのDockerfileのベースイメージとしてAlpineを使用しました。JDKとネイティブDockerfile用に一貫してUBIイメージを使用するようになりました。

さらに...

  • カテゴリ・レベルで各ハンドラのロギング構成を上書きできるようになりました。
  • Hibernate Search 6.0.0 beta3にアップグレードしました。
  • 従来のMongo-java-driverアーティファクトの代わりに、Mongodb-driver-syncを使用するようになりました。

完全な変更ログ

1.2.0.CR11.2.0.Final の完全な変更ログはGitHubで入手できます。

ADOPTERS.md

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

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

貢献者

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

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

Akito Kidani, Alex Soto, Alexander Zimmermann, Alexey Loubyansky, Anatoly Sablin, Andreas Eberle, Andreas Paschwitz, Andrew Guibert, Andy Damevin, Arne Mejlholm, Bruno Devaux, Clement Escoffier, Damien, David M. Lloyd, David Walluck, Dennis Baerten, Emmanuel Bernard, George Gastaldi, Georgios Andrianakis, Gordon Hutchison, Grzegorz Piwowarek, Guillaume Smet, Gunnar Morling, Gwenneg Lepage, Gytis Trikleris, Harald Reinmueller, Ian Wormsbecker, Ioannis Canellos, Irena Kezic, Jaikiran Pai, Jan Martiska, Jason T. Greene, Johannes, Justin Lee, Ladislav Thon, Loïc Mathieu, Manyanda Chitimbo, Marcel Overdijk, Mark Little, Martin Kouba, Matej Novotny, Matt Berteaux, Matthias Harter, Max Rydahl Andersen, Michael J. Simons, Michal Szynkiewicz, Nayden Gochev, Pavol Loffay, Pedro Igor, Peter Palaga, Rohan Maity, Romain Quinio, Rostislav Svoboda, Sanne Grinovero, Sergey Beryozkin, Stuart Douglas, Stéphane Épardaud, Tobias, Vincent Sevel, Vinícius Ferraz Campos Florentino, x80486 and Yoann Rodière.

参加しよう

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

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

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