org.springframework.integration.handler.advice
Class ExpressionEvaluatingRequestHandlerAdvice
java.lang.Object
org.springframework.integration.context.IntegrationObjectSupport
org.springframework.integration.handler.advice.AbstractRequestHandlerAdvice
org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice
- All Implemented Interfaces:
- org.aopalliance.aop.Advice, org.aopalliance.intercept.Interceptor, org.aopalliance.intercept.MethodInterceptor, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.InitializingBean, NamedComponent
public class ExpressionEvaluatingRequestHandlerAdvice
- extends AbstractRequestHandlerAdvice
Used to advise MessageHandler
s.
Two expressions 'onSuccessExpression' and 'onFailureExpression' are evaluated when
appropriate. If the evaluation returns a result, a message is sent to the onSuccessChannel
or onFailureChannel as appropriate; the message is the input message with a header
MessageHeaders.POSTPROCESS_RESULT
containing the evaluation result.
The failure expression is NOT evaluated if the success expression throws an exception.
- Since:
- 2.2
- Author:
- Gary Russell
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 |
ExpressionEvaluatingRequestHandlerAdvice
public ExpressionEvaluatingRequestHandlerAdvice()
setOnSuccessExpression
public void setOnSuccessExpression(java.lang.String onSuccessExpression)
setOnFailureExpression
public void setOnFailureExpression(java.lang.String onFailureExpression)
setSuccessChannel
public void setSuccessChannel(MessageChannel successChannel)
setFailureChannel
public void setFailureChannel(MessageChannel failureChannel)
setTrapException
public void setTrapException(boolean trapException)
- If true, any exception will be caught and null returned.
Default false.
- Parameters:
trapException
-
setReturnFailureExpressionResult
public void setReturnFailureExpressionResult(boolean returnFailureExpressionResult)
- If true, the result of evaluating the onFailureExpression will
be returned as the result of AbstractReplyProducingMessageHandler.handleRequestMessage(Message).
- Parameters:
returnFailureExpressionResult
-
setPropagateEvaluationFailures
public void setPropagateEvaluationFailures(boolean propagateOnSuccessEvaluationFailures)
- If true and an onSuccess expression evaluation fails with an exception, the exception will be thrown to the
caller. If false, the exception is caught. Default false. Ignored for onFailure expression evaluation - the
original exception will be propagated (unless trapException is true).
- Parameters:
propagateOnSuccessEvaluationFailures
-
doInvoke
protected java.lang.Object doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback,
java.lang.Object target,
Message<?> message)
throws java.lang.Exception
- Description copied from class:
AbstractRequestHandlerAdvice
- Subclasses implement this method to apply behavior to the
MessageHandler
. callback.execute()
invokes the handler method and returns its result, or null.
- Specified by:
doInvoke
in class AbstractRequestHandlerAdvice
- Parameters:
callback
- Subclasses invoke the execute() method on this interface to invoke the handler method.target
- The target handler.message
- The message that will be sent to the handler.
- Returns:
- the result after invoking the
MessageHandler
.
- Throws:
java.lang.Exception
createEvaluationContext
protected org.springframework.expression.spel.support.StandardEvaluationContext createEvaluationContext()