org.springframework.integration.aggregator
Class CorrelatingMessageHandler

java.lang.Object
  extended by org.springframework.integration.handler.AbstractMessageHandler
      extended by org.springframework.integration.aggregator.CorrelatingMessageHandler
All Implemented Interfaces:
org.springframework.context.Lifecycle, org.springframework.core.Ordered, MessageHandler

public class CorrelatingMessageHandler
extends AbstractMessageHandler
implements org.springframework.context.Lifecycle

MessageHandler that holds a buffer of messages in a MessageStore. This class takes care of correlated groups of messages that can be completed in batches. It is useful for aggregating, resequencing, or custom implementations requiring correlation.

Author:
Iwein Fuld

Field Summary
 
Fields inherited from class org.springframework.integration.handler.AbstractMessageHandler
logger
 
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
 
Constructor Summary
CorrelatingMessageHandler(MessageStore store, CorrelationStrategy correlationStrategy, CompletionStrategy completionStrategy, MessageGroupProcessor processor)
           
CorrelatingMessageHandler(MessageStore store, MessageGroupProcessor processor)
           
 
Method Summary
protected  void forceComplete(java.lang.Object key)
           
protected  void handleMessageInternal(Message<?> message)
           
 boolean isRunning()
           
 void setChannelResolver(ChannelResolver channelResolver)
           
 void setDiscardChannel(MessageChannel discardChannel)
           
 void setOutputChannel(MessageChannel outputChannel)
           
 void setReaperInterval(long reaperInterval)
           
 void setSendPartialResultOnTimeout(boolean sendPartialResultOnTimeout)
           
 void setTaskScheduler(org.springframework.scheduling.TaskScheduler taskScheduler)
           
 void setTimeout(long timeout)
           
 void start()
           
 void stop()
           
 
Methods inherited from class org.springframework.integration.handler.AbstractMessageHandler
getOrder, handleMessage, resolveReplyChannel, setOrder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CorrelatingMessageHandler

public CorrelatingMessageHandler(MessageStore store,
                                 CorrelationStrategy correlationStrategy,
                                 CompletionStrategy completionStrategy,
                                 MessageGroupProcessor processor)

CorrelatingMessageHandler

public CorrelatingMessageHandler(MessageStore store,
                                 MessageGroupProcessor processor)
Method Detail

setTaskScheduler

public void setTaskScheduler(org.springframework.scheduling.TaskScheduler taskScheduler)

setTimeout

public void setTimeout(long timeout)

setReaperInterval

public void setReaperInterval(long reaperInterval)

setOutputChannel

public void setOutputChannel(MessageChannel outputChannel)

setChannelResolver

public void setChannelResolver(ChannelResolver channelResolver)

setDiscardChannel

public void setDiscardChannel(MessageChannel discardChannel)

setSendPartialResultOnTimeout

public void setSendPartialResultOnTimeout(boolean sendPartialResultOnTimeout)

handleMessageInternal

protected void handleMessageInternal(Message<?> message)
                              throws java.lang.Exception
Specified by:
handleMessageInternal in class AbstractMessageHandler
Throws:
java.lang.Exception

isRunning

public boolean isRunning()
Specified by:
isRunning in interface org.springframework.context.Lifecycle

start

public void start()
Specified by:
start in interface org.springframework.context.Lifecycle

stop

public void stop()
Specified by:
stop in interface org.springframework.context.Lifecycle

forceComplete

protected final void forceComplete(java.lang.Object key)