use of org.apache.camel.builder.DefaultErrorHandlerBuilder in project camel by apache.
the class OnExceptionContinuedIssueTest method testOnExceptionWrappedMatch.
@Test
public void testOnExceptionWrappedMatch() throws Exception {
final DefaultErrorHandlerBuilder defaultErrorHandlerBuilder = new DeadLetterChannelBuilder("direct:dead");
// run fast
defaultErrorHandlerBuilder.redeliveryDelay(0);
defaultErrorHandlerBuilder.maximumRedeliveries(2);
context.setErrorHandlerBuilder(defaultErrorHandlerBuilder);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
context.setTracing(false);
onException(OrderFailedException.class).maximumRedeliveries(0).continued(true);
from("direct:dead").to("log:dead", "mock:dead");
from("direct:order").to("mock:one").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("First Processor Invoked");
throw new OrderFailedException("First Processor Failure");
}
}).to("mock:two").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Second Processor Invoked");
}
}).to("mock:three").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Third Processor Invoked");
throw new RuntimeException("Some Runtime Exception");
}
}).to("mock:four").process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
log.info("Fourth Processor Invoked");
}
});
}
});
context.start();
// we should only get 1 to the DLC when we hit the 3rd route that
// throws the runtime exception
getMockEndpoint("mock:dead").expectedMessageCount(1);
getMockEndpoint("mock:one").expectedMessageCount(1);
getMockEndpoint("mock:two").expectedMessageCount(1);
getMockEndpoint("mock:three").expectedMessageCount(1);
getMockEndpoint("mock:four").expectedMessageCount(0);
template.requestBody("direct:order", "Camel in Action");
assertMockEndpointsSatisfied();
}
use of org.apache.camel.builder.DefaultErrorHandlerBuilder in project camel by apache.
the class ErrorHandlerDefinitionParserTest method testDefaultErrorHandler.
public void testDefaultErrorHandler() {
DefaultErrorHandlerBuilder errorHandler = ctx.getBean("defaultErrorHandler", DefaultErrorHandlerBuilder.class);
assertNotNull(errorHandler);
RedeliveryPolicy policy = errorHandler.getRedeliveryPolicy();
assertNotNull(policy);
assertEquals("Wrong maximumRedeliveries", 2, policy.getMaximumRedeliveries());
assertEquals("Wrong redeliveryDelay", 0, policy.getRedeliveryDelay());
assertEquals("Wrong logStackTrace", false, policy.isLogStackTrace());
errorHandler = ctx.getBean("errorHandler", DefaultErrorHandlerBuilder.class);
assertNotNull(errorHandler);
}
Aggregations