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.
Reposts