Example usage for org.springframework.integration.store MessageGroup getOne

List of usage examples for org.springframework.integration.store MessageGroup getOne

Introduction

In this page you can find the example usage for org.springframework.integration.store MessageGroup getOne.

Prototype

Message<?> getOne();

Source Link

Usage

From source file:org.springframework.integration.aggregator.AbstractCorrelatingMessageHandler.java

private void completeGroup(Object correlationKey, MessageGroup group) {
    Message<?> first = null;/*from w  w  w .  java 2  s  .c  om*/
    if (group != null) {
        first = group.getOne();
    }
    completeGroup(first, correlationKey, group);
}

From source file:org.springframework.integration.aggregator.SequenceSizeReleaseStrategy.java

public boolean canRelease(MessageGroup messageGroup) {

    boolean canRelease = false;

    Collection<Message<?>> messages = messageGroup.getMessages();

    if (releasePartialSequences && !messages.isEmpty()) {

        if (logger.isTraceEnabled()) {
            logger.trace("Considering partial release of group [" + messageGroup + "]");
        }/*from   w  w  w  .ja va 2 s. c  om*/
        List<Message<?>> sorted = new ArrayList<Message<?>>(messages);
        Collections.sort(sorted, comparator);

        int nextSequenceNumber = sorted.get(0).getHeaders().getSequenceNumber();
        int lastReleasedMessageSequence = messageGroup.getLastReleasedMessageSequenceNumber();

        if (nextSequenceNumber - lastReleasedMessageSequence == 1) {
            canRelease = true;
            ;
        }
    } else {
        int size = messages.size();

        if (size == 0) {
            canRelease = true;
        } else {
            int sequenceSize = messageGroup.getOne().getHeaders().getSequenceSize();
            // If there is no sequence then it must be incomplete....
            if (sequenceSize == size) {
                canRelease = true;
            }
        }
    }
    return canRelease;
}