Search in sources :

Example 6 with RedeliveryPolicy

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());
}
Also used : DeadLetterChannelBuilder(org.apache.camel.builder.DeadLetterChannelBuilder) RedeliveryPolicy(org.apache.camel.processor.RedeliveryPolicy)

Example 7 with RedeliveryPolicy

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());
    }
}
Also used : DeadLetterChannel(org.apache.camel.processor.DeadLetterChannel) Channel(org.apache.camel.Channel) DeadLetterChannel(org.apache.camel.processor.DeadLetterChannel) SpringCamelContext(org.apache.camel.spring.SpringCamelContext) RedeliveryPolicy(org.apache.camel.processor.RedeliveryPolicy) EventDrivenConsumerRoute(org.apache.camel.impl.EventDrivenConsumerRoute) Route(org.apache.camel.Route) EventDrivenConsumerRoute(org.apache.camel.impl.EventDrivenConsumerRoute)

Example 8 with RedeliveryPolicy

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());
    }
}
Also used : Processor(org.apache.camel.Processor) FilterProcessor(org.apache.camel.processor.FilterProcessor) SendProcessor(org.apache.camel.processor.SendProcessor) Endpoint(org.apache.camel.Endpoint) DeadLetterChannel(org.apache.camel.processor.DeadLetterChannel) Channel(org.apache.camel.Channel) DeadLetterChannel(org.apache.camel.processor.DeadLetterChannel) RedeliveryPolicy(org.apache.camel.processor.RedeliveryPolicy) EventDrivenConsumerRoute(org.apache.camel.impl.EventDrivenConsumerRoute) Route(org.apache.camel.Route) EventDrivenConsumerRoute(org.apache.camel.impl.EventDrivenConsumerRoute)

Example 9 with RedeliveryPolicy

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;
}
Also used : RedeliveryPolicy(org.apache.camel.processor.RedeliveryPolicy)

Example 10 with RedeliveryPolicy

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;
}
Also used : CamelLogger(org.apache.camel.util.CamelLogger) LoggingErrorHandler(org.apache.camel.processor.LoggingErrorHandler) RedeliveryPolicy(org.apache.camel.processor.RedeliveryPolicy)

Aggregations

RedeliveryPolicy (org.apache.camel.processor.RedeliveryPolicy)10 Channel (org.apache.camel.Channel)3 Processor (org.apache.camel.Processor)3 Route (org.apache.camel.Route)3 EventDrivenConsumerRoute (org.apache.camel.impl.EventDrivenConsumerRoute)3 DeadLetterChannel (org.apache.camel.processor.DeadLetterChannel)3 SendProcessor (org.apache.camel.processor.SendProcessor)2 UnsatisfiedResolutionException (javax.enterprise.inject.UnsatisfiedResolutionException)1 CamelContext (org.apache.camel.CamelContext)1 Endpoint (org.apache.camel.Endpoint)1 DeadLetterChannelBuilder (org.apache.camel.builder.DeadLetterChannelBuilder)1 DefaultErrorHandlerBuilder (org.apache.camel.builder.DefaultErrorHandlerBuilder)1 RedeliveryPolicyFactoryBean (org.apache.camel.cdi.xml.RedeliveryPolicyFactoryBean)1 FilterProcessor (org.apache.camel.processor.FilterProcessor)1 LoggingErrorHandler (org.apache.camel.processor.LoggingErrorHandler)1 SpringCamelContext (org.apache.camel.spring.SpringCamelContext)1 CamelLogger (org.apache.camel.util.CamelLogger)1