List of usage examples for org.springframework.integration.store MessageGroup getLastReleasedMessageSequenceNumber
int getLastReleasedMessageSequenceNumber();
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()); }