第2章 エクステンションの参照情報
この章では、Quarkus の Camel エクステンションに関するリファレンス情報を提供します。
このテクノロジープレビューリリースには、利用可能な Camel Quarkus エクステンションのターゲットサブセットが含まれています。将来のリリースでは、Quarkus の Camel エクステンションに追加のエクステンションが追加される予定です。
2.1. Avro
Apache Avro バイナリーデータフォーマットを使用して、メッセージをシリアライズおよびデシリアライズします。
2.1.1. 含まれるもの
使用方法と設定の詳細については、上記リンクを参照してください。
2.1.2. Maven コーディネート
code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成
または、既存のプロジェクトに座標を追加します。
<dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-avro</artifactId> </dependency>
2.1.3. 追加の Camel Quarkus 設定
vanilla Camel から知られている標準的な使用方法以外に、Camel Quarkus では、JVM と Native モードの両方でビルド時に Avro スキーマを解析する機能が追加されています。
Camel Quarkus 2.0.0 以降、Avro スキーマファイルから Avro クラスを生成するための推奨されるアプローチは、quarkus-avro
エクステンションによって作成されたものです。以下が必要です。
-
*.avsc
ファイルをsrc/main/avro
またはsrc/test/avro
という名前のフォルダーに保存します quarkus-maven-plugin
の通常のビルド
目標に加えて、generate-code
目標を追加します。<plugin> <groupId>${quarkus.platform.group-id}</groupId> <artifactId>quarkus-maven-plugin</artifactId> <executions> <execution> <id>generate-code-and-build</id> <goals> <goal>generate-code</goal> <goal>build</goal> </goals> </execution> </executions> </plugin>
Camel Quarkus Avro 統合テストおよびQuarkus Avro 統合テスト の動作設定を参照してください。
2.1.3.1. 非推奨: @BuildTimeAvroDataFormat
アノテーション。
Camel Quarkus 2.0.0 より前は、@BuildTimeAvroDataFormat
アノテーションが、Avro スキーマファイルから Avro エンティティーを生成する推奨される方法でした。
以下の例では、user.avsc
スキーマリソースが最初にビルド時に解析されます。次に、以前に解析されたスキーマを使用する AvroDataFormat
インスタンスが、実行時に buildTimeAvroDataFormat
フィールドに挿入されます。最終的に、受信メッセージをマーシャリングするために、注入されたデータフォーマットを configure()
メソッドから使用します。
import org.apache.camel.quarkus.component.avro.BuildTimeAvroDataFormat; ... @BuildTimeAvroDataFormat("user.avsc") AvroDataFormat buildTimeAvroDataFormat; @Override public void configure() { from("direct:marshalUsingBuildTimeAvroDataFormat").marshal(buildTimeAvroDataFormat); }
Camel Quarkus 2.0.0 以降、@BuildTimeAvroDataFormat は非推奨になりました。quarkus-avro からのビルド時間クラス生成アプローチが推奨されます。そのため、ビルド時に quarkus-avro によって @AvroGenerated クラスが作成されるように、*.avsc ファイルを avro という名前のフォルダーに保存することが推奨されます。
Camel Quarkus Avro 統合テストで動作している実行設定を参照してください。ここ には、quarkus-avro 統合テストもあります。