4.2. Camel ActiveMQ コンポーネントの設定例

概要

このセクションでは、サンプルの Camel ActiveMQ コンポーネントインスタンスを初期化および設定する方法について説明します。このインスタンスを使用して、Camel ルートで ActiveMQ エンドポイントを定義できます。これにより、Camel ルートがブローカーからメッセージを送受信できるようになります。

前提条件

Camel ActiveMQ コンポーネントに必要なバンドルを定義する camel-activemq 機能は、デフォルトではインストールされませんcamel-activemq 機能をインストールするには、以下のコンソールコマンドを入力します。

JBossFuse:karaf@root> features:install camel-activemq

Camel ActiveMQ コンポーネントのサンプル

次のブループリントのサンプルは、SSL/TLS セキュリティーと JAAS 認証の両方が有効になっている Camel ActiveMQ コンポーネントの完全な設定を示しています。Camel ActiveMQ コンポーネントインスタンスは activemqssl Bean ID と定義されます。つまり、Camel ルート内でエンドポイントを定義するときに使用する activemqssl スキームに関連付けられています。

<?xml version="1.0" encoding="UTF-8"?>
<beans ... >
  ...
  <!--
    Configure the activemqssl component:
  -->
  <bean id="jmsConnectionFactory"
        class="org.apache.activemq.ActiveMQSslConnectionFactory">
    <property name="brokerURL" value="ssl://localhost:61617" />
    <property name="userName" value="Username"/>
    <property name="password" value="Password"/>
    <property name="trustStore" value="/conf/client.ts"/>
    <property name="trustStorePassword" value="password"/>
  </bean>

  <bean id="pooledConnectionFactory"
        class="org.apache.activemq.pool.PooledConnectionFactory">
    <property name="maxConnections" value="8" />
    <property name="maximumActive" value="500" />
    <property name="connectionFactory" ref="jmsConnectionFactory" />
  </bean>

  <bean id="jmsConfig" class="org.apache.camel.component.jms.JmsConfiguration">
    <property name="connectionFactory" ref="pooledConnectionFactory"/>
    <property name="transacted" value="false"/>
    <property name="concurrentConsumers" value="10"/>
  </bean>

  <bean id="activemqssl"
        class="org.apache.activemq.camel.component.ActiveMQComponent">
    <property name="configuration" ref="jmsConfig"/>
  </bean>

</beans>

Camel ルートのサンプル

以下の Camel ルートは、前述の例で定義された Camel ActiveMQ コンポーネントを参照する activemqssl スキームを使用して、ブローカーの security.test キューにメッセージを安全に送信するサンプルエンドポイントを定義します。

<?xml version="1.0" encoding="UTF-8"?>
<beans ...>
  ...
  <camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
      <from uri="timer://myTimer?fixedRate=true&period=5000"/>
      <transform><constant>Hello world!</constant></transform>
      <to uri="activemqssl:security.test"/>
    </route>
  </camelContext>
  ...
</beans>