Spring Integration

org.springframework.integration.transaction
Class ExpressionEvaluatingTransactionSynchronizationProcessor

java.lang.Object
  extended by org.springframework.integration.context.IntegrationObjectSupport
      extended by org.springframework.integration.transaction.ExpressionEvaluatingTransactionSynchronizationProcessor
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent, TransactionSynchronizationProcessor

public class ExpressionEvaluatingTransactionSynchronizationProcessor
extends IntegrationObjectSupport
implements TransactionSynchronizationProcessor

This implementation of TransactionSynchronizationFactory allows you to configure SpEL expressions, with their execution being coordinated (synchronized) with a transaction - see TransactionSynchronization. Expressions for before-commit, after-commit, and after-rollback are supported, together with a channel for each where the evaluation result (if any) will be sent. For each sub-element you can specify 'expression' and/or 'channel' attributes. If only the 'channel' attribute is present the received Message will be sent there as part of a particular synchronization scenario. If only the 'expression' attribute is present and the result of an expression is a non-Null value, a Message with the result as the payload will be generated and sent to a default channel (NullChannel) and will appear in the logs. If you want the evaluation result to go to a specific channel add a 'channel' attribute. If the result of an expression is null or void, no Message will be generated.

Since:
2.2
Author:
Gary Russell, Oleg Zhurakousky

Field Summary
 
Fields inherited from class org.springframework.integration.context.IntegrationObjectSupport
logger
 
Constructor Summary
ExpressionEvaluatingTransactionSynchronizationProcessor()
           
 
Method Summary
protected  org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()
           
 void processAfterCommit(IntegrationResourceHolder holder)
           
 void processAfterRollback(IntegrationResourceHolder holder)
           
 void processBeforeCommit(IntegrationResourceHolder holder)
           
 void setAfterCommitChannel(MessageChannel afterCommitChannel)
           
 void setAfterCommitExpression(org.springframework.expression.Expression afterCommitExpression)
           
 void setAfterRollbackChannel(MessageChannel afterRollbackChannel)
           
 void setAfterRollbackExpression(org.springframework.expression.Expression afterRollbackExpression)
           
 void setBeforeCommitChannel(MessageChannel beforeCommitChannel)
           
 void setBeforeCommitExpression(org.springframework.expression.Expression beforeCommitExpression)
           
 
Methods inherited from class org.springframework.integration.context.IntegrationObjectSupport
afterPropertiesSet, getBeanFactory, getComponentName, getComponentType, getConversionService, getTaskScheduler, onInit, setBeanFactory, setBeanName, setComponentName, setConversionService, setTaskScheduler, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExpressionEvaluatingTransactionSynchronizationProcessor

public ExpressionEvaluatingTransactionSynchronizationProcessor()
Method Detail

setBeforeCommitChannel

public void setBeforeCommitChannel(MessageChannel beforeCommitChannel)

setAfterCommitChannel

public void setAfterCommitChannel(MessageChannel afterCommitChannel)

setAfterRollbackChannel

public void setAfterRollbackChannel(MessageChannel afterRollbackChannel)

setBeforeCommitExpression

public void setBeforeCommitExpression(org.springframework.expression.Expression beforeCommitExpression)

setAfterCommitExpression

public void setAfterCommitExpression(org.springframework.expression.Expression afterCommitExpression)

setAfterRollbackExpression

public void setAfterRollbackExpression(org.springframework.expression.Expression afterRollbackExpression)

processBeforeCommit

public void processBeforeCommit(IntegrationResourceHolder holder)
Specified by:
processBeforeCommit in interface TransactionSynchronizationProcessor

processAfterCommit

public void processAfterCommit(IntegrationResourceHolder holder)
Specified by:
processAfterCommit in interface TransactionSynchronizationProcessor

processAfterRollback

public void processAfterRollback(IntegrationResourceHolder holder)
Specified by:
processAfterRollback in interface TransactionSynchronizationProcessor

createEvaluationContext

protected org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()

Spring Integration