2.10.3. 追加の Camel Quarkus 設定


2.10.3.1. Simple 言語

2.10.3.1.1. OGNL 表記の使用

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

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

---
simple("${body.address}")
---

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

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

${mandatoryBodyAs(TYPE)}${type:package.Enum.CONSTANT}、または ${body} is TYPE などの単純な式から型を動的に解決する場合は、反映するために手動で一部のクラスを登録する必要がある場合があります。

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

---
simple("${body} is 'java.nio.ByteBuffer'")
---

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

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

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

from("direct:start").transform().simple("resource:classpath:mysimple.txt");

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

quarkus.native.resources.includes = mysimple.txt
2.10.3.1.4. ネイティブモードのプロパティーを介したカスタム Bean の設定

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

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

---
camel.beans.customBeanWithSetterInjection = #class:org.example.PropertiesCustomBeanWithSetterInjection
camel.beans.customBeanWithSetterInjection.counter = 123
---

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

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

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.main.enabled

true の場合、すべての camel-main 機能が有効になります。それ以外の場合、camel-main 機能は有効になりません。

boolean

true

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

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.