use of org.apache.camel.processor.RedeliveryPolicy in project camel by apache.
the class ErrorHandlerDefinitionParserTest method testDeadLetterErrorHandler.
public void testDeadLetterErrorHandler() {
DeadLetterChannelBuilder errorHandler = ctx.getBean("deadLetterErrorHandler", DeadLetterChannelBuilder.class);
assertNotNull(errorHandler);
assertEquals("Get wrong deadletteruri", "log:dead", errorHandler.getDeadLetterUri());
RedeliveryPolicy policy = errorHandler.getRedeliveryPolicy();
assertNotNull(policy);
assertEquals("Wrong maximumRedeliveries", 2, policy.getMaximumRedeliveries());
assertEquals("Wrong redeliveryDelay", 1000, policy.getRedeliveryDelay());
assertEquals("Wrong logStackTrace", true, policy.isLogHandled());
assertEquals("Wrong asyncRedeliveryDelayed", true, policy.isAsyncDelayedRedelivery());
}
use of org.apache.camel.processor.RedeliveryPolicy in project camel by apache.
the class ErrorHandlerTest method testEndpointConfiguration.
public void testEndpointConfiguration() throws Exception {
SpringCamelContext context = applicationContext.getBeansOfType(SpringCamelContext.class).values().iterator().next();
List<Route> list = context.getRoutes();
assertEquals("Number routes created" + list, 2, list.size());
for (Route route : list) {
EventDrivenConsumerRoute consumerRoute = assertIsInstanceOf(EventDrivenConsumerRoute.class, route);
Channel channel = unwrapChannel(consumerRoute.getProcessor());
DeadLetterChannel deadLetterChannel = assertIsInstanceOf(DeadLetterChannel.class, channel.getErrorHandler());
RedeliveryPolicy redeliveryPolicy = deadLetterChannel.getRedeliveryPolicy();
assertEquals("getMaximumRedeliveries()", 1, redeliveryPolicy.getMaximumRedeliveries());
assertEquals("isUseExponentialBackOff()", true, redeliveryPolicy.isUseExponentialBackOff());
}
}
use of org.apache.camel.processor.RedeliveryPolicy in project camel by apache.
the class ErrorHandlerTest method testConfigureDeadLetterChannelWithCustomRedeliveryPolicy.
public void testConfigureDeadLetterChannelWithCustomRedeliveryPolicy() throws Exception {
// START SNIPPET: e4
RouteBuilder builder = new RouteBuilder() {
public void configure() {
// configures dead letter channel to use seda queue for errors and use at most 2 redelveries
// and exponential backoff
errorHandler(deadLetterChannel("seda:errors").maximumRedeliveries(2).useExponentialBackOff());
// here is our route
from("seda:a").to("seda:b");
}
};
// END SNIPPET: e4
List<Route> list = getRouteList(builder);
assertEquals("Number routes created" + list, 1, list.size());
for (Route route : list) {
Endpoint key = route.getEndpoint();
assertEquals("From endpoint", "seda://a", key.getEndpointUri());
EventDrivenConsumerRoute consumerRoute = assertIsInstanceOf(EventDrivenConsumerRoute.class, route);
Processor processor = consumerRoute.getProcessor();
Channel channel = unwrapChannel(processor);
DeadLetterChannel deadLetterChannel = assertIsInstanceOf(DeadLetterChannel.class, channel.getErrorHandler());
RedeliveryPolicy redeliveryPolicy = deadLetterChannel.getRedeliveryPolicy();
assertEquals("getMaximumRedeliveries()", 2, redeliveryPolicy.getMaximumRedeliveries());
assertEquals("isUseExponentialBackOff()", true, redeliveryPolicy.isUseExponentialBackOff());
}
}
use of org.apache.camel.processor.RedeliveryPolicy in project camel by apache.
the class DefaultErrorHandlerBuilder method createRedeliveryPolicy.
protected RedeliveryPolicy createRedeliveryPolicy() {
RedeliveryPolicy policy = new RedeliveryPolicy();
policy.disableRedelivery();
return policy;
}
use of org.apache.camel.processor.RedeliveryPolicy in project camel by apache.
the class LoggingErrorHandlerBuilder method createErrorHandler.
public Processor createErrorHandler(final RouteContext routeContext, final Processor processor) {
CamelLogger logger = new CamelLogger(log, level);
// configure policy to use the selected logging level, and only log exhausted
RedeliveryPolicy policy = new RedeliveryPolicy();
policy.setLogExhausted(true);
policy.setRetriesExhaustedLogLevel(level);
policy.setLogStackTrace(true);
policy.setLogRetryAttempted(false);
policy.setRetryAttemptedLogLevel(LoggingLevel.OFF);
policy.setLogRetryStackTrace(false);
policy.setLogContinued(false);
policy.setLogHandled(false);
LoggingErrorHandler handler = new LoggingErrorHandler(routeContext.getCamelContext(), processor, logger, policy, getExceptionPolicyStrategy());
configure(routeContext, handler);
return handler;
}
Aggregations