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

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

Introduction

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

Prototype

int getLastReleasedMessageSequenceNumber();

Source Link

Usage

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 + "]");
        }/* w  w w  .  j  av  a  2 s . co  m*/
        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;
}

From source file:org.springframework.integration.jdbc.JdbcMessageStoreTests.java

@Test
@Transactional//www. ja v a2  s .c  om
public void testUpdateLastReleasedSequence() throws Exception {
    String groupId = "X";
    Message<String> message = MessageBuilder.withPayload("foo").setCorrelationId(groupId).build();
    messageStore.addMessageToGroup(groupId, message);
    messageStore.setLastReleasedSequenceNumberForGroup(groupId, 5);
    MessageGroup group = messageStore.getMessageGroup(groupId);
    assertEquals(5, group.getLastReleasedMessageSequenceNumber());
}