Quarkus の Camel エクステンションリファレンス


Red Hat Integration 2022.q4

RedHat が提供する Quarkus の Camel エクステンション

Integration Documentation Team Integration Support Team http://access.redhat.com/support

概要

Quarkus の Camel エクステンションは、多くの Camel コンポーネントに Quarkus エクステンションを提供します。このリファレンスでは、RedHat でサポートされている各エクステンションの設定について説明します。

はじめに

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。

第1章 エクステンションの概要

1.1. サポートレベルの定義

新たな機能、サービス、およびコンポーネントは、実稼働環境での使用の完全サポートとして Quarkus の Camel エクステンションに含まれるまでに、さまざまなサポートレベルを経ます。これは、オファリングに期待されるエンタープライズグレードの安定性と、お客様やパートナーが新しい Quarkus の Camel エクステンションテクノロジーを試し、今後の開発アクティビティーに役立つフィードバックを提供できるようにすること、の間で適切なバランスを取れるようにするためです。

Expand
表1.1 Quarkus の Camel エクステンションのサポートレベル
タイプ説明

コミュニティーサポート

Red Hat のアップストリームファーストのコミットの一環として、新しいエクステンションの Quarkus の Camel エクステンションディストリビューションへのインテグレーションは、アップストリームコミュニティーから開始します。これらのエクステンションはアップストリームでテストされ、文書化されていますが、弊社はこれらのエクステンションの成熟度を確認しておらず、今後の製品リリースで Red Hat によって正式にサポートされない可能性があります。

注記

コミュニティーエクステンションは、Camel Quarkus コミュニティープロジェクトのエクステンションリファレンスページにリストされています。

テクノロジープレビュー

テクノロジープレビューの機能は、最新の技術をいち早く提供して、開発段階で機能のテストやフィードバックの収集を可能にするために提供されます。ただし、これらの機能は Red Hat サブスクリプションレベルアグリーメントでは完全にサポートされておらず、機能的に完全でない可能性があり、実稼働環境での使用を目的としていません。Red Hat ではテクノロジープレビュー機能を今後も繰り返し使用することで一般提供に移行できると考えていることから、お客様がこの機能を使用する際に発生する問題の解決に取り組みます。

製品サポート

製品サポートのエクステンションは、Red Hat の公式リリースに含まれており、完全にサポートされます。ドキュメントにギャップはなく、エクステンションはサポートされるすべての設定でテストされます。

1.2. サポートされるエクステンション

52 のエクステンションがあります。

Expand
表1.2 Quarkus の Camel エクステンションのサポートマトリックス
エクステンションアーティファクトJVM サポートレベルネイティブサポートレベル説明

添付ファイル

camel-quarkus-attachments

製品サポート

製品サポート

Camel メッセージでの添付のサポート。

AWS 2 DynamoDB

camel-quarkus-aws2-ddb

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して、AWS DynamoDB サービスからデータを保存および取得したり、AWS DynamoDB Stream からメッセージを受信したりします。

AWS 2 Kinesis

camel-quarkus-aws2-kinesis

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して、AWS Kinesis Streams からレコードを消費および作成します。

AWS 2 Lambda

camel-quarkus-aws2-lambda

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して、AWS Lambda 関数を管理および呼び出します。

AWS 2 S3 Storage Service

camel-quarkus-aws2-s3

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して、AWS S3 Storage Service からオブジェクトを保存および取得します。

AWS 2 Simple Notification System (SNS)

camel-quarkus-aws2-sns

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して AWS Simple Notification Topic にメッセージを送信します。

AWS 2 Simple Queue Service (SQS)

camel-quarkus-aws2-sqs

製品サポート

製品サポート

AWS SDK バージョン 2.x を使用して AWS SQS サービスを送信先および送信元としてメッセージを送受信します。

Azure Storage Blob

camel-quarkus-azure-storage-blob

テクノロジープレビュー

テクノロジープレビュー

SDK v12 を使用して Azure Storage Blob Service からブロブを保存および取得します。

Azure Storage Queue

camel-quarkus-azure-storage-queue

テクノロジープレビュー

テクノロジープレビュー

azure-storage-queue コンポーネントは、Azure SDK v12 を使用して Azure Storage Queue への/からのメッセージを保存および取得するために使用されます。

Bean

camel-quarkus-bean

製品サポート

製品サポート

Java Bean のメソッドを呼び出します。

Bean バリデーター

camel-quarkus-bean-validator

製品サポート

製品サポート

Java Bean Validation API を使用してメッセージボディーを検証します。

Cassandra CQL

camel-quarkus-cassandraql

製品サポート

製品サポート

CQL3 API (Thrift API 以外) を使用して Cassandra 2.0 と統合します。DataStax が提供する Cassandra Java Driver をベースにしています。

コア

camel-quarkus-core

製品サポート

製品サポート

Camel コア機能と基本的な Camel 言語: Constant、ExchangeProperty、Header、Ref、Ref、Simple および Tokeinze

Cron

camel-quarkus-cron

製品サポート

製品サポート

Unix cron 構文で指定されたタイミングでイベントをトリガーする汎用インターフェイス。

Dataformat

camel-quarkus-dataformat

製品サポート

製品サポート

Camel Data Format を通常の Camel コンポーネントとして使用します。

Direct

camel-quarkus-direct

製品サポート

製品サポート

同じ Camel コンテキストから別のエンドポイントを同期的に呼び出します。

FHIR

camel-quarkus-fhir

製品サポート

製品サポート

FHIR (Fast Healthcare Interoperability Resources) 規格を使用して、ヘルスケアドメインの情報を交換します。

ファイル

camel-quarkus-file

製品サポート

製品サポート

ファイルの読み取りと書き込みをします。

FTP

camel-quarkus-ftp

製品サポート

製品サポート

FTP または SFTP サーバーとの間で、ファイルをアップロードおよびダウンロードします。

Google BigQuery

camel-quarkus-google-bigquery

製品サポート

製品サポート

分析用の Google BigQuery データウェアハウス。

Google Pubsub

camel-quarkus-google-pubsub

製品サポート

製品サポート

Google Cloud Platform PubSub サービスとの間でメッセージを送受信します。

HTTP

camel-quarkus-http

製品サポート

製品サポート

Apache HTTP Client 4.x を使用して、外部の HTTP サーバーにリクエストを送信します。

Infinispan

camel-quarkus-infinispan

製品サポート

製品サポート

Infinispan の分散キー/値のストアとデータグリッドの読み取りと書き込みを行います。

Jira

camel-quarkus-jira

製品サポート

製品サポート

JIRA 問題トラッカーと対話します。

JMS

camel-quarkus-jms

製品サポート

製品サポート

JMS Queue または Topic との間でメッセージを送受信します。

JTA

camel-quarkus-jta

製品サポート

製品サポート

Java Transaction API (JTA) および Narayana トランザクションマネージャーを使用して、Camel ルートをトランザクションに含めます。

Kafka

camel-quarkus-kafka

製品サポート

製品サポート

Apache Kafka ブローカーとの間でメッセージを送受信します。

Kamelet

camel-quarkus-kamelet

製品サポート

製品サポート

Kamelet コンポーネントは、Camel Route Template エンジンとの対話をサポートします。

Log

camel-quarkus-log

製品サポート

製品サポート

基礎となるロギングメカニズムにメッセージをログとして記録します。

mail

camel-quarkus-mail

製品サポート

製品サポート

imap、pop3、および smtp プロトコルを使用してメールを送受信します。

MicroProfile Fault Tolerance

camel-quarkus-microprofile-fault-tolerance

製品サポート

製品サポート

MicroProfile Fault Tolerance を使用した Circuit Breaker EIP。

MicroProfile Health

camel-quarkus-microprofile-health

製品サポート

製品サポート

Eclipse MicroProfile Health と Camel ヘルスチェックをブリッジングします。

MicroProfile Metrics

camel-quarkus-microprofile-metrics

製品サポート

製品サポート

Camel ルートからメトリクスを公開します。

MLLP

camel-quarkus-mllp

製品サポート

製品サポート

MLLP プロトコルを使用して外部システムと通信します。

Mock

camel-quarkus-mock

製品サポート

製品サポート

モックを使用してルートおよび仲介ルールをテストします。

MongoDB

camel-quarkus-mongodb

テクノロジープレビュー

テクノロジープレビュー

MongoDB ドキュメントおよびコレクションの操作を実行します。

Netty

camel-quarkus-netty

製品サポート

製品サポート

Netty 4.x で TCP または UDP を使用するソケットレベルのネットワーク。

OpenAPI Java

camel-quarkus-openapi-java

製品サポート

製品サポート

OpenAPI ドキュメントを使用するための REST-dsl サポート

Paho

camel-quarkus-paho

製品サポート

製品サポート

Eclipse Paho MQTT クライアントを使用して MQTT メッセージブローカーと通信します。

Paho MQTT 5

camel-quarkus-paho-mqtt5

製品サポート

製品サポート

Eclipse Paho MQTT v5 クライアントを使用して MQTT メッセージブローカーと通信します。

Platform HTTP

camel-quarkus-platform-http

製品サポート

製品サポート

現在のプラットフォームで利用可能な HTTP サーバーを使用して HTTP エンドポイントを公開します。

Quartz

camel-quarkus-quartz

製品サポート

製品サポート

Quartz 2.x スケジューラーを使用してメッセージの送信をスケジュールします。

Rest

camel-quarkus-rest

製品サポート

製品サポート

REST サービスおよび OpenAPI Specification を公開するか、外部の REST サービスを呼び出します。

Salesforce

camel-quarkus-salesforce

製品サポート

製品サポート

Java DTO を使用して Salesforce と通信します。

SEDA

camel-quarkus-seda

製品サポート

製品サポート

同じ JVM の Camel コンテキストから別のエンドポイントを非同期に呼び出します。

Slack

camel-quarkus-slack

製品サポート

製品サポート

Slack との間でメッセージを送受信します。

SQL

camel-quarkus-sql

製品サポート

製品サポート

Spring JDBC を使用して SQL クエリーを実行します。

Telegram

camel-quarkus-telegram

テクノロジープレビュー

テクノロジープレビュー

Telegram Bot API として動作するメッセージを送受信します。

Timer

camel-quarkus-timer

製品サポート

製品サポート

java.util.Timer を使用して指定した間隔でメッセージを生成します。

XQuery

camel-quarkus-saxon

製品サポート

製品サポート

XQuery および Saxon を使用して XML ペイロードをクエリーまたは変換します。

Zip ファイル

camel-quarkus-zipfile

製品サポート

製品サポート

java.util.Timer を使用して指定した間隔でメッセージを生成します。

1.3. サポートされるデータフォーマット

データフォーマットは 9 個あります。

Expand
表1.3 Quarkus の Camel エクステンションのサポートマトリックス
エクステンションアーティファクトJVM サポートレベルネイティブサポートレベル説明

Avro

camel-quarkus-avro

製品サポート

製品サポート

Apache Avro バイナリーデータフォーマットを使用して、メッセージをシリアライズおよびデシリアライズします。

Avro Jackson

camel-quarkus-jackson-avro

製品サポート

製品サポート

Jackson を使用して、POJO を Avro にマーシャリングし、戻します。

Bindy

camel-quarkus-bindy

製品サポート

製品サポート

Camel Bindy Marshal を使用して POJO とコンマ区切り値 (CSV) フォーマットの間をマーシャリングおよびアンマーシャリングし、Camel Bindy Marshal を使用して POJO と固定フィールド長フォーマットの間をアンマーシャリングし、Camel Bindy を使用して POJO とキー/値ペア (KVP) フォーマットの間をアンマーシャリングします。

HL7

camel-quarkus-hl7

製品サポート

製品サポート

HL7 MLLP コーデックを使用して、HL7 (Health Care) モデルオブジェクトをマーシャリングおよびアンマーシャリングします。

Jackson

camel-quarkus-jackson

製品サポート

製品サポート

Jackson を使用して、POJO を JSON にマーシャリングし、戻します。

JacksonXML

camel-quarkus-jacksonxml

製品サポート

製品サポート

Jackson の XMLMapper エクステンションを使用して、XML ペイロードを POJO にアンマーシャリングし、戻します。

JAXB

camel-quarkus-jaxb

製品サポート

製品サポート

XML ペイロードを POJO にアンマーシャリングし、JAXB2 XML マーシャリング標準を使用して戻します。

JSON Gson

camel-quarkus-gson

製品サポート

製品サポート

Gson を使用して POJO を JSON にマーシャリングし、戻します。

Protobuf Jackson

camel-quarkus-jackson-protobuf

製品サポート

製品サポート

Jackson を使用して、POJO を Protobuf にマーシャリングし、戻します。

SOAP dataformat

camel-quarkus-soap

製品サポート

製品サポート

Java オブジェクトを SOAP メッセージにマーシャリングし、戻します。

1.4. サポートされる言語

12 つの言語があります。

Expand
表1.4 Quarkus の Camel エクステンションのサポートマトリックス
エクステンションアーティファクトJVM サポートレベルネイティブサポートレベル説明

Bean メソッド

camel-quarkus-bean

製品サポート

製品サポート

Java Bean のメソッドを呼び出します。

定数

camel-quarkus-core

製品サポート

製品サポート

固定の値は、ルートの起動時に一度だけ設定されます。

ExchangeProperty

camel-quarkus-core

製品サポート

製品サポート

指定された Camel Exchange プロパティーの値を取得します。

ファイル

camel-quarkus-core

製品サポート

製品サポート

File/simple 言語を使用した式および述語の場合。

Header

camel-quarkus-core

製品サポート

製品サポート

指定された Camel Message ヘッダーの値を取得します。

HL7 Terser

camel-quarkus-hl7

製品サポート

製品サポート

HL7 MLLP コーデックを使用して、HL7 (Health Care) モデルオブジェクトをマーシャリングおよびアンマーシャリングします。

JSON Path

camel-quarkus-jsonpath

製品サポート

製品サポート

JSON メッセージのボディーに対して、JsonPath 式を評価します。

Ref

camel-quarkus-core

製品サポート

製品サポート

Camel Registry の式を検索して評価します。

Simple

camel-quarkus-core

製品サポート

製品サポート

Camel Exchange に対して、Camel の組み込み Simple 言語式を評価します。

Tokenize

camel-quarkus-core

製品サポート

製品サポート

指定の区切り文字パターンを使用して、テキストペイロードをトークン化します。

XPath

camel-quarkus-xpath

製品サポート

製品サポート

XML ペイロードに対して XPath 式を評価します。

XQuery

camel-quarkus-saxon

製品サポート

製品サポート

XQuery および Saxon を使用して XML ペイロードをクエリーまたは変換します。

1.5. その他の拡張機能

その他の拡張機能が 1 つあります。

Expand
表1.5 Quarkus の Camel エクステンションのサポートマトリックス
エクステンションアーティファクトJVM サポートレベルネイティブサポートレベル説明

OpenTelemetry

camel-quarkus-opentelemetry

テクノロジープレビュー

テクノロジープレビュー

OpenTelemetry を使用した分散トレース

第2章 エクステンションの参照情報

この章では、Quarkus の Camel エクステンションに関するリファレンス情報を提供します。

2.1. 添付ファイル

Camel メッセージでの添付のサポート

2.1.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.1.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-attachments</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.2. Avro

Apache Avro バイナリーデータフォーマットを使用して、メッセージをシリアライズおよびデシリアライズします。

2.2.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.2.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-avro</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.2.3. 追加の Camel Quarkus 設定

vanilla Camel から知られている標準的な使用方法以外に、Camel Quarkus では、JVM と Native モードの両方でビルド時に Avro スキーマを解析する機能が追加されています。

Avro スキーマファイルから Avro クラスを生成するアプローチは、quarkus-avro エクステンションによって作成されたものです。以下が必要です。

  1. *.avsc ファイルを src/main/avro または src/test/avro という名前のフォルダーに保存します
  2. quarkus-maven-plugin の通常の ビルド 目標に加えて、generate-code 目標を追加します。

    <plugin>
        <groupId>io.quarkus</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>
    Copy to Clipboard Toggle word wrap

Camel Quarkus Avro 統合テスト および Quarkus Avro 統合テスト の動作設定を参照してください。

2.3. Avro Jackson

Jackson を使用して、POJO を Avro にマーシャリングし、戻します。

2.3.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.3.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson-avro</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.4. AWS 2 DynamoDB

AWS SDK バージョン 2.x を使用して、AWS DynamoDB サービスからデータを保存および取得したり、AWS DynamoDB Stream からメッセージを受信したりします。

2.4.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.4.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-ddb</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.4.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.4.4. 追加の Camel Quarkus 設定

2.4.4.1. Quarkus Amazon DynamoDB とのオプションの統合

必要に応じて、Quarkus Amazon DynamoDB エクステンションを Camel Quarkus AWS 2 DynamoDB と組み合わせて使用することができます。これは完全に任意であり、必須ではないことに注意してください。Quarkus のドキュメント に従ってください。ただし、次の注意事項に注意してください。

  1. クライアントタイプ apache は、次のプロパティーを設定して選択する必要があります。

    quarkus.dynamodb.sync-client.type=apache
    Copy to Clipboard Toggle word wrap
  2. DynamoDbClient は、Camel Quarkus が実行時に検索できるように、Quarkus CDI 参照 の意味で削除不可である必要があります。たとえば、DynamoDbClient を注入するダミー Bean を追加することで、これに到達できます。

    import javax.enterprise.context.ApplicationScoped;
    import io.quarkus.arc.Unremovable;
    import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
    
    @ApplicationScoped
    @Unremovable
    class UnremovableDynamoDbClient {
        @Inject
        DynamoDbClient dynamoDbClient;
    }
    Copy to Clipboard Toggle word wrap

2.5. AWS 2 Kinesis

AWS SDK バージョン 2.x を使用して、AWS Kinesis Streams からレコードを消費および作成します。

2.5.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.5.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-kinesis</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.5.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.6. AWS 2 Lambda

AWS SDK バージョン 2.x を使用して、AWS Lambda 関数を管理および呼び出します。

2.6.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.6.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-lambda</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.6.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.6.4. 追加の Camel Quarkus 設定

quarkus-amazon-lambda エクステンションを使用すると、Quarkus を使用して AWS Lambda をビルドできますが、Camel コンポーネントは既存の関数を管理 (デプロイ、アンデプロイなど) します。したがって、quarkus-amazon-lambdaaws2-lambda エクステンションのクライアントとして使用することはできません。

2.7. AWS 2 S3 Storage Service

AWS SDK バージョン 2.x を使用して、AWS S3 Storage Service からオブジェクトを保存および取得します。

2.7.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.7.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.7.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.7.4. 追加の Camel Quarkus 設定

2.7.4.1. Quarkus Amazon S3 とのオプションの統合

必要に応じて、Quarkus Amazon S3 エクステンションを Camel Quarkus AWS 2 S3 Storage Service と組み合わせて使用することができます。これは完全に任意であり、必須ではないことに注意してください。Quarkus のドキュメント に従ってください。ただし、次の注意事項に注意してください。

  1. クライアントタイプ apache は、次のプロパティーを設定して選択する必要があります。

    quarkus.s3.sync-client.type=apache
    Copy to Clipboard Toggle word wrap
  2. S3Client は、Camel Quarkus が実行時に検索できるように、Quarkus CDI 参照 の意味で削除不可にする必要があります。たとえば、S3Client を注入するダミー Bean を追加することで、これに到達できます。

    import javax.enterprise.context.ApplicationScoped;
    import io.quarkus.arc.Unremovable;
    import software.amazon.awssdk.services.s3.S3Client;
    
    @ApplicationScoped
    @Unremovable
    class UnremovableS3Client {
        @Inject
        S3Client s3Client;
    }
    Copy to Clipboard Toggle word wrap

2.8. AWS 2 Simple Notification System (SNS)

AWS SDK バージョン 2.x を使用して AWS Simple Notification Topic にメッセージを送信します。

2.8.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.8.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sns</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.8.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.8.4. 追加の Camel Quarkus 設定

2.8.4.1. Quarkus Amazon SNS とのオプションの統合

必要に応じて、Quarkus Amazon SNS エクステンションを Camel Quarkus AWS 2 Simple Notification System (SNS) と組み合わせて使用することができます。これは完全に任意であり、必須ではないことに注意してください。Quarkus のドキュメント に従ってください。ただし、次の注意事項に注意してください。

  1. クライアントタイプ apache は、次のプロパティーを設定して選択する必要があります。

    quarkus.sns.sync-client.type=apache
    Copy to Clipboard Toggle word wrap
  2. SnsClient は、Camel Quarkus が実行時に検索できるように、Quarkus CDI 参照 の意味で削除不可にする必要があります。たとえば、SnsClient を注入するダミー Bean を追加することで、これに到達できます。

    import javax.enterprise.context.ApplicationScoped;
    import io.quarkus.arc.Unremovable;
    import software.amazon.awssdk.services.sns.SnsClient;
    
    @ApplicationScoped
    @Unremovable
    class UnremovableSnsClient {
        @Inject
        SnsClient snsClient;
    }
    Copy to Clipboard Toggle word wrap

2.9. AWS 2 Simple Queue Service (SQS)

AWS SDK バージョン 2.x を使用して AWS SQS サービスを送信先および送信元としてメッセージを送受信します。

2.9.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.9.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-sqs</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.9.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.9.4. 追加の Camel Quarkus 設定

2.9.4.1. Quarkus Amazon SQS とのオプションの統合

必要に応じて、Quarkus Amazon SQS エクステンションを Camel Quarkus AWS 2 Simple Queue Service (SQS) と組み合わせて使用することができます。これは完全に任意であり、必須ではないことに注意してください。Quarkus のドキュメント に従ってください。ただし、次の注意事項に注意してください。

  1. クライアントタイプ apache は、次のプロパティーを設定して選択する必要があります。

    quarkus.sqs.sync-client.type=apache
    Copy to Clipboard Toggle word wrap
  2. SqsClient は、Camel Quarkus が実行時に検索できるように、Quarkus CDI 参照 の意味で削除不可にする必要があります。たとえば、SqsClient を注入するダミー Bean を追加することで、これに到達できます。

    import javax.enterprise.context.ApplicationScoped;
    import io.quarkus.arc.Unremovable;
    import software.amazon.awssdk.services.sqs.SqsClient;
    
    @ApplicationScoped
    @Unremovable
    class UnremovableSqsClient {
        @Inject
        SqsClient sqsClient;
    }
    Copy to Clipboard Toggle word wrap

2.10. Azure Storage Blob Service

SDK v12 を使用して Azure Storage Blob Service からブロブを保存および取得します。

2.10.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.10.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-azure-storage-blob</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.10.3. 用途

2.10.3.1. Micrometer メトリクスのサポート

Reactor Netty トランスポートの Micrometer メトリクスのコレクションを有効にする場合は、quarkus-micrometer の依存関係を宣言して、Quarkus メトリクス HTTP エンドポイント経由で利用できるようにします。

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-micrometer</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.10.4. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.11. Azure ストレージキューサービス

azure-storage-queue コンポーネントは、Azure SDK v12 を使用して Azure Storage Queue への/からのメッセージを保存および取得するために使用されます。

2.11.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.11.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-azure-storage-queue</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.11.3. 用途

2.11.3.1. Micrometer メトリクスのサポート

Reactor Netty トランスポートの Micrometer メトリクスのコレクションを有効にする場合は、quarkus-micrometer の依存関係を宣言して、Quarkus メトリクス HTTP エンドポイント経由で利用できるようにします。

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-micrometer</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.11.4. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.12. Bean バリデーター

Java Bean Validation API を使用してメッセージボディーを検証します。

2.12.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.12.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-bean-validator</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.12.3. 用途

2.12.3.1. ValidatorFactory の設定

このエクステンションの実装は、Quarkus Hibernate Validator エクステンション を利用します。

そのため、Camel のプロパティー (constraintValidatorFactorymessageInterpolatortraversableResolvervalidationProviderResolvervalidatorFactory) によって ValidatorFactory を設定することはできません。

デフォルトの ValidatorFactory (Quarkus によって作成される) に注入される Bean を作成して ValidatorFactory を設定できます。詳細は、Quarkus CDI のドキュメント を参照してください。

2.12.3.2. ネイティブモードでのカスタム検証グループ

ネイティブモードでカスタム検証グループを使用する場合は、反映するためにすべてのインターフェイスを登録する必要があります (ドキュメント を参照)。

例:

@RegisterForReflection
public interface OptionalChecks {
}
Copy to Clipboard Toggle word wrap

2.12.4. Camel Quarkus の制限

(META-INF/validation.xml ファイルを指定して) XML として制約を記述することはできません。サポートされているのは Java アノテーションのみです。これは、Quarkus Hibernate Validator エクステンションの制限によって生じます (issue を参照)。

2.13. Bean

Java Bean のメソッドを呼び出します。

2.13.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.13.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-bean</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.13.3. 用途

Camel レジストリーで使用できる Bean のメソッドを呼び出す場合を除き、Bean コンポーネントおよび Bean メソッド言語は、Quarkus CDI Bean を呼び出することもできます。

2.14. Bindy

Camel Bindy を使用して、片側の POJO と、反対側のコンマ区切り値 (CSV)、固定フィールド長、またはキーと値のペア (KVP) 形式の間のマーシャリングとアンマーシャル

2.14.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.14.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-bindy</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.14.3. Camel Quarkus の制限

ネイティブモードで camel-quarkus-bindy を使用する場合は、ビルドマシンのロケールのみがサポートされます。

たとえば、ロケールが french のビルドマシンの場合、以下のコード

BindyDataFormat dataFormat = new BindyDataFormat();
dataFormat.setLocale("ar");
Copy to Clipboard Toggle word wrap

は、JVM モードでは期待どおりに数値をアラビア数字にフォーマットします。ただし、ネイティブモードでは数値をフランス語的にフォーマットします。

さらに調整しないと、ビルドマシンのデフォルトロケールが使用されます。別のロケールは、quarkus.native.user-language および quarkus.native.user-country 設定プロパティーで指定できます。

2.15. Browse

BrowsableEndpoint をサポートするエンドポイントで受信したメッセージを調べます。

2.15.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.15.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-browse</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.16. Cassandra CQL

CQL3 API (Thrift API 以外) を使用して Cassandra 2.0 と統合します。DataStax が提供する Cassandra Java Driver をベースにしています。

2.16.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.16.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-cassandraql</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.16.3. 追加の Camel Quarkus 設定

2.16.3.1. ネイティブモードでの Cassandra 集約リポジトリー

ネイティブモードで CassandraAggregationRepository などの Cassandra 集約リポジトリーを使用するには、ネイティブシリアライズのサポートを有効化 する必要があります。

さらに、エクスチェンジボディがカスタムタイプである場合、クラス宣言に @RegisterForReflection(serialization = true) のアノテーションを付けてシリアライズ用に登録する必要があります。

2.17. コントロールバス

Camel ルートを管理および監視します。

2.17.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.17.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-controlbus</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.17.3. 用途

2.17.3.1. 言語

次の言語は、Camel Extensions for Quarkus の Control Bus 拡張機能での使用がサポートされています。

2.17.3.1.1. Bean

Bean 言語を使用して、Bean でメソッドを呼び出し、ルートの状態を制御できます。org.apache.camel.quarkus:camel-quarkus-bean エクステンションをクラスパスに追加する必要があります。Maven ユーザーは、次の依存関係を POM に追加する必要があります。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-bean</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

ネイティブモードでは、Bean クラスに @RegisterForReflection のアノテーションを付ける必要があります。

2.17.3.1.2. Simple

Simple 言語を使用して、ルートの状態を制御できます。次の例では、ProducerTemplate を使用して、id foo のルートを停止します。

template.sendBody(
    "controlbus:language:simple",
    "${camelContext.getRouteController().stopRoute('foo')}"
);
Copy to Clipboard Toggle word wrap

OGNL 表記を使用するには、依存関係として org.apache.camel.quarkus:camel-quarkus-bean エクステンションを追加する必要があります。

ネイティブモードでは、OGNL 表記で使用されるクラスをリフレクション用に登録する必要があります。上記のコードスニペットでは、camelContext.getRouteController() から返される org.apache.camel.spi.RouteController クラスを登録する必要があります。これはサードパーティークラスであるため、@RegisterForReflection で直接アノテーションを付けることはできません。代わりに、別のクラスにアノテーションを付けて、登録するターゲットクラスを指定することができます。たとえば、Camel ルートを定義するクラスは、@RegisterForReflection(targets = { org.apache.camel.spi.RouteController.class }) でアノテーションを付けることができます。

または、次の行を src/main/resources/application.properties に追加します。

quarkus.camel.native.reflection.include-patterns = org.apache.camel.spi.RouteController
Copy to Clipboard Toggle word wrap

2.17.4. Camel Quarkus の制限

2.17.4.1. 統計

この機能は、Quarkus の Camel エクステンションではサポートされていません。

2.18. コア

Camel コア機能と基本的な Camel 言語/Constant、ExchangeProperty、Header、Ref、Simple および Tokeinze

2.18.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.18.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-core</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.18.3. 追加の Camel Quarkus 設定

2.18.3.1. Simple 言語
2.18.3.1.1. OGNL 表記の使用

Simple 言語から OGNL 表記を使用する場合は、camel-quarkus-bean エクステンションを使用する必要があります。

たとえば、以下の簡易式は、Client 型のメッセージボディーの getAddress() メソッドにアクセスします。

---
simple("${body.address}")
---
Copy to Clipboard Toggle word wrap

このような場合、ここで説明される ように、camel-quarkus-bean エクステンションで追加の依存関係を取る必要があります。ネイティブモードでは、反映するためにいくつかのクラスを登録する必要がある場合があります。上記の例では、Client クラスを 反映するために登録する 必要があります。

2.18.3.1.2. ネイティブモードでの動的型解決の使用

次のような単純な式から型を動的に解決する場合:

  • simple("${mandatoryBodyAs(TYPE)}")
  • simple("${type:package.Enum.CONSTANT}")
  • from("…​").split(bodyAs(TYPE.class))
  • simple("${body} is TYPE")

反映するため、一部のクラスを手動で登録する必要がある場合があります。

たとえば、以下の単純な式は、ランタイム時に java.nio.ByteBuffer 型を動的に解決します。

---
simple("${body} is 'java.nio.ByteBuffer'")
---
Copy to Clipboard Toggle word wrap

したがって、java.nio.ByteBuffer クラスを 反映するために登録する 必要があります。

2.18.3.1.3. ネイティブモードでのクラスパスリソースと Simple 言語の使用

次の例のように、ルートがクラスパスから Simple スクリプトをロードすることになっている場合

from("direct:start").transform().simple("resource:classpath:mysimple.txt");
Copy to Clipboard Toggle word wrap

次に、Quarkus quarkus.native.resources.includes プロパティーを使用して、以下に示すようにネイティブ実行可能ファイルにリソースを含める必要があります。

quarkus.native.resources.includes = mysimple.txt
Copy to Clipboard Toggle word wrap
2.18.3.1.4. ネイティブモードのプロパティーを介したカスタム Bean の設定

#class:*#type:* などの設定でネイティブモードのプロパティーを介してカスタム Bean を指定する場合は、リフレクション用にいくつかのクラスを手動で登録する必要がある場合があります。

たとえば、以下のカスタム Bean 定義には、Bean のインスタンス化とセッターの呼び出しにリフレクションを使用することが含まれます。

---
camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection
camel.beans.customBeanWithSetterInjection.counter = 123
---
Copy to Clipboard Toggle word wrap

そのため、クラス PropertiesCustomBeanWithSetterInjectionリフレクション用に登録 する必要があります。この場合は、フィールドアクセスを省略できることに注意してください。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.bootstrap.enabled

true に設定すると、CamelRuntime は自動的に起動します。

boolean

true

lock quarkus.camel.service.discovery.exclude-patterns

クラスパスの Camel サービス定義ファイルと一致する Ant-path フォーマットのパターンのコンマ区切りリスト。一致するファイルで定義されたサービスは、org.apache.camel.spi.FactoryFinder メカニズムで検出されません。除外は包含よりも優先されます。ここで定義された除外は、Camel Quarkus エクステンションで追加されたサービスの検出性を拒否するのにも使用できます。値の例: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.discovery.include-patterns

クラスパスの Camel サービス定義ファイルと一致する Ant-path フォーマットのパターンのコンマ区切りリスト。指定したファイルが exclude-patterns で除外されない限り、一致するファイルで定義されたサービスは、org.apache.camel.spi.FactoryFinder メカニズムで検出されます。Camel Quarkus エクステンションには、デフォルトで一部のサービスが含まれる可能性があることに注意してください。ここで選択されそれらのサービスに追加されたサービスおよび exclude-patterns で定義された除外は、ユニオンセットに適用されます。値の例: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.registry.exclude-patterns

クラスパスの Camel サービス定義ファイルと一致する Ant-path フォーマットのパターンのコンマ区切りリスト。一致するファイルで定義されたサービスは、アプリケーションの静的初期化中に Camel レジストリーに追加されません。除外は包含よりも優先されます。ここで定義された除外は、Camel Quarkus エクステンションで追加されたサービスの登録を拒否するのにも使用できます。値の例: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.service.registry.include-patterns

クラスパスの Camel サービス定義ファイルと一致する Ant-path フォーマットのパターンのコンマ区切りリスト。指定したファイルが exclude-patterns で除外されない限り、一致するファイルで定義されたサービスは、アプリケーションの静的初期化中に Camel レジストリーに追加されます。Camel Quarkus エクステンションには、デフォルトで一部のサービスが含まれる可能性があることに注意してください。ここで選択されそれらのサービスに追加されたサービスおよび exclude-patterns で定義された除外は、ユニオンセットに適用されます。値の例: META-INF/services/org/apache/camel/foo/*,META-INF/services/org/apache/camel/foo/**/bar

string

 

lock quarkus.camel.runtime-catalog.components

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel コンポーネントの JSON スキーマが含まれます。それ以外の場合は、コンポーネントの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

lock quarkus.camel.runtime-catalog.languages

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel 言語の JSON スキーマが含まれます。それ以外の場合は、言語の JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

lock quarkus.camel.runtime-catalog.dataformats

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel データフォーマットの JSON スキーマが含まれます。それ以外の場合は、データフォーマットの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

lock quarkus.camel.runtime-catalog-models

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel EIP モデルの JSON スキーマが含まれます。それ以外の場合は、EIP モデルの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

lock quarkus.camel.routes-discovery.enabled

静的な初期化時のルートの自動検出を有効にします。

boolean

true

lock quarkus.camel.routes-discovery.exclude-patterns

RouteBuilder クラスの除外フィルタースキャンに使用されます。除外フィルターリングは、包含フィルターよりも優先されます。パターンは Ant-path スタイルのパターンを使用しています。複数のパターンをコンマで区切って指定することができます。たとえば、Bar から始まるすべてのクラスを除外するには、**/Bar* を使用します。特定のパッケージからのすべてのルートを除外するには、com/mycompany/bar/* を使用します。特定のパッケージおよびそのサブパッケージからのすべてのルートを除外するには、2 つのワイルドカードを使用します (com/mycompany/bar/**)。特定の 2 つのパッケージからのすべてのルートを除外するには、com/mycompany/bar/*,com/mycompany/stuff/* を使用します。

string

 

lock quarkus.camel.routes-discovery.include-patterns

RouteBuilder クラスの包含フィルタースキャンに使用されます。除外フィルターリングは、包含フィルターよりも優先されます。パターンは Ant-path スタイルのパターンを使用しています。複数のパターンをコンマで区切って指定することができます。たとえば、Foo から始まるすべてのクラスを含めるには、**/Foo* を使用します。特定のパッケージからのすべてのルートを含めるには、com/mycompany/foo/* を使用します。特定のパッケージおよびそのサブパッケージからのすべてのルートを含めるには、2 つのワイルドカードを使用します (com/mycompany/foo/**)。特定の 2 つのパッケージからのすべてのルートを含めるには、com/mycompany/foo/*,com/mycompany/stuff/* を使用します。

string

 

lock quarkus.camel.native.resources.exclude-patterns

Camel Quarkus 2.0.0 では quarkus.native.resources.excludes に置き換えられました。このプロパティーを使用すると、ビルド時に例外が出力されます。

string

 

lock quarkus.camel.native.resources.include-patterns

Camel Quarkus 2.0.0 では、quarkus.native.resources.includes に置き換えられました。このプロパティーを使用すると、ビルド時に例外が出力されます。

string

 

lock quarkus.camel.native.reflection.exclude-patterns

反映のために登録から除外されるクラス名に一致する Ant-path フォーマットのパターンのコンマ区切りリスト。java.lang.Class.getName() メソッドによって返されるままのクラス名フォーマットを使用します。パッケージセグメントはピリオド . で区切られ、内部クラスはドル記号 $ で区切られます。このオプションは、include-patterns により選択されたセットを絞り込みます。デフォルトでは、クラスは除外されません。このオプションは、Quarkus エクステンションによって内部で登録されたクラスの登録解除には使用できません。

string

 

lock quarkus.camel.native.reflection.include-patterns

反映のために登録されるクラス名に一致する Ant-path フォーマットのパターンのコンマ区切りリスト。java.lang.Class.getName() メソッドによって返されるままのクラス名フォーマットを使用します。パッケージセグメントはピリオド . で区切られ、内部クラスはドル記号 $ で区切られます。デフォルトでは、クラスは含まれません。このオプションで選択されるセットは、exclude-patterns により絞り込むことができます。Quarkus エクステンションは通常、反映のために必要なクラスを登録することに注意してください。このオプションは、組み込みの機能では十分ではない場合に有用です。このオプションは、コンストラクター、フィールド、およびメソッドの完全な反映アクセスを有効にします。よりきめ細かい制御が必要な場合は、Java コードで io.quarkus.runtime.annotations.RegisterForReflection アノテーションを使用することを検討してください。このオプションが正しく機能するには、次の条件の少なくとも 1 つが満たされている必要があります。- パターンにワイルドカード (* または /) がない - 選択したクラスを含むアーティファクトに Jandex インデックス (META-INF/jandex.idx) が含まれている) - 選択したクラスを含むアーティファクトは、application.properties のオプションの quarkus.index-dependency.* ファミリーを使用してインデックスに登録されます - 例: quarkus.index-dependency.my-dep.group-id = org.my-group quarkus.index-dependency.my-dep.artifact-id = my-artifact ここで、my-dep は、org.my-groupmy-artifact が一緒に属していることを Quarkus に伝えるために選択したラベルです。

string

 

lock quarkus.camel.native.reflection.serialization-enabled

true の場合、基本クラスはシリアル化用に登録されます。そうしないと、基本クラスはネイティブモードでのシリアル化のために自動的に登録されません。シリアル化のために自動的に登録されたクラスのリストは、CamelSerializationProcessor.BASE_SERIALIZATION_CLASSES にあります。これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを true に設定することは実際の利点がありません。

boolean

false

lock quarkus.camel.csimple.on-build-time-analysis-failure

ビルド時にルート定義から CSimple 式を抽出できない場合の指示。

org.apache.camel.quarkus.core.CamelConfig.FailureRemedy

warn

lock quarkus.camel.event-bridge.enabled

Camel イベントから CDI イベントへのブリッジを有効にするかどうか。これにより、CDI オブザーバーを Camel イベント用に設定できます。たとえば、org.apache.camel.quarkus.core.eventsorg.apache.camel.quarkus.main.events、および org.apache.camel.impl.event パッケージに属するもの。この設定項目は、Camel イベント用に設定されたオブザーバーがアプリケーションに存在する場合にのみ効果があることに注意してください。

boolean

true

lock quarkus.camel.source-location-enabled

camel ソースの場所を有効/無効にするためのビルド時の設定オプション

boolean

false

lock quarkus.camel.main.shutdown.timeout

CamelMain#stop() が完了するまで待機するタイムアウト時間 (ミリ秒の精度)

java.time.Duration

PT3S

lock quarkus.camel.main.arguments.on-unknown

CamelMain が不明な引数に遭遇した際のアクション。fail: CamelMain の使用状況ステートメントを出力し、RuntimeException を出力します。ignore: 警告が解除し、アプリケーションは通常どおりに起動します。warn: CamelMain の使用状況ステートメントを出力しますが、アプリケーションが通常どおりに起動するのを許可します。

org.apache.camel.quarkus.core.CamelConfig.FailureRemedy

warn

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.19. Cron

Unix cron 構文で指定されたタイミングでイベントをトリガーする汎用インターフェイス。

2.19.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.19.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-cron</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.19.3. 追加の Camel Quarkus 設定

cron コンポーネントは汎用インターフェイスコンポーネントであるため、Camel Quarkus ユーザーは、実装を提供する別のエクステンションと一緒に cron エクステンションを使用する必要があります。

2.20. CXF

Apache CXF を使用して SOAP WebServices を公開するか、CXF WS クライアントを使用して外部 WebServices に接続します。

2.20.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.20.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-cxf-soap</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.21. データ形式

Camel Data Format を通常の Camel コンポーネントとして使用します。Camel Extensions for Quarkus でサポートされているデータ形式の詳細は、サポート対象のデータ形式 を参照してください。

2.21.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.21.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-dataformat</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.22. Dataset

Camel アプリケーションのロードおよびソークテスト用のデータを提供します。

2.22.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.22.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-dataset</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.23. Direct

同じ Camel コンテキストから別のエンドポイントを同期的に呼び出します。

2.23.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.23.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-direct</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.24. FHIR

FHIR (Fast Healthcare Interoperability Resources) 規格を使用して、ヘルスケアドメインの情報を交換します。JSON との間で FHIR オブジェクトをマーシャリングおよびアンマーシャリングします。XML との間で FHIR オブジェクトをマーシャリングおよびアンマーシャリングします。

2.24.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.24.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-fhir</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.24.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.24.4. 追加の Camel Quarkus 設定

デフォルトでは、FHIR コンポーネントと DataFormat のデフォルト値であるため、FHIR バージョン R4 および DSTU3 のみがネイティブモードで有効になっています。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.fhir.enable-dstu2

ネイティブモードで FHIR DSTU2 Specs を有効にします。

boolean

false

lock quarkus.camel.fhir.enable-dstu2_hl7org

ネイティブモードで FHIR DSTU2_HL7ORG Specs を有効にします。

boolean

false

lock quarkus.camel.fhir.enable-dstu2_1

ネイティブモードで FHIR DSTU2_1 Specs を有効にします。

boolean

false

lock quarkus.camel.fhir.enable-dstu3

ネイティブモードで FHIR DSTU3 Specs を有効にします。

boolean

false

lock quarkus.camel.fhir.enable-r4

ネイティブモードで FHIR R4 Specs を有効にします。

boolean

true

lock quarkus.camel.fhir.enable-r5

ネイティブモードで FHIR R5 Specs を有効にします。

boolean

false

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.25. ファイル

ファイルの読み取りと書き込みをします。

2.25.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.25.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-file</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.25.3. 追加の Camel Quarkus 設定

同じルートが複数の JVM にデプロイされている場合、このエクステンションを マスターのエクステンション と組み合わせて使用すると便利な場合があります。このようなセットアップでは、キャメルマスター namespace 全体で一度に 1 つのコンシューマーがアクティブになります。

たとえば、以下のルートを複数の JVM にデプロイするとします。

from("master:ns:timer:test?period=100").log("Timer invoked on a single JVM at a time");
Copy to Clipboard Toggle word wrap

以下のようなプロパティーを使用して、ファイルクラスターサービスを有効にすることができます。

quarkus.camel.cluster.file.enabled = true
quarkus.camel.cluster.file-root = target/cluster-folder-where-lock-file-will-be-held
Copy to Clipboard Toggle word wrap

その結果、1 つのコンシューマーが ns camel マスター namespace 全体でアクティブになります。これは、ある時点で、1 つのタイマーだけがすべての JVM 間でエクスチェンジを生成することを意味します。つまり、メッセージは一度に 1 つの JVM で 100 ミリ秒ごとにログに記録されます。

ファイルクラスターサービスは、quarkus.camel.cluster.file.* プロパティーを微調整できます。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.cluster.file.enabled

quarkus.camel.cluster.file.* 設定に従って、ファイルロッククラスターサービスを自動的に設定するかどうか。

boolean

false

lock quarkus.camel.cluster.file-id

クラスターサービス ID (デフォルトは null)。

string

 

lock quarkus.camel.cluster.file-root

ルートパス (デフォルトは null)。

string

 

lock quarkus.camel.cluster.file-order

サービス検索の順序/優先度 (デフォルトは 2147482647)。

java.lang.Integer

 

lock quarkus.camel.cluster.file.acquire-lock-delay

ロックの取得を開始するまでの待機時間 (デフォルトは 1000 ミリ秒)。

string

 

lock quarkus.camel.cluster.file.acquire-lock-interval

ロックの取得を試みるまでの待機時間 (デフォルトは 10000 ミリ秒)。

string

 

lock quarkus.camel.cluster.file.attributes

サービスに関連付けられたカスタム属性 (デフォルトは空のマップ)。

Map<String,String>

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.26. FTP

SFTP、FTP、または SFTP サーバーとの間でファイルをアップロードおよびダウンロードする

2.26.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.26.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ftp</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.27. Gson

Gson を使用して POJO を JSON にマーシャリングし、戻します。

2.27.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.27.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-gson</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.27.3. 追加の Camel Quarkus 設定

2.27.3.1. ネイティブモードでのオブジェクトのマーシャリング/アンマーシャリング

ネイティブモードでオブジェクトをマーシャリングまたはアンマーシャリングする場合、シリアライズされたクラスはすべて リフレクションのために登録 する必要があります。そのため、GsonDataFormat.setUnmarshalType(…​)GsonDataFormat.setUnmarshalTypeName(…​)、さらに GsonDataFormat.setUnmarshalGenericType(…​) を使用する場合は、アンマーシャリングタイプとサブフィールドタイプをリフレクション用に登録する必要があります。この インテグレーションテスト で実際の例を参照してください。

2.28. Google BigQuery

SQL クエリーまたは Google Client Services API を使用して Google Cloud BigQuery サービスにアクセスする

2.28.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.28.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-google-bigquery</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.28.3. 用途

ネイティブモードで google-bigquery-sql を使用してクラスパスから SQL スクリプトを読み取る場合は、それらが quarkus.native.resources.includes 設定プロパティーを介してネイティブイメージに追加されていることを確認する必要があります。詳細については、Quarkus のドキュメント を確認してください。

2.29. Google Pubsub

Google Cloud Platform PubSub サービスとの間でメッセージを送受信します。

2.29.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.29.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-google-pubsub</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.29.3. Camel Quarkus の制限

デフォルトでは、メッセージ本文が String または byte[] 以外の場合は常に、Camel PubSub コンポーネントは ObjectOutputStream を介して JDK オブジェクトのシリアル化を使用します。

このようなシリアル化は GraalVM ではまだサポートされていないため、このエクステンションはカスタムの Jackson ベースのシリアライザーを提供して、複雑なメッセージペイロードを JSON としてシリアル化します。

ペイロードにバイナリーデータが含まれている場合は、カスタムの Jackson シリアライザー/デシリアライザーを作成して処理する必要があります。これを行う方法については、Quarkus Jackson ガイド を参照してください。

2.30. HL7

HL7 MLLP コーデックを使用して、HL7 (Health Care) モデルオブジェクトをマーシャリングおよびアンマーシャリングします。

2.30.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.30.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-hl7</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.30.3. Camel Quarkus の制限

MLLP と TCP を使用する場合には、Netty が Hl7 MLLP リスナーを実行する唯一のサポートされる手段です。現在、GraalVM ネイティブサポートがないため、Mina はサポートされません。

HL7MLLPNettyEncoderFactory および HL7MLLPNettyDecoderFactory コーデックのオプションのサポートは、プロジェクト pom.xml の依存関係を camel-quarkus-netty に追加することで取得できます。

2.31. HTTP

Apache HTTP Client 4.x を使用して、外部の HTTP サーバーにリクエストを送信します。

2.31.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.31.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-http</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.31.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.31.4. 追加の Camel Quarkus 設定

  • アプリケーションがデフォルト以外のエンコーディングを使用してリクエストを送受信することが想定される場合は、ネイティブモードガイドの 文字エンコーディングのセクション を確認してください。

2.32. Infinispan

Infinispan の分散キー/値のストアとデータグリッドの読み取りと書き込みを行います。

2.32.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.32.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-infinispan</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.32.3. 追加の Camel Quarkus 設定

2.32.3.1. Infinispan クライアント設定

該当する Camel Infinispan コンポーネントおよびエンドポイントオプションで Infinispan クライアントを設定するか、Quarkus Infinispan エクステンション設定プロパティー を使用できます。

2.32.3.2. ネイティブモードの Camel Infinispan InfinispanRemoteAggregationRepository

InfinispanRemoteAggregationRepository をネイティブモードで使用することを選択した場合は、ネイティブシリアライゼーションサポートを有効 にする必要があります。

2.33. Jackson

Jackson を使用して、POJO を JSON にマーシャリングし、戻します。

2.33.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.33.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.33.3. 用途

2.33.3.1. Jackson ObjectMapper の設定

JacksonDataFormat が使用する ObjectMapper を設定するには、いくつかの方法があります。これらの概要を以下に示します。

2.33.3.1.1. JacksonDataFormat によって内部的に作成された ObjectMapper

デフォルトでは、JacksonDataFormat は独自の ObjectMapper を作成し、DataFormat のさまざまな設定オプションを使用して、追加の Jackson モジュール、きれいな印刷、およびその他の機能を設定します。

2.33.3.1.2. JacksonDataFormat のカスタム ObjectMapper

次のように、カスタム ObjectMapper インスタンスを JacksonDataFormat に渡すことができます。

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jackson.JacksonDataFormat;

public class Routes extends RouteBuilder {
    public void configure() {
        ObjectMapper mapper = new ObjectMapper();
        JacksonDataFormat dataFormat = new JacksonDataFormat();
        dataFormat.setObjectMapper(mapper);
        // Use the dataFormat instance in a route definition
        from("direct:my-direct").marshal(dataFormat)
    }
}
Copy to Clipboard Toggle word wrap
2.33.3.1.3. JacksonDataFormat での Quarkus Jackson ObjectMapper の使用

Quarkus Jackson エクステンションは、JacksonDataFormat によって検出できる ObjectMapper CDI Bean を公開します。

import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jackson.JacksonDataFormat;

public class Routes extends RouteBuilder {
    public void configure() {
        JacksonDataFormat dataFormat = new JacksonDataFormat();
        // Make JacksonDataFormat discover the Quarkus Jackson `ObjectMapper` from the Camel registry
        dataFormat.setAutoDiscoverObjectMapper(true);
        // Use the dataFormat instance in a route definition
        from("direct:my-direct").marshal(dataFormat)
    }
}
Copy to Clipboard Toggle word wrap

Camel REST DSL で JSON バインディングモードを使用していて、Quarkus Jackson ObjectMapper を使用したい場合は、次のように実現できます。

import org.apache.camel.builder.RouteBuilder;

@ApplicationScoped
public class Routes extends RouteBuilder {
    public void configure() {
        restConfiguration().dataFormatProperty("autoDiscoverObjectMapper", "true");
        // REST definition follows...
    }
}
Copy to Clipboard Toggle word wrap

ObjectMapperCustomizer を使用して、Quarkus ObjectMapper でカスタマイズを実行できます。

import com.fasterxml.jackson.databind.ObjectMapper;
import io.quarkus.jackson.ObjectMapperCustomizer;

@Singleton
public class RegisterCustomModuleCustomizer implements ObjectMapperCustomizer {
    public void customize(ObjectMapper mapper) {
        mapper.registerModule(new CustomModule());
    }
}
Copy to Clipboard Toggle word wrap

Quarkus ObjectMapper@Inject して、JacksonDataFormat に渡すこともできます。

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.jackson.JacksonDataFormat;

@ApplicationScoped
public class Routes extends RouteBuilder {
    @Inject
    ObjectMapper mapper;

    public void configure() {
        JacksonDataFormat dataFormat = new JacksonDataFormat();
        dataFormat.setObjectMapper(mapper);
        // Use the dataFormat instance in a route definition
        from("direct:my-direct").marshal(dataFormat)
    }
}
Copy to Clipboard Toggle word wrap

2.34. JacksonXML

Jackson の XMLMapper エクステンションを使用して、XML ペイロードを POJO にアンマーシャリングし、戻します。

2.34.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.34.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jacksonxml</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.35. JAXB

XML ペイロードを POJO にアンマーシャリングし、JAXB2 XML マーシャリング標準を使用して戻します。

2.35.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.35.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jaxb</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.35.3. 用途

2.35.3.1. 非 JAXB アノテーション付きクラスのネイティブモード ObjectFactory インスタンス化

JAXB アノテーションを持たない POJO クラスをインスタンス化するために、カスタム ObjectFactory で JAXB マーシャル操作を行う場合、それらの POJO クラスをネイティブモードでインスタンス化するために、リフレクションに登録する必要があります。たとえば、@RegisterForReflection アノテーションまたは設定プロパティー quarkus.camel.native.reflection.include-patterns を介した場合です。

詳細については、ネイティブモードのユーザーガイド を参照してください。

2.36. Jira

JIRA 問題トラッカーと対話します。

2.36.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.36.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jira</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.36.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.37. JMS

JMS Queue または Topic との間でメッセージを送受信します。

2.37.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.37.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jms</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.37.3. 用途

2.37.3.1. org.w3c.dom.Node を使用したメッセージマッピング

Camel JMS コンポーネントは、javax.jms.Message および org.apache.camel.Message 間のメッセージマッピングをサポートします。Camel メッセージ本文タイプ org.w3c.dom.Node を変換する場合は、camel-quarkus-jaxp エクステンションがクラスパスに存在することを確認する必要があります。

2.37.3.2. javax.jms.ObjectMessage のネイティブモードのサポート

JMS メッセージペイロードを javax.jms.ObjectMessage として送信する場合、シリアル化のために登録する関連クラスに @RegisterForReflection (serialization = true) でアノテーションを付ける必要があります。このエクステンションは、quarkus.camel.native.reflection.serialization-enabled = true を自動的に設定することに注意してください。詳細については、ネイティブモードのユーザーガイド を参照してください。

2.37.3.3. 接続プーリングと X/Open XA 分散トランザクションのサポート
注記

Quarkus 向けの Camel 拡張機能のこのリリースでは、接続プーリングは、テクニカルプレビュー機能となっています。

camel-quarkus-jms コンポーネントで接続プールを使用するには、io.quarkiverse.artemis:quarkus-artemis および io.quarkiverse.messaginghub:quarkus-pooled-jms を pom.xml に追加し、次の設定を指定する必要があります。

quarkus.pooled-jms.max-connections = 8
Copy to Clipboard Toggle word wrap

quarkus-pooled-jms エクステンションを使用して、JMS 接続のプーリングと XAのサポートを得ることができます。詳細は、quarkus-pooled-jms エクステンションドキュメントを参照してください。現在、quarkus-artemis-jms 拡張でのみ動作します。これら 2 つの依存関係を pom.xml に追加するだけです。

<dependency>
    <groupId>io.quarkiverse.messaginghub</groupId>
    <artifactId>quarkus-pooled-jms</artifactId>
</dependency>
<dependency>
    <groupId>io.quarkiverse.artemis</groupId>
    <artifactId>quarkus-artemis-jms</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

プーリングはデフォルトで有効になっていることに注意してください。

XA を有効にするには、次の設定を application.properties に追加する必要があります。

quarkus.pooled-jms.xa.enabled=true
Copy to Clipboard Toggle word wrap
注記

プーリング接続では、clientIDdurableSubscriptionName はサポートされていません。プールから reused された接続で setClientID が呼び出されると、IllegalStateException が出力されます。次のようなエラーメッセージが表示されます。Cause: setClientID can only be called directly after the connection is created

2.37.4. ネイティブモードの transferException オプション

ネイティブモードで transferException オプションを使用するには、オブジェクトのシリアル化のサポートを有効にする必要があります。詳細については、ネイティブモードのユーザーガイド を参照してください。

また、シリアル化する予定の例外クラスのシリアル化を有効にする必要があります。以下に例を示します。

@RegisterForReflection(targets = { IllegalStateException.class, MyCustomException.class }, serialization = true)
Copy to Clipboard Toggle word wrap

2.38. JPA

Java Persistence API (JPA) を使用して、データベースから Java オブジェクトを保存し、取得します。

2.38.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.38.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jpa</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.38.3. 追加の Camel Quarkus 設定

このエクステンションは、Quarkus Hibernate ORM を活用して、Hibernate 経由で JPA 実装を提供します。

Hibernate とデータソースを設定する方法については、Quarkus Hibernate ORM のドキュメントを参照してください。

単一の持続性ユニットが使用される場合、Camel Quarkus JPA エクステンションは、自動的に JPA コンポーネントを EntityManagerFactory および TransactionManager で設定します。

2.39. JSON Path

JSON メッセージのボディーに対して、JSONPath 式を評価します。

2.39.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.39.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jsonpath</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.40. JTA

Java Transaction API (JTA) および Narayana トランザクションマネージャーを使用して、Camel ルートをトランザクションに含めます。

2.40.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.40.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jta</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.40.3. 用途

このエクステンションは、ルーターで transacted() EIP を使用する必要がある場合に追加する必要があります。これは、Quarkus の narayana-jta エクステンションによって提供されるトランザクション機能を利用します。

トランザクションサポートの詳細は、Quarkus Transaction guide を参照してください。簡単な使用方法の場合:

from("direct:transaction")
    .transacted()
    .to("sql:INSERT INTO A TABLE ...?dataSource=ds1")
    .to("sql:INSERT INTO A TABLE ...?dataSource=ds2")
    .log("all data are in the ds1 and ds2")
Copy to Clipboard Toggle word wrap

さまざまなトランザクションポリシーのサポートが提供されます。

Expand
ポリシー説明

PROPAGATION_MANDATORY

現在のトランザクションをサポートします。現在のトランザクションが存在しない場合は例外が発生します。

PROPAGATION_NEVER

現在のトランザクションをサポートしません。現在のトランザクションが存在する場合は例外が発生します。

PROPAGATION_NOT_SUPPORTED

現在のトランザクションはサポートせず、常に非トランザクションを実行します。

PROPAGATION_REQUIRED

現在のトランザクションをサポートします。存在しない場合は新しいトランザクションを作成します。

PROPAGATION_REQUIRES_NEW

新しいトランザクションを作成し、現在のトランザクションが存在する場合はそれを一時停止します。

PROPAGATION_SUPPORTS

現在のトランザクションをサポートします。存在しない場合は、非トランザクションを実行します。

2.41. JSLT

JSLT を使用して JSON ペイロードをクエリーまたは変換します。

2.41.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.41.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jslt</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.41.3. ネイティブモードの allowContextMapAll オプション

allowContextMapAll オプションはネイティブモードではサポートされていません。これは、CamelContextExchange などのセキュリティーに敏感な Camel コアクラスへのリフレクティブアクセスが必要なためです。これはセキュリティーリスクとみなされるため、この機能へのアクセスはデフォルトでは提供されません。

2.41.4. 追加の Camel Quarkus 設定

2.41.4.1. ネイティブモードでクラスパスから JSLT テンプレートをロードする

通常、このコンポーネントはクラスパスからテンプレートをロードします。ネイティブモードでも機能させるには、quarkus.native.resources.includes プロパティーを使用して、テンプレートファイルをネイティブ実行可能ファイルに明示的に埋め込む必要があります。

たとえば、以下のルートは、transformation.json という名前のクラスパスリソースから JSLT スキーマを読み込みます。

from("direct:start").to("jslt:transformation.json");
Copy to Clipboard Toggle word wrap

これら (.json ファイルに保存されている可能性のある他のテンプレート) をネイティブイメージに含めるには、application.properties ファイルに次のようなものを追加する必要があります。

quarkus.native.resources.includes = *.json
Copy to Clipboard Toggle word wrap
2.41.4.2. ネイティブモードでの JSLT 関数の使用

camel-quarkus の JSLT 関数をネイティブモードで使用する場合、関数をホストするクラスを リフレクションに登録 する必要があります。ターゲット関数を登録できない場合、以下のようにスタブを書いてしまうことがあります。

@RegisterForReflection
public class MathFunctionStub {
    public static double pow(double a, double b) {
        return java.lang.Math.pow(a, b);
    }
}
Copy to Clipboard Toggle word wrap

ターゲット関数 Math.pow(…​) は、以下のようにコンポーネントに登録できる MathFunctionStub クラスを介してアクセスできるようになりました。

@Named
JsltComponent jsltWithFunction() throws ClassNotFoundException {
    JsltComponent component = new JsltComponent();
    component.setFunctions(singleton(wrapStaticMethod("power", "org.apache.cq.example.MathFunctionStub", "pow")));
    return component;
}
Copy to Clipboard Toggle word wrap

2.42. Kafka

Apache Kafka ブローカーとの間でメッセージを送受信します。

2.42.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.42.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kafka</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.42.3. 用途

2.42.3.1. Quarkus Kafka Dev Services

Camel Quarkus Kafka は、Quarkus Kafka Dev services を利用して、ローカルのコンテナー化された Kafka ブローカーでの開発およびテストを簡素化できます。

デフォルトで、Kafka Dev Services は開発およびテストモードで有効になっています。Camel Kafka コンポーネントは、brokers コンポーネントのオプションがローカルのコンテナー化された Kafka ブローカーを参照するように自動的に設定されます。つまり、このオプションを独自に設定する必要はありません。

この機能は、設定プロパティー quarkus.kafka.devservices.enabled=false を使用して無効にできます。

2.42.4. 追加の Camel Quarkus 設定

Expand
設定プロパティータイプデフォルト

quarkus.camel.kafka.kubernetes-service-binding.merge-configuration

true の場合、Quarkus Kubernetes Service Binding エクステンション (設定されている場合) によって検出された Kafka 設定プロパティーは、Camel Kafka コンポーネントまたはエンドポイントオプションを介して設定されたプロパティーとマージされます。false の場合、Quarkus Kubernetes Service Binding エクステンションによって検出された Kafka 設定プロパティーはすべて無視され、Kafka コンポーネント設定はすべて Camel によって駆動されます。

boolean

true

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.43. Kamelet

ルートテンプレートを具体化する

2.43.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.43.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kamelet</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.43.3. 用途

2.43.3.1. ビルド時に Kamelets をプリロードします

このエクステンションを使用すると、quarkus.camel.kamelet.identifiers プロパティーを使用して、ビルド時に一連の Kamelet をプリロードできます。

2.43.3.2. Kamelet Catalog の使用

/camel-kamelets/latest[Kamelet Catalog] には事前に設定された Kamelets のセットがあります。カタログから Kamelet を使用するには、クラスパスのプロジェクトの yaml 定義 (camel-kamelet リポジトリー にあります) をコピーする必要があります。または、camel-kamelets-catalog アーティファクトを pom.xml に追加できます。

<dependency>
    <groupId>org.apache.camel.kamelets</groupId>
    <artifactId>camel-kamelets-catalog</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

このアーティファクトは、カタログで使用可能なすべての kamelets を Camel Quarkus アプリケーションに追加してビルドタイム処理を行います。アーティファクトがランタイムではなくビルドタイムクラスパスの一部でなければならないという条件 (provided) でスコープに含める場合、quarkus.camel.kamelet.identifiers プロパティーを介してリストされたすべての kamelets を事前にロードする必要があります。

2.43.4. 追加の Camel Quarkus 設定

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.kamelet.identifiers

ビルド時にプリロードする kamelets 識別子のリスト。個々の識別子は、関連する org.apache.camel.model.RouteTemplateDefinition id を設定するために使用されます。

string

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.44. Kubernetes

Kubernetes API に対して操作を実行する

2.44.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.44.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-kubernetes</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.44.3. 追加の Camel Quarkus 設定

テスト内容。

2.44.3.1. Kubernetes クライアントインスタンスの自動登録

エクステンションは、kubernetesClient という名前の Kubernetes クライアント Bean を自動的に登録します。次のように、ルートで Bean を参照できます。

from("direct:pods")
    .to("kubernetes-pods:///?kubernetesClient=#kubernetesClient&operation=listPods")
Copy to Clipboard Toggle word wrap

デフォルトでは、クライアントはローカルの kubeconfig ファイルから設定されます。application.properties 内のプロパティーを使用して、クライアント設定をカスタマイズできます。

quarkus.kubernetes-client.master-url=https://my.k8s.host
quarkus.kubernetes-client.namespace=my-namespace
Copy to Clipboard Toggle word wrap

設定オプションの完全なセットは、Quarkus Kubernetes Client ガイド に記載されています。

同じルートが複数の Pod にデプロイされている場合、このエクステンションを マスターのエクステンション と組み合わせて使用すると便利な場合があります。このようなセットアップでは、キャメルマスター namespace 全体で一度に 1 つのコンシューマーがアクティブになります。

たとえば、以下のルートを複数の Pod にデプロイするとします。

from("master:ns:timer:test?period=100").log("Timer invoked on a single pod at a time");
Copy to Clipboard Toggle word wrap

以下のようなプロパティーを使用して、kubernetes クラスターサービスを有効にすることができます。

quarkus.camel.cluster.kubernetes.enabled = true
Copy to Clipboard Toggle word wrap

その結果、1 つのコンシューマーが ns camel マスター namespace 全体でアクティブになります。これは、特定の時点で、単一のタイマーのみがクラスター全体でエクスチェンジを生成することを意味します。つまり、メッセージは一度に 1 つの Pod で 100 ミリ秒ごとにログに記録されます。

kubernetes クラスターサービスは、quarkus.camel.cluster.kubernetes.* プロパティーをさらに微調整できます。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.cluster.kubernetes.enabled

quarkus.camel.cluster.kubernetes.* 設定に従って、Kubernetes クラスターサービスを自動的に設定する必要があるかどうか。

boolean

false

lock quarkus.camel.cluster.kubernetes-id

クラスターサービス ID (デフォルトは null)。

string

 

lock quarkus.camel.cluster.kubernetes.master-url

Kubernetes マスターの URL (デフォルトでは Kubernetes クライアントプロパティーから読み取られます)。

string

 

lock quarkus.camel.cluster.kubernetes.connection-timeout-millis

Kubernetes API サーバーにリクエストを送信するときに使用する接続タイムアウト (ミリ秒単位)。

java.lang.Integer

 

lock quarkus.camel.cluster.kubernetes.namespace

Pod と configmap を含む Kubernetes namespace の名前 (デフォルトで自動検出)。

string

 

lock quarkus.camel.cluster.kubernetes.pod-name

現在の Pod の名前 (デフォルトではコンテナーのホスト名から自動検出されます)。

string

 

lock quarkus.camel.cluster.kubernetes.jitter-factor

すべての Pod が同じ瞬間に Kubernetes API を呼び出さないようにするために適用するジッター係数 (デフォルトは 1.2)。

java.lang.Double

 

lock quarkus.camel.cluster.kubernetes.lease-duration-millis

現在のリーダーのデフォルトのリース期間 (デフォルトは 15000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes.renew-deadline-millis

リーダーシップを失った可能性があるため、リーダーがサービスを停止しなければならない期限 (デフォルトは 10000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes.retry-period-millis

リーダーシップを確認して獲得するための後続の 2 つの試みの間の時間。ジッター係数を使用してランダム化されます (デフォルトは 2000)。

java.lang.Long

 

lock quarkus.camel.cluster.kubernetes-order

サービス検索の順序/優先度 (デフォルトは 2147482647)。

java.lang.Integer

 

lock quarkus.camel.cluster.kubernetes.resource-name

楽観的ロックを行うために使用されるリースリソースの名前 (デフォルトは leaders)。リソース名は、基になる Kubernetes リソースが単一のロックを管理できる場合に接頭辞として使用されます。

string

 

lock quarkus.camel.cluster.kubernetes.lease-resource-type

Kubernetes で使用されるリースリソースタイプ。config-map または lease のいずれかです (デフォルトは lease)。

org.apache.camel.component.kubernetes.cluster.LeaseResourceType

 

lock quarkus.camel.cluster.kubernetes.rebalancing

camel マスター namespace リーダーをクラスター内のすべての camel コンテキストに均等に分散する必要があるかどうか。

boolean

true

lock quarkus.camel.cluster.kubernetes-labels

クラスターを設定する Pod を識別するために使用されるラベルのキー/値。デフォルトは空のマップです。

Map<String,String>

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.45. Log

基礎となるロギングメカニズムにメッセージをログとして記録します。

2.45.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.45.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-log</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.46. mail

imap、pop3、および smtp プロトコルを使用してメールを送受信します。添付のある Camel メッセージを MIME-Multipart メッセージに、またはその逆にマーシャリングします。

2.46.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.46.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-mail</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.47. マスター

特定のエンドポイントから消費するクラスター内のコンシューマーは 1 つだけです。JVM が停止した場合に自動的にフェイルオーバーします。

2.47.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.47.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-master</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.47.3. 追加の Camel Quarkus 設定

この拡張機能は、以下の拡張機能と組み合わせて使用できます。

2.48. MicroProfile フォールトトレランス

Microprofile フォールトトレラン を使用した Circuit Breaker EIP

2.48.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.48.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-microprofile-fault-tolerance</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.49. MicroProfile Health

MicroProfile Health による Camel ヘルスチェックの公開

2.49.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.49.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-microprofile-health</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.49.3. 用途

デフォルトでは、AbstractHealthCheck を拡張するクラスは liveness および readiness チェックの両方として登録されます。isReadiness メソッドを上書きして、この動作を制御できます。

アプリケーションによって提供されるチェックは自動的に検出され、Camel レジストリーにバインドされます。これらは、Quarkus ヘルスエンドポイント /q/health/live および /q/health/ready から利用できます。

カスタムの HealthCheckRepository 実装も提供でき、これらの実装も自動的に検出され、Camel レジストリーにバインドされます。

詳細は、Quarkus health guide を参照してください。

2.49.3.1. 提供されるヘルスチェック

一部のチェックはアプリケーションに自動的に登録されます。

2.49.3.1.1. Camel Context Health

Camel Context のステータスを検査して、ステータスが Started 以外の場合にヘルスチェックのステータスを DOWN にします。

2.49.3.1.2. Camel Route Health

各ルートのステータスを検査して、いずれかのルートのステータスが Started 以外の場合にヘルスチェックのステータスを DOWN にします。

2.49.4. 追加の Camel Quarkus 設定

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.health.enabled

Camel ヘルスチェックを有効にするかどうかを設定します

boolean

true

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.50. MicroProfile Metrics

Camel ルートからメトリクスを公開します。

2.50.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.50.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-microprofile-metrics</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.50.3. 用途

microprofile-metrics コンポーネントは Camel アプリケーションメトリクスのセットを自動的に公開します。これには以下が含まれます。

2.50.3.1. Camel Context メトリクス
Expand
メトリクス名タイプ

camel.context.status

ServiceStatus 列挙順序で表される Camel Context のステータス

ゲージ

camel.context.uptime

Camel Context のアップタイム (ミリ秒単位)

ゲージ

camel.context.exchanges.completed.total

完了したエクスチェンジの合計数

カウンター

camel.context.exchanges.failed.total

失敗したエクスチェンジの合計数

カウンター

camel.context.exchanges.inflight.total

インフライトエクスチェンジの合計数

ゲージ

camel.context.exchanges.total

すべてのエクスチェンジの合計数

カウンター

camel.context.externalRedeliveries.total

すべての外部再配信の合計数

カウンター

camel.context.failuresHandled.total

処理されたすべての障害の合計数

カウンター

2.50.3.2. Camel Route メトリクス
Expand
メトリクス名タイプ

camel.route.count

ルート数

ゲージ

camel.route.running.count

実行中のルート数

ゲージ

camel.route.exchanges.completed.total

ルートの完了したエクスチェンジの合計数

カウンター

camel.route.exchanges.failed.total

ルートの失敗したエクスチェンジの合計数

カウンター

camel.route.exchanges.inflight.total

ルートのインフライトエクスチェンジの合計数

ゲージ

camel.route.exchanges.total

ルートのすべてのエクスチェンジの合計数

カウンター

camel.route.externalRedeliveries.total

ルートのすべての外部再配信の合計数

カウンター

camel.route.failuresHandled.total

ルートの処理されたすべての障害の合計数

カウンター

すべてのメトリクスは、Camel Context の名前と、該当する場合にルートの ID でタグ付けされます。

Camel ルートで独自のカスタムメトリクスを生成することもできます。詳細は、microprofile-metrics コンポーネントのドキュメントを参照してください。

メトリクスはアプリケーションメトリクスとして Quarkus に公開され、http://localhost:8080/q/metrics/application で参照することができます。

2.50.4. 追加の Camel Quarkus 設定

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.metrics.enable-route-policy

ルート処理時間のメトリクスをキャプチャーするために MicroProfileMetricsRoutePolicyFactory を有効にするかどうかを設定します。

boolean

true

lock quarkus.camel.metrics.enable-message-history

個々のルートノード処理時間のメトリクスをキャプチャーするために MicroProfileMetricsMessageHistoryFactory を有効にするかどうかを設定します。設定されたルートノードの数によっては、大量のメトリクスが作成される可能性があります。したがって、このオプションはデフォルトで無効になります。

boolean

false

lock quarkus.camel.metrics.enable-exchange-event-notifier

エクスチェンジ処理時間のメトリクスをキャプチャーするために MicroProfileMetricsExchangeEventNotifier を有効にするかどうかを設定します。

boolean

true

lock quarkus.camel.metrics.enable-route-event-notifier

ルートの合計数と実行中のルートの合計数のメトリクスをキャプチャーするために MicroProfileMetricsRouteEventNotifier を有効にするかどうかを設定します。

boolean

true

lock quarkus.camel.metrics.enable-camel-context-event-notifier

ステータスやアップタイムなどの CamelContext に関するメトリックをキャプチャーするために MicroProfileMetricsCamelContextEventNotifier を有効にするかどうかを設定します。

boolean

true

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.51. MLLP

MLLP プロトコルを使用して外部システムと通信します。

2.51.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.51.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-mllp</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.51.3. 追加の Camel Quarkus 設定

2.52. Mock

モックを使用してルートおよび仲介ルールをテストします。

2.52.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.52.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-mock</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.52.3. 用途

テストで camel-mock 機能を使用するには、MockEndpoint インスタンスへのアクセスを取得する必要があります。

CDI の注入は、インスタンスへのアクセスに使用できます (Quarkus ドキュメント を参照してください)。@Inject アノテーションを使用して camelContext をテストに注入できます。その後、Camel コンテキストを使用してモックエンドポイントを取得できます。以下の例を参照してください。

import javax.inject.Inject;

import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;

import io.quarkus.test.junit.QuarkusTest;

@QuarkusTest
public class MockJvmTest {

    @Inject
    CamelContext camelContext;

    @Inject
    ProducerTemplate producerTemplate;

    @Test
    public void test() throws InterruptedException {

        producerTemplate.sendBody("direct:start", "Hello World");

        MockEndpoint mockEndpoint = camelContext.getEndpoint("mock:result", MockEndpoint.class);
        mockEndpoint.expectedBodiesReceived("Hello World");

        mockEndpoint.assertIsSatisfied();
    }
}
Copy to Clipboard Toggle word wrap

サンプルテストに使用するルート:

import javax.enterprise.context.ApplicationScoped;

import org.apache.camel.builder.RouteBuilder;

@ApplicationScoped
public class MockRoute extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("direct:start").to("mock:result");
    }
}
Copy to Clipboard Toggle word wrap

2.52.4. Camel Quarkus の制限

(使用法で説明した) CDI Bean の注入は、ネイティブモードでは機能しません。

ネイティブモードでは、テストとテスト中のアプリケーションが 2 つの異なるプロセスで実行され、それらの間でモック Bean を共有することはできません (Quarkus ドキュメント を参照)。

2.53. MongoDB

MongoDB ドキュメントおよびコレクションの操作を実行します。

2.53.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.53.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-mongodb</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.53.3. 追加の Camel Quarkus 設定

エクステンションは Quarkus MongoDB Client エクステンションを活用します。Mongo クライアントは、Quarkus MongoDB Client の 設定オプション を使用して設定できます。

Camel Quarkus MongoDB エクステンションは、camelMongoClient という名前の MongoDB クライアント Bean を自動的に登録します。これは、mongodb エンドポイント URI の connectionBean パスパラメーターで参照できます。以下に例を示します。

from("direct:start")
.to("mongodb:camelMongoClient?database=myDb&collection=myCollection&operation=findAll")
Copy to Clipboard Toggle word wrap

アプリケーションが複数の MongoDB サーバーと連携する必要がある場合は、Quarkus MongoDB extension client injection で説明するように、特定の名前のクライアントを作成し、クライアントおよび関連する設定を注入することで、ルートで参照できます。以下に例を示します。

//application.properties
quarkus.mongodb.mongoClient1.connection-string = mongodb://root:example@localhost:27017/
Copy to Clipboard Toggle word wrap
//Routes.java

    @ApplicationScoped
    public class Routes extends RouteBuilder {
        @Inject
        @MongoClientName("mongoClient1")
        MongoClient mongoClient1;

        @Override
        public void configure() throws Exception {
            from("direct:defaultServer")
                .to("mongodb:camelMongoClient?database=myDb&collection=myCollection&operation=findAll")

            from("direct:otherServer")
                .to("mongodb:mongoClient1?database=myOtherDb&collection=myOtherCollection&operation=findAll");
        }
    }
Copy to Clipboard Toggle word wrap

指定されたクライアントを使用する場合、デフォルトの camelMongoClient Bean は引き続き生成されます。詳細は、複数の MongoDB クライアント に関する Quarkus ドキュメントを参照してください。

2.54. Netty

Netty 4.x で TCP または UDP を使用するソケットレベルのネットワーク。

2.54.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.54.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-netty</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.55. OpenAPI Java

Camel REST DSLL で定義された OpenAPI リソースを公開する

2.55.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.55.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-openapi-java</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.55.3. 用途

この拡張機能を使用して、REST DSL サービスを Quarkus OpenAPI に公開できます。quarkus-smallrye-openapi を使用すると、/q/openapi?format=json でアクセスできます。

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

これは実験的な機能です。それを有効にすることができます

quarkus.camel.openapi.expose.enabled=true
Copy to Clipboard Toggle word wrap
警告

@RegisterForReflection を使用してすべてのモデルクラスをリフレクションに登録するのは、ユーザーの責任です。

現在、org.apache.camel.builder.LambdaRouteBuilder で使用されている残りのサービスはサポートされていません。また、CDI が利用できない間にビルド時に残りの定義を取得するため、RouteBuilder の configure() で CDI 注入を使用することはできません。

2.55.4. Camel Quarkus の制限

apiContextIdListing 設定オプションはサポートされません。複数の CamelContext はサポートされておらず、Quarkus アプリケーションはスタンドアロンで実行されるため、特定の CamelContext の OpenApi 仕様を解決しようとすることが役立つシナリオはありません。また、JMX (ネイティブモードではサポートされていません) を必要とする追加のオーバーヘッドと、XML を処理するための追加の Camel Quarkus エクステンションも導入されています。

2.56. OpenTelemetry

OpenTelemetry を使用した分散トレース

2.56.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.56.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-opentelemetry</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.56.3. 用途

拡張機能は Camel OpenTelemetryTracer を自動的に作成し、それを Camel レジストリーにバインドします。

キャプチャされたトレースをトレースシステムに送信するには、以下のような application.properties 内のいくつかのプロパティーを設定する必要があります。

# Identifier for the origin of spans created by the application
quarkus.application.name=my-camel-application

# For OTLP
quarkus.opentelemetry.tracer.exporter.otlp.endpoint=http://localhost:4317

# For Jaeger
quarkus.opentelemetry.tracer.exporter.jaeger.endpoint=http://localhost:14250
Copy to Clipboard Toggle word wrap

使用する OpenTelemetry エクスポーターに依存関係を追加する必要があることに注意してください。

設定オプションの完全なリストについては、Quarkus OpenTelemetry ガイド を参照してください。

application.propertiesquarkus.camel.opentelemetry.exclude-patterns という名前のプロパティーを設定することで、ルートエンドポイントをトレースから除外できます。以下に例を示します。

# Exclude all direct & netty-http endpoints from tracing
quarkus.camel.opentelemetry.exclude-patterns=direct:*,netty-http:*
Copy to Clipboard Toggle word wrap

2.56.4. 追加の Camel Quarkus 設定

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.opentelemetry.encoding

ヘッダー名をエンコードする必要があるかどうかを設定します。OpenTelemetry プロパゲーターが、ターゲットシステムと互換性のない形式でヘッダー名の値を設定する可能性がある状況で役立ちます。たとえば、JMS の場合、仕様ではヘッダー名が有効な Java 識別子であることが義務付けられています。

boolean

false

lock quarkus.camel.opentelemetry.exclude-patterns

指定されたパターンに一致するエンドポイント URI のトレースを無効にするかどうかを設定します。パターンは次の形式を取ることができます。

1.エンドポイント URI の完全一致。例: platform-http:/some/path

2.ワイルドカードマッチ。E.g platform-http:*

3.エンドポイント URI に一致する正規表現。例: platform-http:/prefix/.*

string

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.57. Paho

Eclipse Paho MQTT クライアントを使用して MQTT メッセージブローカーと通信します。

2.57.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.57.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-paho</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.58. Paho MQTT5

Eclipse Paho MQTT v5 クライアントを使用して MQTT メッセージブローカーと通信します。

2.58.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.58.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-paho-mqtt5</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.59. Platform HTTP

このエクステンションにより、HTTP リクエストを使用するために HTTP エンドポイントを作成できます。

これは、quarkus-vertx-http エクステンションによって提供される Eclipse Vert.x HTTP サーバー上にビルドされます。

2.59.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.59.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-platform-http</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.59.3. 用途

2.59.3.1. 基本的な使用方法

/hello エンドポイントですべての HTTP メソッドを提供します。

from("platform-http:/hello").setBody(simple("Hello ${header.name}"));
Copy to Clipboard Toggle word wrap

/hello エンドポイントで GET リクエストのみを提供します。

from("platform-http:/hello?httpMethodRestrict=GET").setBody(simple("Hello ${header.name}"));
Copy to Clipboard Toggle word wrap
2.59.3.2. Camel REST DSL 経由の platform-http の使用

platform-http コンポーネントで Camel REST DSL を使用できるようにするには、pom.xmlcamel-quarkus-rest を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-rest</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

その後、Camel REST DSL を使用できます。

rest()
    .get("/my-get-endpoint")
        .to("direct:handleGetRequest");

    .post("/my-post-endpoint")
        .to("direct:handlePostRequest");
Copy to Clipboard Toggle word wrap
2.59.3.3. multipart/form-data ファイルのアップロードの処理

ホワイトリストに登録して、アップロードを特定のファイル拡張子に制限することができます。

from("platform-http:/upload/multipart?fileNameExtWhitelist=html,txt&httpMethodRestrict=POST")
    .to("log:multipart")
    .process(e -> {
        final AttachmentMessage am = e.getMessage(AttachmentMessage.class);
        if (am.hasAttachments()) {
            am.getAttachments().forEach((fileName, dataHandler) -> {
                try (InputStream in = dataHandler.getInputStream()) {
                    // do something with the input stream
                } catch (IOException ioe) {
                    throw new RuntimeException(ioe);
                }
            });
        }
    });
Copy to Clipboard Toggle word wrap
2.59.3.4. platform-http エンドポイントのセキュリティー保護

Quarkus は、platform-http エンドポイントのセキュリティー保護に使用できるさまざまなセキュリティーおよび認証メカニズムを提供します。詳細は、Quarkus Security のドキュメント を参照してください。

ルート内で、認証されたユーザーとその関連する SecurityIdentity および Principal を取得できます。

from("platform-http:/secure")
    .process(e -> {
        Message message = e.getMessage();
        QuarkusHttpUser user = message.getHeader(VertxPlatformHttpConstants.AUTHENTICATED_USER, QuarkusHttpUser.class);
        SecurityIdentity securityIdentity = user.getSecurityIdentity();
        Principal principal = securityIdentity.getPrincipal();
        // Do something useful with SecurityIdentity / Principal. E.g check user roles etc.
    });
Copy to Clipboard Toggle word wrap

Quarkus ドキュメントquarkus.http.body.* 設定オプション (特に次の項目) も確認してください。quarkus.http.body.handle-file-uploadsquarkus.http.body.uploads-directory および quarkus.http.body.delete-uploaded-files-on-end

2.59.3.5. リバースプロキシーの実装

プラットフォーム HTTP コンポーネントはリバースプロキシーとして機能できます。その場合、Exchange.HTTP_URIExchange.HTTP_HOST ヘッダーは、HTTP 要求のリクエスト行で受信した絶対 URL から入力されます。

エクスチェンジを元のサーバーに単純にリダイレクトする HTTP プロキシーの例を次に示します。

from("platform-http:proxy")
    .toD("http://"
        + "${headers." + Exchange.HTTP_HOST + "}");
Copy to Clipboard Toggle word wrap

2.59.4. 追加の Camel Quarkus 設定

2.59.4.1. プラットフォーム HTTP サーバー設定

プラットフォーム HTTP サーバーの設定は Quarkus によって管理されます。設定オプションの完全なリストについては、Quarkus HTTP 設定ガイド を参照してください。

Platform HTTP サーバーの SSL を設定するには 、SSL ガイドを使用した安全な接続 に従ってください。SSLContextParameters を使用した SSL 用のサーバーの設定は現在サポートされていないことに注意してください。

2.59.4.2. 文字エンコーディング

アプリケーションがデフォルト以外のエンコーディングを使用してリクエストを送受信することが想定される場合は、ネイティブモードガイドの 文字エンコーディングのセクション を確認してください。

2.60. Protobuf Jackson

Jackson を使用して、POJO を Protobuf にマーシャリングし、戻します。

2.60.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.60.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-jackson-protobuf</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.61. Quartz

Quartz 2.x スケジューラーを使用してメッセージの送信をスケジュールします。

2.61.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.61.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-quartz</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.61.3. 用途

2.62. Ref

Camel Registry で名前によって動的に検索されたエンドポイントにメッセージをルーティングします。

2.62.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.62.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-ref</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.62.3. 用途

CDI プロデューサーメソッドを利用してエンドポイントを Camel レジストリーにバインドできるため、Camel ルートで ref URI スキームを使用してエンドポイントを解決できます。

たとえば、エンドポイント Bean を生成するには、次のようにします。

@ApplicationScoped
public class MyEndpointProducers {
    @Inject
    CamelContext context;

    @Singleton
    @Produces
    @Named("endpoint1")
    public Endpoint directStart() {
        return context.getEndpoint("direct:start");
    }

    @Singleton
    @Produces
    @Named("endpoint2")
    public Endpoint logEnd() {
        return context.getEndpoint("log:end");
    }
}
Copy to Clipboard Toggle word wrap

ref: を使用して、Camel レジストリーにバインドされた CDI Bean の名前を参照します。

public class MyRefRoutes extends RouteBuilder {
    @Override
    public void configure() {
        // direct:start -> log:end
        from("ref:endpoint1")
            .to("ref:endpoint2");
    }
}
Copy to Clipboard Toggle word wrap

2.63. Rest

REST サービスおよび OpenAPI Specification を公開するか、外部の REST サービスを呼び出します。

2.63.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.63.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-rest</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.63.3. 追加の Camel Quarkus 設定

このエクステンションは、Platform HTTP エクステンションに依存し、REST トランスポートを提供するコンポーネントとして設定します。

2.63.3.1. platform-http 付きの特殊文字を含むパスパラメーター

platform-http REST トランスポートを使用する場合、一部の文字はパスパラメーター名内で許可されません。これには、- および $ 文字が含まれます。

以下の例の REST /dashed/param ルートを正しく機能させるには、システムプロパティーを io.vertx.web.route.param.extended-pattern=true にする必要があります。

import org.apache.camel.builder.RouteBuilder;

public class CamelRoute extends RouteBuilder {

    @Override
    public void configure() {
        rest("/api")
            // Dash '-' is not allowed by default
            .get("/dashed/param/{my-param}")
            .to("direct:greet")

            // The non-dashed path parameter works by default
            .get("/undashed/param/{myParam}")
            .to("direct:greet");

            from("direct:greet")
                .setBody(constant("Hello World"));
    }
}
Copy to Clipboard Toggle word wrap

Vert.x Web ドキュメント には、これに関するいくつかの背景があります。

2.63.3.2. 代替 REST トランスポートプロバイダーの設定

netty-httpservlet 等の別の REST トランスポートプロバイダーを使用するには、それぞれのエクステンションを依存関係としてプロジェクトへの追加し、RouteBuilder でプロバイダーを設定する必要があります。たとえば、servlet の場合、org.apache.camel.quarkus:camel-quarkus-servlet 依存関係を追加し、プロバイダーを次のように設定する必要があります。

import org.apache.camel.builder.RouteBuilder;

public class CamelRoute extends RouteBuilder {

    @Override
    public void configure() {
        restConfiguration()
                .component("servlet");
        ...
    }
}
Copy to Clipboard Toggle word wrap

2.64. Salesforce

Java DTO を使用して Salesforce と通信します。

2.64.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.64.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-salesforce</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.64.3. 用途

2.64.3.1. salesforce-maven-plugin を使用した Salesforce DTO の生成

テスト内容。

プロジェクトの Salesforce DTO を生成するには、salesforce-maven-plugin を使用します。以下のサンプルコードスニペットは、Account オブジェクトの単一の DTO を作成します。

<plugin>
    <groupId>org.apache.camel.maven</groupId>
    <artifactId>camel-salesforce-maven-plugin</artifactId>
    <version>3.18.3</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <clientId>${env.SALESFORCE_CLIENTID}</clientId>
                <clientSecret>${env.SALESFORCE_CLIENTSECRET}</clientSecret>
                <userName>${env.SALESFORCE_USERNAME}</userName>
                <password>${env.SALESFORCE_PASSWORD}</password>
                <loginUrl>https://login.salesforce.com</loginUrl>
                <packageName>org.apache.camel.quarkus.component.salesforce.generated</packageName>
                <outputDirectory>src/main/java</outputDirectory>
                <includes>
                    <include>Account</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>
Copy to Clipboard Toggle word wrap

2.64.4. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.65. スケジューラー

java.util.concurrent.ScheduledExecutorService を使用して、指定された間隔でメッセージを生成します。

2.65.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.65.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-scheduler</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.66. SEDA

同じ JVM の Camel コンテキストから別のエンドポイントを非同期に呼び出します。

2.66.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.66.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-seda</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.67. Slack

Slack との間でメッセージを送受信します。

2.67.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.67.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-slack</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.67.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.68. SOAP dataformat

Java オブジェクトを SOAP メッセージにマーシャリングし、戻します。

2.68.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.68.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-soap</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.69. SQL

SQL クエリーを実行します。

2.69.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.69.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-sql</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.69.3. Camel Quarkus の制限

Oracle JDBC ドライバーは、Camel Quarkus および Quarkus 全般でのシリアル化サポートを中断する GraalVM ネイティブイメージ設定をいくつか提供しています。詳細は、quarkus issue を参照してください。

この問題により、集約リポジトリー は Oracle データベースのネイティブモードでは機能しません。

2.69.4. 追加の Camel Quarkus 設定

2.69.4.1. データソースの設定

このエクステンションは、DataSource のサポートに Quarkus Agroal を活用します。DataSource の設定は、設定プロパティーを介して実行できます。

quarkus.datasource.db-kind=postgresql
quarkus.datasource.username=your-username
quarkus.datasource.password=your-password
quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:5432/your-database
quarkus.datasource.jdbc.max-size=16
Copy to Clipboard Toggle word wrap

Camel SQL コンポーネントは、レジストリーから DataSource Bean を自動的に解決します。複数のデータソースを設定する場合、URI オプション datasource または dataSourceRef を使用して、SQL エンドポイントで使用するデータソースを指定できます。詳細については、SQL コンポーネントのドキュメントを参照してください。

2.69.4.1.1. Quarkus Dev Services によるゼロ設定

開発モードとテストモードでは、Configuration Free Databases を利用できます。Camel SQL コンポーネントは、選択した JDBC ドライバータイプに一致するデータベースのローカルコンテナー化インスタンスを指す DataSource を使用するように自動的に設定されます。

2.69.4.2. SQL スクリプト

クラスパスからスクリプトファイルを参照するために sql または sql-stored エンドポイントを設定する場合は、以下の設定プロパティーを設定して、それらがネイティブモードで利用できるようにします。

quarkus.native.resources.includes = queries.sql, sql/*.sql
Copy to Clipboard Toggle word wrap
2.69.4.3. ネイティブモードでの SQL 集約リポジトリー

ネイティブモードで JdbcAggregationRepository などの SQL 集約リポジトリーを使用するには、ネイティブのシリアライズサポートを有効化 する必要があります。

さらに、エクスチェンジボディがカスタムタイプである場合、クラス宣言に @RegisterForReflection(serialization = true) のアノテーションを付けてシリアライズ用に登録する必要があります。

2.70. Telegram

Telegram Bot Telegram Bot API として動作するメッセージを送受信します。

2.70.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.70.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-telegram</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.70.3. ネイティブモードの SSL

このエクステンションは、ネイティブモードでの SSL サポートを自動的に有効にします。したがって、自分で quarkus.ssl.native=trueapplication.properties に追加する必要はありません。Quarkus SSL ガイド も参照してください。

2.71. Timer

java.util.Timer を使用して指定した間隔でメッセージを生成します。

2.71.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.71.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-timer</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.72. バリデーター

XML スキーマと JAXP 検証を使用してペイロードを検証します。

2.72.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.72.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-validator</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.73. Velocity

Velocity テンプレートを使用してメッセージを変換します。

2.73.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.73.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-velocity</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.73.3. 用途

2.73.3.1. ネイティブモードのドメインオブジェクトとしてのカスタムボディ

カスタムオブジェクトをメッセージ本文として使用し、ネイティブモードのテンプレートでそのプロパティーを参照する場合、すべてのクラスをリフレクション用に登録する必要があります (ドキュメント を参照)。

例:

@RegisterForReflection
public interface CustomBody {
}
Copy to Clipboard Toggle word wrap

2.73.4. ネイティブモードの allowContextMapAll オプション

allowContextMapAll オプションはネイティブモードではサポートされていません。これは、CamelContextExchange などのセキュリティーに敏感な Camel コアクラスへのリフレクティブアクセスが必要なためです。これはセキュリティーリスクとみなされるため、この機能へのアクセスはデフォルトでは提供されません。

2.73.5. 追加の Camel Quarkus 設定

通常、このコンポーネントはクラスパスから Velocity テンプレートをロードします。ネイティブモードでも機能させるには、quarkus.native.resources.includes プロパティーを使用して、テンプレートをネイティブ実行可能ファイルに明示的に埋め込む必要があります。

たとえば、以下のルートは、template/simple.vm という名前のクラスパスリソースから Velocity テンプレートをロードします。

from("direct:start").to("velocity://template/simple.vm");
Copy to Clipboard Toggle word wrap

これ (template ディレクトリーの .vm ファイルに保存されている可能性のある他のテンプレート) をネイティブイメージに含めるには、次のようなものを application.properties ファイルに追加する必要があります。

quarkus.native.resources.includes = template/*.vm
Copy to Clipboard Toggle word wrap

2.74. XPath

XML ペイロードに対して XPath 式を評価します。

2.74.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.74.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-xpath</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.74.3. 追加の Camel Quarkus 設定

このコンポーネントは、クラスパスリソースから xpath 式をロードできます。ネイティブモードでも機能させるには、quarkus.native.resources.includes プロパティーを使用して、式ファイルをネイティブ実行可能ファイルに明示的に埋め込む必要があります。

たとえば、以下のルートは、myxpath.txt という名前のクラスパスリソースから XPath 表現を読み込みます。

from("direct:start").transform().xpath("resource:classpath:myxpath.txt");
Copy to Clipboard Toggle word wrap

これら (.txt ファイルに保存されている可能性のある他の式) をネイティブイメージに含めるには、application.properties ファイルに次のようなものを追加する必要があります。

quarkus.native.resources.includes = *.txt
Copy to Clipboard Toggle word wrap

2.75. XQuery

XQuery および Saxon を使用して XML ペイロードをクエリーまたは変換します。

2.75.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.75.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-saxon</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.75.3. 追加の Camel Quarkus 設定

このコンポーネントは、クラスパスから XQuery 定義をロードできます。ネイティブモードでも機能させるには、quarkus.native.resources.includes プロパティーを使用して、クエリーをネイティブ実行可能ファイルに明示的に埋め込む必要があります。

たとえば、以下の 2 つのルートは、それぞれ myxquery.txt および another-xquery.txt という名前の 2 つのクラスパスリソースから XQuery スクリプトをロードします。

from("direct:start").transform().xquery("resource:classpath:myxquery.txt", String.class);
from("direct:start").to("xquery:another-xquery.txt");
Copy to Clipboard Toggle word wrap

これら (.txt ファイルに保存されている可能性のある他のクエリー) をネイティブイメージに含めるには、application.properties ファイルに次のようなものを追加する必要があります。

quarkus.native.resources.includes = *.txt
Copy to Clipboard Toggle word wrap

2.76. XSLT

XSLT テンプレートを使用して XML ペイロードを変換します。

2.76.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.76.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-xslt</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

2.76.3. 追加の Camel Quarkus 設定

XSLT 処理を最適化するには、ビルド時に XSLT テンプレートの場所をエクステンションが認識している必要があります。XSLT ソース URI は、quarkus.camel.xslt.sources プロパティーを介して渡す必要があります。複数の URI はコンマで区切ることができます。

quarkus.camel.xslt.sources = transform.xsl, classpath:path/to/my/file.xsl
Copy to Clipboard Toggle word wrap

スキームのない URI は classpath: URI として解釈されます。

classpath: のみ: URI は Quarkus ネイティブモードでサポートされます。file:http:、およびその他の種類の URI は、JVM モードでのみ使用できます。

<xsl:include> および <xsl:messaging> XSLT 要素も、現在 JVM モードでのみサポートされています。

aggregate DSL を使用する場合は、次のように XsltSaxonAggregationStrategy を使用する必要があります。

from("file:src/test/resources?noop=true&sortBy=file:name&antInclude=*.xml")
   .routeId("aggregate").noAutoStartup()
   .aggregate(new XsltSaxonAggregationStrategy("xslt/aggregate.xsl"))
   .constant(true)
   .completionFromBatchConsumer()
   .log("after aggregate body: ${body}")
   .to("mock:transformed");
Copy to Clipboard Toggle word wrap

また、JVM モードでのみサポートされています。

2.76.3.1. Configuration

TransformerFactory 機能は、次のプロパティーを使用して設定できます。

quarkus.camel.xslt.features."http\://javax.xml.XMLConstants/feature/secure-processing"=false
Copy to Clipboard Toggle word wrap
2.76.3.2. エクステンション機能のサポート

Xalan のエクステンション機能 は、次の場合にのみ正しく機能します。

  1. 安全な処理が無効になっています
  2. 関数は別の jar で定義されています
  3. 関数は、ネイティブビルドフェーズ中に拡張されます。たとえば、リフレクション用に登録できます。
@RegisterForReflection(targets = { my.Functions.class })
public class FunctionsConfiguration {
}
Copy to Clipboard Toggle word wrap
注記

XSLT ソース URI のコンテンツは、ビルド時に解析され、Java クラスにコンパイルされます。これらの Java クラスは、実行時の XSLT 情報の唯一のソースです。XSLT ソースファイルは、アプリケーションアーカイブにまったく含まれていない場合があります。

Expand
設定プロパティータイプデフォルト

lock quarkus.camel.xslt.sources

コンパイルするテンプレートのコンマ区切りリスト。

string

 

lock quarkus.camel.xslt.package-name

生成されたクラスのパッケージ名。

string

org.apache.camel.quarkus.component.xslt.generated

lock quarkus.camel.xslt.features

TransformerFactory の機能。

Map<String,Boolean>

 

lock ビルド時に修正される設定プロパティー。その他の設定プロパティーはすべて、ランタイム時にオーバーライドが可能です。

2.77. Zip ファイル

java.util.zip.ZipStream を使用した圧縮および圧縮解除ストリーム。

2.77.1. 含まれるもの

使用方法と設定の詳細については、上記リンクを参照してください。

2.77.2. Maven コーディネート

code.quarkus.redhat.com でこのエクステンションを使用して新しいプロジェクトの作成

または、既存のプロジェクトに座標を追加します。

<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-zipfile</artifactId>
</dependency>
Copy to Clipboard Toggle word wrap

法律上の通知

Copyright © 2023 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る