"sendPartialResultsOnExpiry", String.class); if (sendPartialResultsOnExpiry != null) { handler.setSendPartialResultOnExpiry( Boolean.parseBoolean(this.beanFactory.resolveEmbeddedValue(sendPartialResultsOnExpiry)));
@Test public void testShouldSendPartialResultOnTimeoutTrue() { this.aggregator.setSendPartialResultOnExpiry(true); QueueChannel replyChannel = new QueueChannel(); Message<?> message1 = createMessage(3, "ABC", 3, 1, replyChannel, null); Message<?> message2 = createMessage(5, "ABC", 3, 2, replyChannel, null); this.aggregator.handleMessage(message1); this.aggregator.handleMessage(message2); this.store.expireMessageGroups(-10000); Message<?> reply = replyChannel.receive(1000); assertNotNull("A reply message should have been received", reply); assertEquals(15, reply.getPayload()); assertEquals(1, expiryEvents.size()); assertSame(this.aggregator, expiryEvents.get(0).getSource()); assertEquals("ABC", this.expiryEvents.get(0).getGroupId()); assertEquals(2, this.expiryEvents.get(0).getMessageCount()); assertFalse(this.expiryEvents.get(0).isDiscarded()); Message<?> message3 = createMessage(5, "ABC", 3, 3, replyChannel, null); this.aggregator.handleMessage(message3); assertEquals(1, this.store.getMessageGroup("ABC").size()); }
@Test public void testShouldSendPartialResultOnTimeoutTrue() throws InterruptedException { this.aggregator.setSendPartialResultOnExpiry(true); QueueChannel replyChannel = new QueueChannel(); Message<?> message1 = createMessage(3, "ABC", 3, 1, replyChannel, null); Message<?> message2 = createMessage(5, "ABC", 3, 2, replyChannel, null); CountDownLatch latch = new CountDownLatch(2); AggregatorTestTask task1 = new AggregatorTestTask(this.aggregator, message1, latch); AggregatorTestTask task2 = new AggregatorTestTask(this.aggregator, message2, latch); this.taskExecutor.execute(task1); this.taskExecutor.execute(task2); assertTrue(latch.await(10, TimeUnit.SECONDS)); assertEquals("handlers should have been invoked within time limit", 0, latch.getCount()); this.store.expireMessageGroups(-10000); Message<?> reply = replyChannel.receive(1000); assertNotNull("A reply message should have been received", reply); assertEquals(15, reply.getPayload()); assertNull(task1.getException()); assertNull(task2.getException()); }
handler.setReleaseStrategy(new MessageCountReleaseStrategy(60000)); handler.setExpireGroupsUponCompletion(true); handler.setSendPartialResultOnExpiry(true); DirectChannel outputChannel = new DirectChannel(); handler.setOutputChannel(outputChannel);
aggregator.setSendPartialResultOnExpiry(this.sendPartialResultOnExpiry);
@Test public void testGroupRemainsAfterTimeout() { this.aggregator.setSendPartialResultOnExpiry(true); this.aggregator.setExpireGroupsUponTimeout(false); QueueChannel replyChannel = new QueueChannel();
@Test public void testGroupRemainsAfterTimeoutUnlockB4Discard() { this.aggregator.setSendPartialResultOnExpiry(true); this.aggregator.setExpireGroupsUponTimeout(false); this.aggregator.setReleaseLockBeforeSend(true);
"sendPartialResultsOnExpiry", String.class); if (sendPartialResultsOnExpiry != null) { handler.setSendPartialResultOnExpiry( Boolean.parseBoolean(this.beanFactory.resolveEmbeddedValue(sendPartialResultsOnExpiry)));
aggregator.setSendPartialResultOnExpiry(this.sendPartialResultOnExpiry);