Quarkus リリースノートまとめ

f:id:Naotsugu:20191119224111p:plain


Quarkus 2.2

2021年08月

  • GraalVM 21.2 へのアップグレード
  • Dev Services の一括無効化が可能となった
    • quarkus.devservices.enabled=false
  • RESTEasy Reactive でスレッドモデルが強化された
    • RESTメソッドのプロトタイプに応じて、ブロッキングまたはノンブロッキングのスレッドモデルが選択可能となった
    • 同期メソッドはワーカースレッドがデフォルトとなり、非同期メソッドはI/Oスレッドがデフォルト
    • Quarkus 2.3から RESTEasy reactive が HTTP API 実装のデフォルトになる予定
  • MongoDB のサービスバインディング追加
  • Narayana LRA extension の追加
    • Long Running Actions
    • JAX-RSメソッドに@LRAアノテーションを付けてLRAを開始


Quarkus 2.1

2021年07月

  • Dev Service で Keycloak が利用可能となった
    • Dev Service で OpenId Connect (OIDC) 用のコンテナが自動起動
  • Microsoft SQL Server 向けの Reactive 拡張(ドライバ)の追加
    • quarkus-reactive-mssql-client
  • Kotlin 1.5 対応


Quarkus 2.0

2021年06月

  • JDK 11、GraalVM 21.1、Vert.x 4、MicroProfile 4
  • Continuous Testing
    • コンソール(または Dev UI)で r を押すと有効に
  • Quarkus CLI
  • SmallRye GraphQL Client エクステンション
  • Hibernate ORM が 5.5 にアップグレード
  • CDI の Decorator サポート
  • MongoDB with Panache によるトランザクションサポート
  • RESTEasy Reactive, REST Client, Reactive Messaging エクステンションのKotlin コルーチンサポート
  • Amazon SSM エクステンション


Quarkus 1.13

2021年03月

  • DevServices の追加
    • devモードで自動的にテスト用のコンテナが自動設定される
  • OpenTelemetry 用のエクステンションquarkus-opentelemetryの導入
    • リクエストのトレースが可能
  • Kubernetes Service Binding
    • Service Binding Specification for Kubernetes の実装を提供
    • quarkus-kubernetes-service-binding エクステンション
  • RESTEasy Reactive ベースの RESTクライアントエクステンション
    • quarkus-rest-client-reactive
  • Vert.xベースのWebsocketsエクステンション
    • quarkus-websockets
  • quarkus-jacoco エクステンションによるカバレッジレポートのサポート
  • @QuarkusIntegrationTest でのアーティファクトに依らないテスト


Quarkus 1.12

2021年02月

  • パッケージタイプとして Fast jar がデフォルトとなった
    • 1.5 で導入された起動時間を短縮する新しいパッケージ形式
    • これに伴い quarkus-app ディレクトリに実行可能 jar が生成される
  • RESTEasy Reactive での Multipart 対応の追加
  • GraalVM 21.0 へのアップグレード


Quarkus 1.11

2021年01月

  • RESTEasy Reactive の導入
    • Vert.xレイヤーで動作する新しいJAX-RS実装が提供された
  • Dev UIの導入
    • devモードで利用できる開発用のUIが利用可能となった
  • Micrometer サポートの向上
  • Spring Data REST エクステンション
  • Health endpoints などのアプリケーションがエンドポイントの名前空間変更(/q/)
  • Hibernate 固有の SessionFactory と Session がDI可能となった
  • Jackson において FAIL_ON_UNKNOWN_PROPERTIES がデフォルト無効となった
  • jbang 統合の強化
    • devモード、BOMをサポート
  • GraalVM 20.3


Quarkus 1.10

2020年12月

  • JSON がデフォルトの Content Type になった
    • つまり @Produces や @Consumes アノテーションを省略可能
  • CodeStarts がデフォルトのプロジェクト生成ツールとなった
  • Micrometer 拡張に StatsD と SignalFX レジストリが追加された
  • Swagger/GraphQL/Health/OpenAPI が一貫したUIとなった
  • Qute テンプレートエンジンで表示されるエラーページが改善された
  • ビルド時に固定されていた Hibernate ORM の設定が(部分的に)実行時に変更可能となった
  • Hibernate ORM が 5.4.24にアップグレードされた
  • SmallRye Reactive Messaging が 2.5.0 に、Mutiny が 0.11.0 にアップグレードされた
    • Reactive SQL Clients でマルチデータソースをサポート
  • Amazon IAM 拡張が導入された
  • Quarkusアプリケーションを Google Cloud にデプロイするための新しいガイドが提供された


Quarkus 1.9

2020年10月

  • Micrometer 拡張の成熟
    • 1.8で導入したMicrometer 拡張は、Quarkus におけるメトリクス収集に推奨できるようになった
  • Bean Validation が Reactive Routes メソッドで利用可能となった
  • SmallRye Reactive Messaging が 2.4.0 にアップグレード
  • @TestTransaction が追加された
    • テスト終了時にトランザクションが自動的にロールバックできる
  • Redis インスタンスへの接続が複数の Redis Clients により可能になった
  • JAXB 拡張に JAXP が含まれていたが、これが分離された
  • Hibernate ORM が 5.4.22 にアップグレードされた


Quarkus 1.8

2020年9月

  • 複数 Persistence Units のサポート
  • Micrometer extension拡張
    • quarkus-micrometer
  • jbang を使ったスクリプトアプリケーションサポート
  • GraalVM 20.2
  • SmallRye OpenAPI サポート
    • quarkus.smallrye-openapi.store-schema-directory
  • Quartz サポート
    • QuartzのジョブでCDIインジェクションが可能に
  • MongoDB with Panache の Kotlin サポート
    • quarkus-mongodb-panache-kotlin


Quarkus 1.7

2020年8月

  • 高レベル/低レベル双方のElasticsearch REST クライアント
  • Vert.x Redis クライアント
  • Hibernate ORM モジュールの Hibernate Envers サポート
  • サーバレスフレームワーク Funqy の改善
    • Funqy HTTP bindings へのクエリパラメータの注入
    • Google Cloud Platform のサポート
  • Reactive Routes の改善
    • @Param, @Header, @Body アノテーションの追加
    • Mutiny types の完全なサポート
  • Db2 JDBC driver の拡張
  • セキュリティテスト基盤
    • @TestSecurity アノテーションの追加
  • 複数 extension registries のサポート


Quarkus 1.6

2020年7月

  • AppCDS(Application Class Data Sharing)アーカイブの生成サポート
    • Java 12でデフォルト有効化されたCDS機能による起動時間短縮
  • GraalVM 20.1.0へのアップグレード
  • CDIの開発モードエンドポイント追加
  • リクエストボディの最大サイズ制限が可能となった
  • 新しい拡張
    • Google Cloud Functions
    • リアクティブなIBM Db2クライアント
    • Apache Cassandra クライアント
    • WebJars ロケーター
    • Spring @Scheduled サポート
    • SmallRye GraphQL 拡張モジュールで OpenTracing が有効に
    • OptaPlanner 拡張が Quarkus コアリポジトリから OptaPlanner リポジトリに移動


Quarkus 1.5

2020年6月

  • Fast-jar パッケージフォーマットが追加された
    • 従来の jar に変わり将来バージョンでデフォルトとなる予定
  • Picocli 拡張によりコマンドラインアプリケーションの作成が簡単に
  • gRPC 拡張が追加された
  • GraphQL 拡張が追加された
    • EclipseのMicroProfile GraphQL 実装
  • Amazon Services 拡張が追加された
    • Amazon DynamoDB - NoSQL database
    • Amazon KMS - Key Management Service
    • Amazon S3 - Object storage service
    • Amazon SES - Email service
    • Amazon SNS - Notification service
    • Amazon SQS - Queue service
  • Panache 拡張の機能拡充
  • JAX-RS と Hibernate ORM によるCRUD REST APIの作成が簡素化
  • Spring Cache アノテーション
  • Blaze Persistence 拡張


Quarkus 1.4

2020年4月

  • Java11 が標準となり Java8 が非推奨になった
    • Java8 のサポートは Quarkus 1.6 で終了予定
  • コマンドラインアプリケーションの構築が可能となった
  • HTTP/2 サポートが追加された(デフォルト有効)
  • Funqy という FaaS フレームワークが導入された
    • Amazon Lambda や Azure Functions などで利用できる
  • CDI ビーンズのモック化が簡単に可能となった
  • MongoDB クライアントがバージョン4にアップグレードされた
  • Vault KV Secret Engine がバージョン2にアップグレードされた
  • SmallRye Reactive Messaging がバージョン2にアップグレードされた
  • 新しい拡張
    • Keycloak Admin Client 用の専用の拡張追加
    • Amazon Alexa サポートの追加
    • LDAP 認証の追加


Quarkus 1.3

2020年3月

  • クラスローダの刷新により潜在的な問題が解消された
  • 単一の Vert.x インスタンスで処理を行うことでリソースが低減
  • ASCIIアートのバナー追加
  • Mutiny という新しいリアクティブプログラミングAPIの導入
  • Kubernetes や OpenShift へのデプロイの簡素化
  • SmallRye 拡張が Eclipse MicroProfile 3.3 向けにアップデート
  • HTTP read timeout の追加
    • デフォルトで 1分
  • GraalVM 20.0 サポート
  • Hibernate ORM の bytecode enhancement による自動関連管理は今後無効
    • quarkus.hibernate-orm.second-level-caching-enabled で second level caching を無効化可能
  • Spring 互換レイヤの最適化
    • 必要なAPIとアノテーションにトリムダウンされ、サポート機能のみの依存
  • 新しい拡張
    • コンテナイメージのビルド容易化
    • OptaPlanner
    • Security JPA
    • Spring Cloud Config Client
    • AWS X-Ray
    • Qpid JMS
    • Liquibase
    • Reactive MongoDB with Panache


Quarkus 1.2

2020年1月

  • GraalVM 19.3.1 をサポート
  • キャッシュ extension
    • CDI Beans の戻り値をアノテーションベースでキャッシュ可能
  • メトリクスの継続的な改善
    • データベースコネクションプール(Agroal)のメトリクス
    • Hibernate ORM のメトリクス
  • HashiCorp の VAULTのサポート
    • CredentialやAPI 鍵の保管から、ユーザ・サインアップ用のパスワードの暗号化などを扱うシークレットデータ管理ツール
  • MicroProfile Fault Tolerance の新しい実装
    • Netflix の Hystrix から SmallRye へ移行
  • Hibernate ORM で自動関連管理を無効化した
  • Hibernate Validator で Accept-Languageヘッダーによりロケールを自動解決
  • CDI (ArC) でのトランザクションオブザーバのサポート追加
  • Mailer 拡張で、メール送信時に Qute テンプレートが利用可能


Quarkus 1.1

2019年12月

  • GraalVM は 19.2.1 をサポート
    • GraalVM 19.3 へのアップグレードはいくつか問題があり Quarkus 1.2 に持ち越し
  • 新しいテンプレートエンジン Qute を experimental(実験的)として追加
  • Configuration フレームワークの更新
    • quarkus-config-yaml 拡張で YAML 形式をサポート
  • Spring API のサポートに Spring Security API を追加
  • Gradle のバージョンを 6系に変更
    • 旧来ユーザは Gradle plugin の宣言を変更する必要あり
  • Logging の改善
    • logging-gelf 拡張で Graylog Extended Log Format(GELF)をサポート
    • logging-json 拡張で JSON 形式のログフォーマットをサポート
    • logging-sentry 拡張で Sentry によるイベント監視をサポート
  • Kogito 0.6 へのアップデート
    • Kogito はルール/プロセスエンジン
  • Quartz 拡張にクラスタ化されたJOBのサポートを追加