2.24. コア


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

2.24.1. 含まれるもの

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

2.24.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.24.3. 追加の Camel Quarkus 設定

2.24.3.1. Simple 言語

2.24.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.24.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.24.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.24.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
設定プロパティーデフォルト

quarkus.camel.bootstrap.enabled

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

boolean

true

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 のリスト

 

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 のリスト

 

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 のリスト

 

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 のリスト

 

quarkus.camel.runtime-catalog.components

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel コンポーネントの JSON スキーマが含まれます。それ以外の場合は、コンポーネントの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.runtime-catalog.languages

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel 言語の JSON スキーマが含まれます。それ以外の場合は、言語の JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.runtime-catalog.dataformats

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel データフォーマットの JSON スキーマが含まれます。それ以外の場合は、データフォーマットの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.runtime-catalog.devconsoles

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで使用可能な Camel 開発コンソールの JSON スキーマが含まれます。それ以外の場合、開発コンソールの JSON スキーマは Runtime Camel Catalog で使用できず、それらにアクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.runtime-catalog.models

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで利用可能な Camel EIP モデルの JSON スキーマが含まれます。それ以外の場合は、EIP モデルの JSON スキーマは Runtime Camel Catalog で利用可能ではなく、アクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.runtime-catalog.transformers

true の場合、アプリケーションに埋め込まれた Runtime Camel Catalog には、アプリケーションで使用可能な Camel トランスフォーマーの JSON スキーマが含まれます。そうでない場合、トランスフォーマー JSON スキーマは Runtime Camel Catalog で使用できず、それらにアクセスしようとすると RuntimeException が発生します。

これを false に設定すると、ネイティブイメージのサイズを縮小することができます。JVM モードでは、ネイティブモードとの動作の一貫性を確立する場合を除き、このフラグを false に設定することは実際の利点がありません。

boolean

true

quarkus.camel.routes-discovery.enabled

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

boolean

true

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 のリスト

 

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 のリスト

 

quarkus.camel.native.reflection.exclude-patterns

反映のために登録から 除外 されるクラス名に一致する Ant-path スタイルパターンのコンマ区切りリスト。java.lang.Class.getName() メソッドによって返されるままのクラス名フォーマットを使用します。パッケージセグメントはピリオド . で区切られ、内部クラスはドル記号 $ で区切られます。

このオプションは、include-patterns により選択されたセットを絞り込みます。デフォルトでは、クラスは除外されません。

このオプションは、Quarkus エクステンションによって内部で登録されたクラスの登録解除には使用できません。

string のリスト

 

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.propertiesquarkus.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 のリスト

 

quarkus.camel.native.reflection.serialization-enabled

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

boolean

false

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

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

fail, warn, ignore

warn

quarkus.camel.expression.on-build-time-analysis-failure

ビルド時にルート定義から式を抽出できない場合の対処方法。

fail, warn, ignore

warn

quarkus.camel.expression.extraction-enabled

ビルド時にルート定義から式を抽出する必要があるかどうかを示します。無効にすると、式はランタイムにコンパイルされます。

boolean

true

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

quarkus.camel.source-location-enabled

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

boolean

false

quarkus.camel.trace.enabled

Camel アプリケーションでトレーサーを有効にします。

boolean

false

quarkus.camel.trace.standby

トレーサーをスタンバイモードに設定します。トレーサーはインストールされますが、自動的に有効にはなりません。トレーサーは、後で Java、JMX、またはツールから明示的に有効にできます。

boolean

false

quarkus.camel.trace.backlog-size

最後のメッセージをいくつトレーサーに保持するかを定義します。

int

1000

quarkus.camel.trace.remove-on-dump

トレーサーがダンプするときに、トレースされたすべてのメッセージを削除するかどうか。デフォルトでは、メッセージは削除されるため、ダンプには以前にダンプされたメッセージは含まれません。

boolean

true

quarkus.camel.trace.body-max-chars

トレースされたメッセージ内のメッセージ本文を最大サイズに制限します。サイズを無制限にするには、0 または負の値を使用します。

int

131072

quarkus.camel.trace.body-include-streams

ストリームベースのメッセージのメッセージ本文を含めるかどうか。有効にした場合、ストリームを後で再度読み取れなくなる可能性があることに注意してください。ストリームキャッシュの詳細を参照してください。

boolean

false

quarkus.camel.trace.body-include-files

ファイルベースのメッセージのメッセージ本文を含めるかどうか。オーバーヘッドは、ファイルからファイルのコンテンツを読み取る必要があることです。

boolean

true

quarkus.camel.trace.include-exchange-properties

トレースされたメッセージに交換プロパティーを含めるかどうか。

boolean

true

quarkus.camel.trace.include-exchange-variables

トレースされたメッセージに交換変数を含めるかどうか。

boolean

true

quarkus.camel.trace.include-exception

交換が失敗した場合にトレースされたメッセージに例外を含めるかどうか。

boolean

true

quarkus.camel.trace.trace-rests

Rest DSL から作成されたルートをトレースするかどうか。

boolean

false

quarkus.camel.trace.trace-templates

ルートテンプレートまたは Kamelet から作成されたルートをトレースするかどうか。

boolean

false

quarkus.camel.trace.trace-pattern

ルートまたはノード ID によるトレースのフィルター。

string

 

quarkus.camel.trace.trace-filter

トレースメッセージのフィルター。

string

 

quarkus.camel.type-converter.statistics-enabled

型コンバーターの統計が有効かどうか。デフォルトでは、型コンバータの使用率統計は無効になっています。統計を有効にすると、負荷が非常に大きい場合にパフォーマンスに若干の影響が出ることに注意してください。

boolean

false

quarkus.camel.main.shutdown.timeout

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

Duration image::icons/circle-question.svg[title=More information about the Duration format]

PT3S

quarkus.camel.main.arguments.on-unknown

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

fail, warn, ignore

warn

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

duration のフォーマット

duration の値を書き込むには、標準の java.time.Duration フォーマットを使用します。詳細は、Duration#parse() Java API ドキュメント を参照してください。

数字で始まる簡略化されたフォーマットも使用できます。

  • 値が数値のみの場合は、秒単位の時間を表します。
  • 数字の後に ms が続く値は、ミリ秒単位の時間を表します。

その他の場合は、解析のために簡略化されたフォーマットが java.time.Duration フォーマットに変換されます。

  • 数字の後に hm、または s が続く値には、接頭辞 PT が付きます。
  • 数字の後に d が続く値は、接頭辞 P が付きます。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る