第 12 章 系统管理

摘要

系统管理模式描述了如何监控、测试和管理消息传递系统。

12.1. detour

detour

第 3 章 企业级集成模式简介 中的 Detour 允许您在满足控制条件时通过额外的步骤发送信息。它可用于根据需要打开额外的验证、测试、调试代码。

detour

示例

在本例中,我们基本上有一个类似于 from ("direct:start").to ("mock:result") 的路由,在路由中间有一个条件 detour to the mock:detour 端点。

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>

ControlBean 认为是开启还是关闭。因此,当消息出现时,消息会被路由到 mock:detour,然后 mock:result。停用后,消息将路由到 mock:result

有关详情请查看以下示例源:

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