org.apache.camel.processor
Class DeadLetterChannel

java.lang.Object
  extended by org.apache.camel.support.ServiceSupport
      extended by org.apache.camel.support.ChildServiceSupport
          extended by org.apache.camel.processor.ErrorHandlerSupport
              extended by org.apache.camel.processor.RedeliveryErrorHandler
                  extended by org.apache.camel.processor.DeadLetterChannel
All Implemented Interfaces:
AsyncProcessor, Processor, ErrorHandler, Service, ShutdownableService, StatefulService, SuspendableService

public class DeadLetterChannel
extends RedeliveryErrorHandler

Implements a Dead Letter Channel after attempting to redeliver the message using the RedeliveryPolicy

Version:

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.camel.processor.RedeliveryErrorHandler
RedeliveryErrorHandler.RedeliveryData
 
Field Summary
 
Fields inherited from class org.apache.camel.processor.RedeliveryErrorHandler
camelContext, deadLetter, deadLetterUri, executorService, logger, output, outputAsync, redeliveryEnabled, redeliveryPolicy, redeliveryProcessor, retryWhilePolicy, useOriginalMessagePolicy
 
Fields inherited from class org.apache.camel.processor.ErrorHandlerSupport
exceptionPolicies, exceptionPolicy, log
 
Fields inherited from class org.apache.camel.support.ServiceSupport
shutdown, shuttingdown, started, starting, stopped, stopping, suspended, suspending
 
Constructor Summary
DeadLetterChannel(CamelContext camelContext, Processor output, CamelLogger logger, Processor redeliveryProcessor, RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy, Processor deadLetter, String deadLetterUri, boolean useOriginalBodyPolicy, Predicate retryWhile, ScheduledExecutorService executorService)
          Creates the dead letter channel.
 
Method Summary
protected  Predicate getDefaultHandledPredicate()
           
 boolean isDeadLetterChannel()
          Whether this error handler handles exhausted errors by moving the exchange to a dead letter channel.
 void process(Exchange exchange)
          Processes the message exchange
 String toString()
           
 
Methods inherited from class org.apache.camel.processor.RedeliveryErrorHandler
defensiveCopyExchangeIfNeeded, deliverToFailureProcessor, deliverToOnRedeliveryProcessor, determineRedeliveryDelay, doShutdown, doStart, doStop, getDeadLetter, getDeadLetterUri, getLogger, getOutput, getRedeliveryPolicy, handleException, isCancelledOrInterrupted, isDone, isRunAllowed, isUseOriginalMessagePolicy, prepareExchangeAfterFailure, prepareExchangeForContinue, prepareExchangeForRedelivery, process, processAsyncErrorHandler, processErrorHandler, shouldHandleException, supportTransacted
 
Methods inherited from class org.apache.camel.processor.ErrorHandlerSupport
addExceptionPolicy, createDefaultExceptionPolicyStrategy, getExceptionPolicy, setExceptionPolicy
 
Methods inherited from class org.apache.camel.support.ChildServiceSupport
addChildService, removeChildService, shutdown, start, start, stop
 
Methods inherited from class org.apache.camel.support.ServiceSupport
doResume, doSuspend, getStatus, getVersion, isStarted, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, suspend
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DeadLetterChannel

public DeadLetterChannel(CamelContext camelContext,
                         Processor output,
                         CamelLogger logger,
                         Processor redeliveryProcessor,
                         RedeliveryPolicy redeliveryPolicy,
                         ExceptionPolicyStrategy exceptionPolicyStrategy,
                         Processor deadLetter,
                         String deadLetterUri,
                         boolean useOriginalBodyPolicy,
                         Predicate retryWhile,
                         ScheduledExecutorService executorService)
Creates the dead letter channel.

Parameters:
camelContext - the camel context
output - outer processor that should use this dead letter channel
logger - logger to use for logging failures and redelivery attempts
redeliveryProcessor - an optional processor to run before redelivery attempt
redeliveryPolicy - policy for redelivery
exceptionPolicyStrategy - strategy for onException handling
deadLetter - the failure processor to send failed exchanges to
deadLetterUri - an optional uri for logging purpose
useOriginalBodyPolicy - should the original IN body be moved to the dead letter queue or the current exchange IN body?
retryWhile - retry while
executorService - the ScheduledExecutorService to be used for redelivery thread pool. Can be null.
Method Detail

process

public void process(Exchange exchange)
             throws Exception
Description copied from interface: Processor
Processes the message exchange

Specified by:
process in interface Processor
Overrides:
process in class RedeliveryErrorHandler
Parameters:
exchange - the message exchange
Throws:
Exception - if an internal processing error has occurred.

toString

public String toString()
Overrides:
toString in class Object

getDefaultHandledPredicate

protected Predicate getDefaultHandledPredicate()
Overrides:
getDefaultHandledPredicate in class RedeliveryErrorHandler

isDeadLetterChannel

public boolean isDeadLetterChannel()
Description copied from class: ErrorHandlerSupport
Whether this error handler handles exhausted errors by moving the exchange to a dead letter channel.

Overrides:
isDeadLetterChannel in class ErrorHandlerSupport


Apache CAMEL