ドキュメントナビゲーションを開く
R2D1 / ドキュメント

Quarkus

R2D1 1.8.0 に含まれます

オプションの R2D1 拡張は同じコレクション API を Quarkus CDI 設定に接続します。検証基準は Quarkus 3.39.5 と Java 21+。管理された JDBC 仮想スレッドには Java 25+ が必要です。

依存関係の必要範囲

Quarkus 統合に必須: dev.nexcraft:r2d1-quarkus:1.8.0。core の dev.nexcraft:r2d1 を推移的に含むため、core を別途宣言する必要はありません。Quarkus は拡張 descriptor から r2d1-quarkus-deployment を自動解決します。

implementation("dev.nexcraft:r2d1-quarkus:1.8.0")

Quarkus アプリケーションでは framework のバージョンを揃えるため Quarkus platform/BOM を使います。Gradle plugin またはアプリケーションで既に読み込んでいる場合、BOM を重複追加しないでください。

バックエンド選択: 基本の R2 + D1 組み合わせは r2d1 に含まれる adapter を使います。Filesystem または JDBC adapter は該当 backend を選んだ場合だけ必要です。

Filesystem + JDBC + H2 の選択依存関係

以下の filesystem + JDBC + H2 構成に限り必須: 2つの R2D1 adapter artifact、H2 JDBC driver、Quarkus 管理 datasource 用 Agroal。別の DB やアプリケーション所有 datasource では対応する driver/pool を使用します。Quarkus extension のバージョンは Quarkus platform が管理します。

implementation("dev.nexcraft:r2d1-filesystem:1.8.0")
implementation("dev.nexcraft:r2d1-jdbc:1.8.0")
implementation("io.quarkus:quarkus-jdbc-h2")
implementation("io.quarkus:quarkus-agroal")

有効化と設定

統合はデフォルトで無効です。アプリケーションの CDI DocumentCodec を提供してください。デフォルト JSON codec はありません。コンストラクターで R2D1 を注入し、共通コレクション API を使います。以下の例にはアプリケーション所有の documents Executor と選択した Quarkus datasource も必要です。

quarkus.r2d1.enabled=true
quarkus.r2d1.document.type=filesystem
quarkus.r2d1.index.type=jdbc
quarkus.r2d1.filesystem.root-directory=./documents
quarkus.r2d1.filesystem.executor=documents
quarkus.r2d1.jdbc.datasource=selected
quarkus.datasource.selected.db-kind=h2
quarkus.datasource.selected.jdbc.url=jdbc:h2:mem:documents;DB_CLOSE_DELAY=-1
quarkus.datasource.selected.devservices.enabled=false
quarkus.r2d1.jdbc.max-concurrency=4
quarkus.r2d1.jdbc.max-pending=64

アプリケーション Bean とリソース所有権

アプリケーションの facade、factory、ストア Bean はデフォルト producer を置き換えられます。カスタム IndexStore には対応する CollectionInitializer が必要です。正確な CDI 名または Quarkus datasource 名で選択します。提供された client、executor、datasource は借用され、拡張が作成したリソースは終了時や起動失敗時に閉じられます。

JDBC はデフォルトで制限付きプラットフォームスレッド実行を使います。Java 25+ では quarkus.r2d1.jdbc.execution-mode=virtual-thread を明示できます。名前付き executor と明示的な実行モードは同時に設定できません。コレクション schema は遅延初期化されます。

ネイティブイメージ検証

Filesystem/H2 CRUD とインデックスクエリは JVM、パッケージ JVM、GraalVM CE 25.0.2 / macOS arm64 のネイティブプロセスで成功しました。文書型の reflection を明示的に登録してください。Smoke アプリには native checksum 型のため AWS CRT 0.48.4 が含まれます。Linux CI、実際の Cloudflare 呼び出し、R2/D1 native transport、ローカル adapter ソース hot reload は未検証です。