Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第94章 Kura
Kura コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura コンポーネントは、Camel 2.15 以降で利用できます。
このドキュメントページでは、Camel と Eclipse Kura M2M ゲートウェイの統合オプションについて説明します。Camel ルートを Eclipse Kura にデプロイする一般的な理由は、エンタープライズ統合パターンと Camel コンポーネントをメッセージング M2M ゲートウェイに提供することです。たとえば、Rusberry PI に Kura をインストールし、Kura サービスを使用してその Raspberry PI に接続されているセンサーから温度を読み、最後に Camel EIP およびコンポーネントを使用して現在の温度値をデータセンターサービスに転送する場合があります。
KuraRouter activator リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Eclipse Kura にデプロイされたバンドルは通常、バンドルアクティベーターとして開発され ます。そのため、Apache Camel ルートを Kura にデプロイする最も簡単な方法は、拡張
org.apache.camel.kura.KuraRouter
クラスを含む OSGi バンドルを作成することです。
KuraRouter
は org.osgi.framework.BundleActivator
インターフェイスを実装しているため、Kura バンドルコンポーネントクラス start
および stop
のライフサイクルメソッドを登録する必要があります。
Kura ルーターは独自の OSGi 対応の
CamelContext
を起動します。これは、KuraRouter
を拡張するすべてのクラスに対して、専用の CamelContext
インスタンスがあることを意味します。理想的には、OSGi バンドルごとに KuraRouter
をデプロイすることが推奨されます。
KuraRouter のデプロイ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura ルータークラスを含むバンドルは、OSGi マニフェストに以下のパッケージをインポートする必要があります。
Import-Package: org.osgi.framework;version="1.3.0", org.slf4j;version="1.6.4", org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model, org.apache.camel.component.kura
Import-Package: org.osgi.framework;version="1.3.0",
org.slf4j;version="1.6.4",
org.apache.camel,org.apache.camel.impl,org.apache.camel.core.osgi,org.apache.camel.builder,org.apache.camel.model,
org.apache.camel.component.kura
Camel コンポーネントはランタイムレベルでサービスとして解決されるため、ルートで使用する予定のすべての Camel コンポーネントバンドルをインポートする必要がないことに注意してください。
ルーターバンドルをデプロイする前に、以下の Camel コアバンドルをデプロイ(Kura GoGo シェルを使用)していることを確認してください。
さらに、ルートで使用する予定のすべてのコンポーネント:
install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar start <camel-stream-bundle-id>
install file:///home/user/.m2/repository/org/apache/camel/camel-stream/2.15.0/camel-stream-2.15.0.jar
start <camel-stream-bundle-id>
最後に、ルーターバンドルをデプロイします。
install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar start <your-bundle-id>
install file:///home/user/.m2/repository/com/example/myrouter/1.0/myrouter-1.0.jar
start <your-bundle-id>
KuraRouter ユーティリティー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura ルーターベースクラスは多くの便利なユーティリティーを提供します。本セクションでは、各項目を取り上げます。
SLF4J ロガー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura はロギング目的で SLF4J ファサードを使用します。protected member
log
は、指定の Kura ルーターに関連付けられた SLF4J ロガーインスタンスを返します。
BundleContext リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
protected member
bundleContext
は、指定の Kura ルーターに関連付けられたバンドルコンテキストを返します。
CamelContext リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
protected member
camelContext
は、指定の Kura ルーターに関連付けられた CamelContext
です。
ProducerTemplate リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
protected member
producerTemplate
は、指定の Camel コンテキストに関連付けられた ProducerTemplate
インスタンスです。
ConsumerTemplate リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
protected member
consumerTemplate
は、指定の Camel コンテキストに関連付けられた ConsumerTemplate
インスタンスです。
OSGi サービスリゾルバー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
OSGi サービスリゾルバー(
service(Class<T> serviceType)
)を使用して、OSGi バンドルコンテキストからタイプでサービスを簡単に取得できます。
service が見つからない場合は、
null
値が返されます。サービスが利用できない場合にアプリケーションが失敗する場合は、代わりに requiredService(Class)
メソッドを使用します。サービスが見つからない場合、requiredService
は IllegalStateException
を出力します。
KuraRouter アクティベーターコールバック リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura ルーターには、Camel ルーターの動作方法をカスタマイズするために使用できるライフサイクルコールバックが含まれています。たとえば、以前の起動直前にルーターに関連付けられた
CamelContext
インスタンスを設定するには、KuraRouter
クラスの beforeStart
メソッドを上書きします。
ConfigurationAdmin からの XML ルートの読み込み リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
サーバー設定からルートの XML 定義を読み取る必要がある場合があります。この IoT ゲートウェイでは、無線の再デプロイメントコストが大きくなる可能性があるという一般的なシナリオになります。この要件に対応するには、
KuraRouter
が OSGi ConfigurationAdmin
を使用して、kura.camel
PID から kura.camel.BUNDLE-SYMBOLIC-NAME.route
プロパティーを検索します。この方法では、デプロイされた KuraRouter
ごとに Camel XML ルートファイルを定義できます。ルートを更新するには、適切な設定プロパティーを編集し、関連するバンドルを再起動するだけです。kura.camel.BUNDLE-SYMBOLIC-NAME.route
プロパティーの内容は、Camel XML ルートファイルになります。以下に例を示します。
宣言型 OSGi サービスとして Kura ルーターをデプロイする リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Kura ルーターを宣言型 OSGi サービスとしてデプロイする場合は、
KuraRouter
で提供される activate
および deactivate
メソッドを使用できます。
<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true"> <implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/> </scr:component>
<scr:component name="org.eclipse.kura.example.camel.MyKuraRouter" activate="activate" deactivate="deactivate" enabled="true" immediate="true">
<implementation class="org.eclipse.kura.example.camel.MyKuraRouter"/>
</scr:component>