public class DefaultErrorHandlerBuilder extends ErrorHandlerBuilderSupport
Modifier and Type | Field and Description |
---|---|
protected boolean |
asyncDelayedRedelivery |
protected Endpoint |
deadLetter |
protected boolean |
deadLetterHandleNewException |
protected String |
deadLetterUri |
protected ScheduledExecutorService |
executorService |
protected String |
executorServiceRef |
protected Processor |
failureProcessor |
protected CamelLogger |
logger |
protected Processor |
onRedelivery |
protected RedeliveryPolicy |
redeliveryPolicy |
protected Predicate |
retryWhile |
protected String |
retryWhileRef |
protected boolean |
useOriginalMessage |
Constructor and Description |
---|
DefaultErrorHandlerBuilder() |
addErrorHandlers, cloneBuilder, configure, exceptionPolicyStrategy, getErrorHandlers, getExceptionPolicyStrategy, getRouteId, removeOnExceptionList, setErrorHandlers, setExceptionPolicyStrategy
protected CamelLogger logger
protected RedeliveryPolicy redeliveryPolicy
protected Processor onRedelivery
protected Predicate retryWhile
protected String retryWhileRef
protected Processor failureProcessor
protected Endpoint deadLetter
protected String deadLetterUri
protected boolean deadLetterHandleNewException
protected boolean useOriginalMessage
protected boolean asyncDelayedRedelivery
protected String executorServiceRef
protected ScheduledExecutorService executorService
public DefaultErrorHandlerBuilder()
public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception
ErrorHandlerFactory
routeContext
- the route contextprocessor
- the outer processorException
- is thrown if the error handler could not be createdpublic boolean supportTransacted()
ErrorHandlerBuilder
public ErrorHandlerBuilder cloneBuilder()
ErrorHandlerBuilder
RouteBuilder
has its private builder
to use, to avoid changes from one RouteBuilder
to influence the
others.
This is needed by the current Camel 2.x architecture.ErrorHandlerBuilder
protected void cloneBuilder(DefaultErrorHandlerBuilder other)
public DefaultErrorHandlerBuilder backOffMultiplier(double backOffMultiplier)
public DefaultErrorHandlerBuilder collisionAvoidancePercent(double collisionAvoidancePercent)
@Deprecated public DefaultErrorHandlerBuilder redeliverDelay(long delay)
redeliveryDelay(long)
insteadpublic DefaultErrorHandlerBuilder redeliveryDelay(long delay)
public DefaultErrorHandlerBuilder delayPattern(String delayPattern)
public DefaultErrorHandlerBuilder maximumRedeliveries(int maximumRedeliveries)
public DefaultErrorHandlerBuilder disableRedelivery()
public DefaultErrorHandlerBuilder maximumRedeliveryDelay(long maximumRedeliveryDelay)
public DefaultErrorHandlerBuilder useCollisionAvoidance()
public DefaultErrorHandlerBuilder useExponentialBackOff()
public DefaultErrorHandlerBuilder retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel)
public DefaultErrorHandlerBuilder retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel)
public DefaultErrorHandlerBuilder logStackTrace(boolean logStackTrace)
public DefaultErrorHandlerBuilder logRetryStackTrace(boolean logRetryStackTrace)
public DefaultErrorHandlerBuilder logHandled(boolean logHandled)
public DefaultErrorHandlerBuilder logNewException(boolean logNewException)
public DefaultErrorHandlerBuilder logExhausted(boolean logExhausted)
public DefaultErrorHandlerBuilder logExhaustedMessageHistory(boolean logExhaustedMessageHistory)
public DefaultErrorHandlerBuilder exchangeFormatterRef(String exchangeFormatterRef)
public DefaultErrorHandlerBuilder asyncDelayedRedelivery()
RedeliveryPolicy.setAsyncDelayedRedelivery(boolean)
public DefaultErrorHandlerBuilder allowRedeliveryWhileStopping(boolean allowRedeliveryWhileStopping)
allowRedeliveryWhileStopping
- true to allow redelivery, false to reject redeliveriespublic DefaultErrorHandlerBuilder executorServiceRef(String ref)
ref
- reference to a scheduled thread poolpublic DefaultErrorHandlerBuilder logger(CamelLogger logger)
logger
- the loggerpublic DefaultErrorHandlerBuilder loggingLevel(LoggingLevel level)
level
- the logging levelpublic DefaultErrorHandlerBuilder log(org.slf4j.Logger log)
log
- the loggerpublic DefaultErrorHandlerBuilder log(String log)
log
- the log namepublic DefaultErrorHandlerBuilder log(Class<?> log)
log
- the log classpublic DefaultErrorHandlerBuilder onRedelivery(Processor processor)
Exchange
before its being redelivered.processor
- the processorpublic DefaultErrorHandlerBuilder retryWhile(Expression retryWhile)
retryWhile
- expression that determines when to stop retryingpublic DefaultErrorHandlerBuilder useOriginalMessage()
Message
when an Exchange
is moved to the dead letter queue.
Notice: this only applies when all redeliveries attempt have failed and the Exchange
is doomed for failure.
Exchange
IN message we use the original
IN message instead. This allows you to store the original input in the dead letter queue instead of the inprogress
snapshot of the IN message.
For instance if you route transform the IN body during routing and then failed. With the original exchange
store in the dead letter queue it might be easier to manually re submit the Exchange
again as the IN message is the same as when Camel received it.
So you should be able to send the Exchange
to the same input.
By default this feature is off.public DefaultErrorHandlerBuilder deadLetterHandleNewException(boolean handleNewException)
Exchange
. This can be used in situations
where you use transactions, and want to use Camel's dead letter channel to deal with exceptions during routing,
but if the dead letter channel itself fails because of a new exception being thrown, then by setting this to false
the new exceptions is propagated back and set on the Exchange
, which allows the transaction
to detect the exception, and rollback.handleNewException
- true to handle (and ignore), false to catch and propagated the exception on the Exchange
@Deprecated public DefaultErrorHandlerBuilder checkException()
deadLetterHandleNewException(boolean)
} with value falsepublic Processor getFailureProcessor()
public void setFailureProcessor(Processor failureProcessor)
public RedeliveryPolicy getRedeliveryPolicy()
public void setRedeliveryPolicy(RedeliveryPolicy redeliveryPolicy)
public CamelLogger getLogger()
public void setLogger(CamelLogger logger)
public Processor getOnRedelivery()
public void setOnRedelivery(Processor onRedelivery)
public Predicate getRetryWhilePolicy(CamelContext context)
public Predicate getRetryWhile()
public void setRetryWhile(Predicate retryWhile)
public String getRetryWhileRef()
public void setRetryWhileRef(String retryWhileRef)
public String getDeadLetterUri()
public void setDeadLetterUri(String deadLetterUri)
public Endpoint getDeadLetter()
public void setDeadLetter(Endpoint deadLetter)
public boolean isDeadLetterHandleNewException()
public void setDeadLetterHandleNewException(boolean deadLetterHandleNewException)
public boolean isUseOriginalMessage()
public void setUseOriginalMessage(boolean useOriginalMessage)
public boolean isAsyncDelayedRedelivery()
public void setAsyncDelayedRedelivery(boolean asyncDelayedRedelivery)
public String getExecutorServiceRef()
public void setExecutorServiceRef(String executorServiceRef)
protected RedeliveryPolicy createRedeliveryPolicy()
protected CamelLogger createLogger()
protected ScheduledExecutorService getExecutorService(CamelContext camelContext)
Apache Camel