28.6. サンプル
Kamelets は、標準の Camel コンポーネントであるかのように使用できます。たとえば、以下のようにルートテンプレートを作成しているとします。
routeTemplate("setMyBody") .templateParameter("bodyValue") .from("kamelet:source") .setBody().constant("{{bodyValue}}");
routeTemplate("setMyBody")
.templateParameter("bodyValue")
.from("kamelet:source")
.setBody().constant("{{bodyValue}}");
注記
Kamelet コンポーネントが、呼び出し元プロセッサーへのマテリアル化されたルートをワイド化できるようにするには、ルートの入出力エンドポイントを識別でき、これは kamele:source
を使用して出力エンドポイントの入力エンドポイントと kamelet:sink
をマークして実行する必要があります。
次に、以下のようにテンプレートをインスタンス化し、呼び出すことができます。
from("direct:setMyBody") .to("kamelet:setMyBody?bodyValue=myKamelet");
from("direct:setMyBody")
.to("kamelet:setMyBody?bodyValue=myKamelet");
背後では、Kamelet コンポーネントは次のことを行います。
-
指定された
templateId
パスパラメーターで識別されるルートテンプレートからルートをインスタンス化します(この場合はsetBody
)。 -
これは
直接
コンポーネントのように動作し、現在のルートをマテリアル化されたルートに接続します。
プログラムを使用して実行する必要がある場合は、以下のようになります。