org.springframework.integration.handler
Class AbstractMessageHandler
java.lang.Object
org.springframework.integration.handler.AbstractMessageHandler
- All Implemented Interfaces:
- org.springframework.beans.factory.InitializingBean, org.springframework.core.Ordered, MessageHandler
- Direct Known Subclasses:
- DefaultMessageHandler, MethodInvokingTarget, RouterMessageHandler, SplitterMessageHandler, TransformerMessageHandler
public abstract class AbstractMessageHandler
- extends java.lang.Object
- implements MessageHandler, org.springframework.core.Ordered, org.springframework.beans.factory.InitializingBean
A base class for any MessageHandler
that may act as an adapter
by invoking a "plain" (not Message-aware) method for a given target object.
When used as an adapter, the target Object is mandatory and either a
Method
reference or a 'methodName' must be provided. If no Object
and Method are provided, the handler will simply process the request
Message's payload.
- Author:
- Mark Fisher
Fields inherited from interface org.springframework.core.Ordered |
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
logger
protected static final org.apache.commons.logging.Log logger
methodExpectsMessage
private volatile boolean methodExpectsMessage
object
private volatile java.lang.Object object
method
private volatile java.lang.reflect.Method method
methodName
private volatile java.lang.String methodName
methodArgumentMapper
private volatile MessageMapper<java.lang.Object,java.lang.Object[]> methodArgumentMapper
invoker
private volatile MethodInvoker invoker
order
private volatile int order
initialized
private volatile boolean initialized
initializationMonitor
private final java.lang.Object initializationMonitor
AbstractMessageHandler
public AbstractMessageHandler(java.lang.Object object,
java.lang.reflect.Method method)
AbstractMessageHandler
public AbstractMessageHandler(java.lang.Object object,
java.lang.String methodName)
AbstractMessageHandler
public AbstractMessageHandler()
setObject
public void setObject(java.lang.Object object)
setMethod
public void setMethod(java.lang.reflect.Method method)
setMethodName
public void setMethodName(java.lang.String methodName)
setOrder
public void setOrder(int order)
getOrder
public int getOrder()
- Specified by:
getOrder
in interface org.springframework.core.Ordered
afterPropertiesSet
public void afterPropertiesSet()
- Specified by:
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
handle
public Message<?> handle(Message<?> requestMessage)
- Specified by:
handle
in interface MessageHandler
postProcessReplyMessage
protected abstract Message<?> postProcessReplyMessage(Message<?> replyMessage,
Message<?> requestMessage)
- Subclasses must implement this method to process a return value that
is already a Message instance.
- Parameters:
replyMessage
- the Message returned from an adapter methodrequestMessage
- the original request Message
- Returns:
- the Message to be sent to the reply MessageTarget
createReplyMessage
protected abstract Message<?> createReplyMessage(java.lang.Object result,
Message<?> requestMessage)
- Subclasses must implement this method to generate the reply Message when
the return value is not a Message instance.
- Parameters:
result
- the return value from an adapter method, or the Message payload if not acting as an adapterrequestMessage
- the original request Message
- Returns:
- the Message to be sent to the reply MessageTarget
invokeHandlerMethod
private java.lang.Object invokeHandlerMethod(Message<?> message)
mapMessageToMethodArguments
private java.lang.Object[] mapMessageToMethodArguments(Message message)