第12章 システム管理

概要

システム管理パターンは、メッセージングシステムを監視、テスト、および管理する方法を表しています。

12.1. Detour

Detour

3章エンタープライズ統合パターンの導入 からの Detour では、制御条件が満たされる場合に追加のステップによりメッセージを送信できます。これは、追加の検証、テスト、および必要時のコードのデバッグを行う場合に役立ちます。

detour

この例では、ルートの途中で mock:detour のエンドポイントまで条件付きで迂回する from("direct:start").to("mock:result") のようなルートを基本的に持っています。

from("direct:start").choice()
    .when().method("controlBean", "isDetour").to("mock:detour").end()
    .to("mock:result");

Spring XML エクステンション の使用

<route>
  <from uri="direct:start"/>
    <choice>
      <when>
        <method bean="controlBean" method="isDetour"/>
	<to uri="mock:detour"/>
      </when>
    </choice>
    <to uri="mock:result"/>
  </split>
</route>

detour がオンまたはオフであるかどうかは ControlBean によって決定されます。したがって、detour がオンのとき、メッセージは mock:detour にルーティングされ、続いて mock:result にルーティングされます。detour がオフになると、メッセージは mock:result にルーティングされます。

詳細は、以下のサンプルソースを確認してください。

camel-core/src/test/java/org/apache/camel/processor/DetourTest.java