org.springframework.integration.aggregator
Class ResequencingMessageBarrier
java.lang.Object
org.springframework.integration.aggregator.AbstractMessageBarrier
org.springframework.integration.aggregator.ResequencingMessageBarrier
- All Implemented Interfaces:
- MessageBarrier
public class ResequencingMessageBarrier
- extends AbstractMessageBarrier
MessageBarrier implementation for resequencing. It can either
release partial sequences as messages arrive, or the full sequence.
- Author:
- Marius Bogoevici
Method Summary |
protected void |
addMessage(Message<?> message)
|
protected boolean |
hasReceivedAllMessages()
Subclasses must implement this method to indicate if all possible messages that could be received by
a given barrier have already been received (e.g. |
protected java.util.List<Message<?>> |
releaseAvailableMessages()
Subclasses must implement this method to return the messages that can be released by this barrier after
the receipt of a given message. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
lastReleasedSequenceNumber
private int lastReleasedSequenceNumber
resequencingComparator
private final java.util.Comparator<Message<?>> resequencingComparator
releasePartialSequences
private final boolean releasePartialSequences
ResequencingMessageBarrier
public ResequencingMessageBarrier(boolean releasePartialSequences)
- Parameters:
releasePartialSequences
- specifies whether partial sequences should
be released as they arrive, or the resequencer
addMessage
protected void addMessage(Message<?> message)
- Overrides:
addMessage
in class AbstractMessageBarrier
hasReceivedAllMessages
protected boolean hasReceivedAllMessages()
- Description copied from class:
AbstractMessageBarrier
- Subclasses must implement this method to indicate if all possible messages that could be received by
a given barrier have already been received (e.g. all messages from a given sequence).
- Specified by:
hasReceivedAllMessages
in class AbstractMessageBarrier
releaseAvailableMessages
protected java.util.List<Message<?>> releaseAvailableMessages()
- Description copied from class:
AbstractMessageBarrier
- Subclasses must implement this method to return the messages that can be released by this barrier after
the receipt of a given message. It might be possible that a number of messages are released before the barrier
has ended its work (partial release) and this depends completely on the implementation of the barrier.
However, once hasReceivedAllMessages() is deemed true, only one call to releaseAvailableMessages() shall
yield results.
- Specified by:
releaseAvailableMessages
in class AbstractMessageBarrier