Chapter 10. System Management
Abstract
The system management patterns describe how to monitor, test, and administer a messaging system.
10.1. Detour
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.
Example
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..
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"/> </split> </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: