Detour - 6.3

Talend ESB Mediation Developer Guide

EnrichVersion
6.3
EnrichProdName
Talend Data Fabric
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
task
Design and Development
EnrichPlatform
Talend ESB

The Detour from the EIP patterns allows you to send messages through additional steps if a control condition is met. It can be useful for turning on extra validation, testing, debugging code when needed.

In the below example we essentially have a route like from("direct:start").to("mock:result") with a conditional detour to the mock:detour endpoint in the middle of the route:

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

Using the Spring XML Extensions

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

whether the detour is turned on or off is decided by the ControlBean. So, when the detour is on the message is routed to mock:detour and then mock:result. When the detour is off, the message is routed to mock:result.

For full details, check the example source here:

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