public class ResequencingMessageHandler extends AbstractCorrelatingMessageHandler
AbstractCorrelatingMessageHandler
.
Will remove MessageGroup
s only if 'sequenceSize' is provided and reached.AbstractCorrelatingMessageHandler.SequenceAwareMessageGroup
IntegrationManagement.ManagementOverrides
logger
messagingTemplate
EXPRESSION_PARSER
Constructor and Description |
---|
ResequencingMessageHandler(MessageGroupProcessor processor) |
ResequencingMessageHandler(MessageGroupProcessor processor,
MessageGroupStore store) |
ResequencingMessageHandler(MessageGroupProcessor processor,
MessageGroupStore store,
CorrelationStrategy correlationStrategy,
ReleaseStrategy releaseStrategy) |
Modifier and Type | Method and Description |
---|---|
protected void |
afterRelease(MessageGroup messageGroup,
java.util.Collection<org.springframework.messaging.Message<?>> completedMessages)
Allows you to provide additional logic that needs to be performed after the MessageGroup was released.
|
protected void |
afterRelease(MessageGroup messageGroup,
java.util.Collection<org.springframework.messaging.Message<?>> completedMessages,
boolean timeout)
Perform group removal if its
size is equal to the sequenceSize . |
void |
setExpireGroupsUponTimeout(boolean expireGroupsUponTimeout)
Expire (completely remove) a group if it is completed due to timeout.
|
protected boolean |
shouldCopyRequestHeaders()
Subclasses may override this.
|
completeGroup, completeGroup, destroy, expireGroup, findLastReleasedSequenceNumber, forceComplete, getComponentType, getCorrelationStrategy, getDiscardChannel, getDiscardChannelName, getEvaluationContext, getExpireGroupScheduledFutures, getGroupTimeoutExpression, getLockRegistry, getMessageStore, getMinimumTimeoutForEmptyGroups, getOutputProcessor, getReleaseStrategy, handleMessageInternal, isExpireGroupsUponCompletion, isLockRegistrySet, isReleasePartialSequences, isRunning, isSendPartialResultOnExpiry, isSequenceAware, obtainGroupTimeout, onInit, remove, setApplicationEventPublisher, setCorrelationStrategy, setDiscardChannel, setDiscardChannelName, setForceReleaseAdviceChain, setGroupTimeoutExpression, setLockRegistry, setMessageStore, setMinimumTimeoutForEmptyGroups, setOutputProcessor, setReleasePartialSequences, setReleaseStrategy, setSendPartialResultOnExpiry, setTaskScheduler, start, stop, store, verifyResultCollectionConsistsOfMessages
addNotPropagatedHeaders, createOutputMessage, getNotPropagatedHeaders, getOutputChannel, isAsync, produceOutput, resolveErrorChannel, sendErrorMessage, sendOutput, sendOutputs, setAsync, setNotPropagatedHeaders, setOutputChannel, setOutputChannelName, setSendTimeout, shouldSplitOutput
configureMetrics, getActiveCount, getActiveCountLong, getDuration, getErrorCount, getErrorCountLong, getHandleCount, getHandleCountLong, getManagedName, getManagedType, getMaxDuration, getMeanDuration, getMinDuration, getOrder, getOverrides, getStandardDeviationDuration, handleMessage, isCountsEnabled, isLoggingEnabled, isStatsEnabled, onComplete, onError, onNext, onSubscribe, reset, setCountsEnabled, setLoggingEnabled, setManagedName, setManagedType, setOrder, setShouldTrack, setStatsEnabled
afterPropertiesSet, extractTypeIfPossible, getApplicationContext, getApplicationContextId, getBeanFactory, getChannelResolver, getComponentName, getConversionService, getExpression, getIntegrationProperties, getIntegrationProperty, getMessageBuilderFactory, getTaskScheduler, setApplicationContext, setBeanFactory, setBeanName, setChannelResolver, setComponentName, setConversionService, setMessageBuilderFactory, setPrimaryExpression, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getComponentName
public ResequencingMessageHandler(MessageGroupProcessor processor, MessageGroupStore store, CorrelationStrategy correlationStrategy, ReleaseStrategy releaseStrategy)
public ResequencingMessageHandler(MessageGroupProcessor processor, MessageGroupStore store)
public ResequencingMessageHandler(MessageGroupProcessor processor)
public final void setExpireGroupsUponTimeout(boolean expireGroupsUponTimeout)
setExpireGroupsUponTimeout
in class AbstractCorrelatingMessageHandler
expireGroupsUponTimeout
- the expireGroupsUponTimeout to setprotected boolean shouldCopyRequestHeaders()
AbstractMessageProducingHandler
shouldCopyRequestHeaders
in class AbstractMessageProducingHandler
protected void afterRelease(MessageGroup messageGroup, java.util.Collection<org.springframework.messaging.Message<?>> completedMessages)
AbstractCorrelatingMessageHandler
afterRelease
in class AbstractCorrelatingMessageHandler
messageGroup
- The group.completedMessages
- The completed messages.protected void afterRelease(MessageGroup messageGroup, java.util.Collection<org.springframework.messaging.Message<?>> completedMessages, boolean timeout)
size
is equal to the sequenceSize
.
Remove completedMessages
from the group if it isn't null.afterRelease
in class AbstractCorrelatingMessageHandler
messageGroup
- the group to clean up.completedMessages
- The completed messages.timeout
- True if the release/discard was due to a timeout.