294.5. Apache Karaf でバンドルを実行する

バンドルが mvn install でビルドされると、デプロイメントする準備が整います。 バンドルを Apache Karaf にデプロイするには、Karaf コマンドラインで次の手順を実行します。

バンドルを Apache Karaf にデプロイする

# Add Camel feature repository
karaf@root> features:chooseurl camel 2.15-SNAPSHOT
 
# Install camel-scr feature
karaf@root> features:install camel-scr
 
# Install commons-lang, used in the example route to validate parameters
karaf@root> osgi:install mvn:commons-lang/commons-lang/2.6
 
# Install and start your bundle
karaf@root> osgi:install -s mvn:example/camel-scr-example/1.0-SNAPSHOT
 
# See how it's running
karaf@root> log:tail -n 10
 
Press ctrl-c to stop watching the log.

294.5.1. デフォルト設定のオーバーライド

デフォルトでは、サービスコンポーネントの設定 PID は、そのクラスの完全修飾名と同じです。Karaf の config:* コマンドを使用して、サンプルバンドルのプロパティーを変更できます。

プロパティーをオーバーライドする

# Override 'messageOk' property
karaf@root> config:propset -p example.CamelScrExample messageOk "This is better logging"

または、Karaf の etc フォルダーにあるプロパティーファイルを編集して、設定を変更することもできます。

294.5.2. Camel SCR バンドルをテンプレートとして使用する

たとえば from → to など、頻繁に使用する統合パターンを実装する Camel SCR バンドルがあるとします。成功/失敗のログ記録と再配信は、サンプルルートが実装するパターンでもあります。インスタンスごとに個別のバンドルを作成したくない場合があります。心配はいりません。SCR が対応します。

サービスコンポーネントの設定 PID を作成しますが、末尾にダッシュを追加すると、SCR はその設定を使用してコンポーネントの新しいインスタンスを作成します。

新しいサービスコンポーネントインスタンスの作成

# Create a PID with a tail
karaf@root> config:edit example.CamelScrExample-anotherone
 
# Override some properties
karaf@root> config:propset camelContextId my-other-context
karaf@root> config:propset to "file://removeme?fileName=removemetoo.txt"
 
# Save the PID
karaf@root> config:update

これにより、オーバーライドされたプロパティーで新しい CamelContext が開始されます。なんと便利なんでしょう。