Red Hat Training

A Red Hat training course is available for Red Hat Fuse

Chapter 10. System Management


The system management patterns describe how to monitor, test, and administer a messaging system.

10.1. Detour


The Detour from the Introducing Enterprise Integration 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 this 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..
    .when().method("controlBean", "isDetour").to("mock:detour").end()
  <from uri="direct:start"/>
        <method bean="controlBean" method="isDetour"/>
	<to uri="mock:detour"/>
    <to uri="mock:result"/>

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: