org.apache.camel.spring.spi
Class TransactionErrorHandler

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.spring.spi.TransactionErrorHandler
All Implemented Interfaces:
org.apache.camel.AsyncProcessor, org.apache.camel.Processor, org.apache.camel.processor.ErrorHandler, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.StatefulService, org.apache.camel.SuspendableService

public class TransactionErrorHandler
extends org.apache.camel.processor.RedeliveryErrorHandler

The Transactional Client EIP pattern.

Version:

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.camel.processor.RedeliveryErrorHandler
org.apache.camel.processor.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
TransactionErrorHandler(org.apache.camel.CamelContext camelContext, org.apache.camel.Processor output, org.apache.camel.util.CamelLogger logger, org.apache.camel.Processor redeliveryProcessor, org.apache.camel.processor.RedeliveryPolicy redeliveryPolicy, org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy exceptionPolicyStrategy, org.springframework.transaction.support.TransactionTemplate transactionTemplate, org.apache.camel.Predicate retryWhile, ScheduledExecutorService executorService, org.apache.camel.LoggingLevel rollbackLoggingLevel)
          Creates the transaction error handler.
 
Method Summary
protected  void doInTransactionTemplate(org.apache.camel.Exchange exchange)
           
 void process(org.apache.camel.Exchange exchange)
           
 boolean process(org.apache.camel.Exchange exchange, org.apache.camel.AsyncCallback callback)
           
protected  void processByErrorHandler(org.apache.camel.Exchange exchange)
          Processes the Exchange using the error handler.
protected  void processInTransaction(org.apache.camel.Exchange exchange)
           
 boolean supportTransacted()
           
 String toString()
           
 
Methods inherited from class org.apache.camel.processor.RedeliveryErrorHandler
defensiveCopyExchangeIfNeeded, deliverToFailureProcessor, deliverToOnRedeliveryProcessor, determineRedeliveryDelay, doShutdown, doStart, doStop, getDeadLetter, getDeadLetterUri, getDefaultHandledPredicate, getLogger, getOutput, getRedeliveryPolicy, handleException, isCancelledOrInterrupted, isDone, isRunAllowed, isUseOriginalMessagePolicy, prepareExchangeAfterFailure, prepareExchangeForContinue, prepareExchangeForRedelivery, processAsyncErrorHandler, processErrorHandler, shouldHandleException
 
Methods inherited from class org.apache.camel.processor.ErrorHandlerSupport
addExceptionPolicy, createDefaultExceptionPolicyStrategy, getExceptionPolicy, isDeadLetterChannel, 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

TransactionErrorHandler

public TransactionErrorHandler(org.apache.camel.CamelContext camelContext,
                               org.apache.camel.Processor output,
                               org.apache.camel.util.CamelLogger logger,
                               org.apache.camel.Processor redeliveryProcessor,
                               org.apache.camel.processor.RedeliveryPolicy redeliveryPolicy,
                               org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy exceptionPolicyStrategy,
                               org.springframework.transaction.support.TransactionTemplate transactionTemplate,
                               org.apache.camel.Predicate retryWhile,
                               ScheduledExecutorService executorService,
                               org.apache.camel.LoggingLevel rollbackLoggingLevel)
Creates the transaction error handler.

Parameters:
camelContext - the camel context
output - outer processor that should use this default error handler
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
transactionTemplate - the transaction template
retryWhile - retry while
executorService - the ScheduledExecutorService to be used for redelivery thread pool. Can be null.
rollbackLoggingLevel - logging level to use for logging transaction rollback occurred
Method Detail

supportTransacted

public boolean supportTransacted()
Overrides:
supportTransacted in class org.apache.camel.processor.RedeliveryErrorHandler

toString

public String toString()
Overrides:
toString in class Object

process

public void process(org.apache.camel.Exchange exchange)
             throws Exception
Specified by:
process in interface org.apache.camel.Processor
Overrides:
process in class org.apache.camel.processor.RedeliveryErrorHandler
Throws:
Exception

process

public boolean process(org.apache.camel.Exchange exchange,
                       org.apache.camel.AsyncCallback callback)
Specified by:
process in interface org.apache.camel.AsyncProcessor
Overrides:
process in class org.apache.camel.processor.RedeliveryErrorHandler

processInTransaction

protected void processInTransaction(org.apache.camel.Exchange exchange)
                             throws Exception
Throws:
Exception

doInTransactionTemplate

protected void doInTransactionTemplate(org.apache.camel.Exchange exchange)

processByErrorHandler

protected void processByErrorHandler(org.apache.camel.Exchange exchange)
Processes the Exchange using the error handler.

This implementation will invoke ensure this occurs synchronously, that means if the async routing engine did kick in, then this implementation will wait for the task to complete before it continues.

Parameters:
exchange - the exchange


Apache CAMEL