タグリスト

概要

Apache CamelでSpring XMLを使う際の大枠です。XMLのスキーマについては、使用するコンポーネントによっては追加が必要です。

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xsi:schemaLocation="
         http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd 
         http://camel.apache.org/schema/spring 
         http://camel.apache.org/schema/spring/camel-spring.xsd ">
    
    <!-- Springの設定 -->
    
    <camelContext xmlns="http://camel.apache.org/schema/spring">
    
      <!-- CamelContexttの設定  -->
    
        <root>
        
          <!-- ルートの設定 -->
        
        </root>   
        
    </camelContext>
   
   
</beans>

Springの設定

BridgePropertyPlaceholder

外部定義したプロパティを指定します。プロパティファイルによる値の設定参照。

<bean id="bridgePropertyPlaceholder"
      class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
    <property name="location"
        value="classpath:com/buildria/camel/example/basis/example.properties"/>
</bean>

CamelContextの設定

<camelContext>の属性については、CamelContextの属性参照。

threadPoolProfile

スレッドプールプロファイルを定義します。スレッド参照。

        <threadPoolProfile id="MyDefaultThreadPool" defaultProfile="true"
                           poolSize="5" maxPoolSize="5" maxQueueSize="10000"
                           keepAliveTime="60" rejectedPolicy="CallerRuns" />

threadPool

スレッドプールを定義します。スレッド参照。

        <threadPool id="MyCustomThreadPool" 
                           poolSize="10" maxPoolSize="10" threadName="MyCustomThread" />

propertyPlaceholder

外部定義したプロパティファイルを指定します。プロパティファイルによる値の設定参照。

    <propertyPlaceholder
       id="properties"
       location="classpath:com/buildria/camel/example/basis/example.properties"/>

endpoint

ルートの設定

from

to

process

Processorインタフェースを実装したインスタンスを実行します。Beanとの統合参照。

    <process ref="BodyUpdateProcessor"/>

bean

beanタグで定義したBeanの指定したメソッドを実行します。Beanとの統合参照。

  <bean ref="BodyUpdater" method="toUpperCase" />

choice ~ when ~ otherwise

条件により処理を分岐します。Content Based Router参照。

        <choice>
            <when>
                <simple>${header.type} == 'A'</simple>
                <log message="(2) Adding ${body} ..." />
            </when>
            <otherwise>
                <log message="(4) Unknown Type: ${header.type}" />
            </otherwise>
        </choice>

routingslip

静的にルーチングルールを設定する。Routing Slip参照。

        <routingSlip uriDelimiter="#" ignoreInvalidEndpoints="true" >
            <simple>${header.routingSlipHeader}</simple>
        </routingSlip>

filter

特定の条件でフィルタリングを行う。Message Filter参照。

        <filter>
            <simple>${header.type} == 'A'</simple>
            <log message="(2) filtered ${body}" />
        </filter>

split

分割処理を行う。Splitter参照。

        <split>
            <simple>${body}</simple>
            <log message="(2) ${body}." />
        </split>  

aggregator

集約処理を行う。Aggregator参照。

        <aggregate strategyRef="MyAggregationStrategy"
                   completionSize="3">
            <correlationExpression>
                <simple>${header.type}</simple>
            </correlationExpression>
            <log message="(2) aggregated: ${body}" />
        </aggregate>  

log

    <log login="DEBUG" logName="com.buildria.camel.example" 
            marker="boundary" message="process start" />