5.2. JBoss Data Grid での Camel を用いたルーティング

Camel のルーティングは、バックグラウンドでメッセージを移動するプロセスチェーンです。以下は、特定のキーのキャッシュから値を読み出すルートの例になります。
from("direct:start")
        .setHeader(InfinispanConstants.OPERATION, constant(InfinispanConstants.GET))
        .setHeader(InfinispanConstants.KEY, constant("123"))
        .to("infinispan://localhost?cacheContainer=#cacheContainer");
XML 設定を使用してルーティングを実行することもできます。以下の例は、 camel-jbossdatagrid の local-camel-producer を示しています。これは、camel-jbossdatagrid コンポーネントを使用して、local-cache モジュールによって作成された埋め込みキャッシュにデータを送信する Camel ルートです。
<camelContext id="local-producer" xmlns="http://camel.apache.org/schema/blueprint">
	<route>
		<from uri="timer://local?fixedRate=true&amp;period=5000"/>
		<setHeader headerName="CamelInfinispanKey">
			<property>CamelTimerCounter</property>
		</setHeader>
		<setHeader headerName="CamelInfinispanValue">
			<property>CamelTimerCounter</property>
		</setHeader>
		<to uri="infinispan://foo?cacheContainer=#cacheManager"/>
		<to uri="log:local-put?showAll=true"/>
	</route>
</camelContext>
この例では、cacheManager がインスタンス化される必要があります。
Spring XML の cacheManager Bean は以下のようにインスタンス化できます。
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
  <constructor-arg type="java.lang.String" value="infinispan.xml"/>
</bean>
以下は、Blueprint XML を使用して cacheManager Bean をインスタンス化する方法を示しています。
<bean id="cacheManager" class="org.infinispan.manager.DefaultCacheManager" init-method="start" destroy-method="stop">
      <argument value="infinispan.xml" />
</bean>

注記

Spring XML および Blueprint XML の例は、キャッシュの設定に設定ファイル infinispan.xml を使用します。このファイルはクラスパスに存在する必要があります。