/** * @param releasePartialSequences the releasePartialSequences * @return the handler spec. * @see ResequencingMessageHandler#setReleasePartialSequences(boolean) */ public ResequencerSpec releasePartialSequences(boolean releasePartialSequences) { this.handler.setReleasePartialSequences(releasePartialSequences); return _this(); }
/** * @param releasePartialSequences the releasePartialSequences * @return the handler spec. * @see ResequencingMessageHandler#setReleasePartialSequences(boolean) */ public ResequencerSpec releasePartialSequences(boolean releasePartialSequences) { this.handler.setReleasePartialSequences(releasePartialSequences); return _this(); }
/** * @param releasePartialSequences the releasePartialSequences * @return the handler spec. * @see ResequencingMessageHandler#setReleasePartialSequences(boolean) */ public ResequencerSpec releasePartialSequences(boolean releasePartialSequences) { this.handler.setReleasePartialSequences(releasePartialSequences); return _this(); }
/** * @param releasePartialSequences the releasePartialSequences * @return the handler spec. * @see ResequencingMessageHandler#setReleasePartialSequences(boolean) */ public ResequencerSpec releasePartialSequences(boolean releasePartialSequences) { this.handler.setReleasePartialSequences(releasePartialSequences); return _this(); }
@Test public void testResequencingWithDifferentSequenceSizes() throws InterruptedException { QueueChannel discardChannel = new QueueChannel(); Message<?> message1 = createMessage("123", "ABC", 4, 2, null); Message<?> message2 = createMessage("456", "ABC", 5, 1, null); this.resequencer.setSendPartialResultOnExpiry(false); this.resequencer.setDiscardChannel(discardChannel); this.resequencer.setReleasePartialSequences(true); // force SequenceSizeReleaseStrategy this.resequencer.handleMessage(message1); this.resequencer.handleMessage(message2); // this.resequencer.discardBarrier(this.resequencer.barriers.get("ABC")); Message<?> discard1 = discardChannel.receive(0); Message<?> discard2 = discardChannel.receive(0); // message2 has been discarded because it came in with the wrong sequence size assertNotNull(discard1); assertEquals(1, new IntegrationMessageHeaderAccessor(discard1).getSequenceNumber()); assertNull(discard2); }