At one point in our latest project using Apache Camel, I wanted to stop a message from being further processed depending on a condition. This is quite easy to do with the route builder, for example:
from("direct:example") .choice() .when(header("someheader").isEqualTo("bla")) .stop() .end()
If you already know that a message needs to be stopped right away in a Processor or a AggregationStrategy, there is an easy way to signal this without a seperate “stop-branch” in the route. You simply set the header ROUTE_STOP to TRUE like this:
if (....) { // stop here original.setProperty(Exchange.ROUTE_STOP, Boolean.TRUE); return original; }
And the message will not be further processed.