/** * @param expireGroupsUponCompletion the expireGroupsUponCompletion. * @return the aggregator spec. * @see AggregatingMessageHandler#setExpireGroupsUponCompletion(boolean) */ public AggregatorSpec expireGroupsUponCompletion(boolean expireGroupsUponCompletion) { this.handler.setExpireGroupsUponCompletion(expireGroupsUponCompletion); return _this(); }
@Test public void bufferCompletesWithException() throws Exception { doAnswer(new ThrowsException(new RuntimeException("Planned test exception"))) .when(processor).processMessageGroup(isA(SimpleMessageGroup.class)); String correlationKey = "key"; Message<?> message1 = testMessage(correlationKey, 1, 2); Message<?> message2 = testMessage(correlationKey, 2, 2); when(correlationStrategy.getCorrelationKey(isA(Message.class))).thenReturn(correlationKey); handler.setExpireGroupsUponCompletion(true); handler.handleMessage(message1); try { handler.handleMessage(message2); fail("Expected MessageHandlingException"); } catch (MessageHandlingException e) { assertEquals(0, store.getMessageGroup(correlationKey).size()); } verify(correlationStrategy).getCorrelationKey(message1); verify(correlationStrategy).getCorrelationKey(message2); verify(processor).processMessageGroup(isA(SimpleMessageGroup.class)); }
@Test public void batchingWithoutLeftovers() { QueueChannel outputChannel = new QueueChannel(); QueueChannel discardChannel = new QueueChannel(); defaultHandler.setOutputChannel(outputChannel); defaultHandler.setDiscardChannel(discardChannel); defaultHandler.setReleaseStrategy(new SampleSizeReleaseStrategy()); defaultHandler.setExpireGroupsUponCompletion(true); for (int i = 0; i < 10; i++) { defaultHandler.handleMessage(MessageBuilder.withPayload(i).setCorrelationId("A").build()); } assertEquals(5, ((List<?>) outputChannel.receive(0).getPayload()).size()); assertEquals(5, ((List<?>) outputChannel.receive(0).getPayload()).size()); assertNull(discardChannel.receive(0)); }
@Test public void batchingWithLeftovers() { QueueChannel outputChannel = new QueueChannel(); QueueChannel discardChannel = new QueueChannel(); defaultHandler.setOutputChannel(outputChannel); defaultHandler.setDiscardChannel(discardChannel); defaultHandler.setReleaseStrategy(new SampleSizeReleaseStrategy()); defaultHandler.setExpireGroupsUponCompletion(true); for (int i = 0; i < 12; i++) { defaultHandler.handleMessage(MessageBuilder.withPayload(i).setCorrelationId("A").build()); } assertEquals(5, ((List<?>) outputChannel.receive(0).getPayload()).size()); assertEquals(5, ((List<?>) outputChannel.receive(0).getPayload()).size()); assertNull(discardChannel.receive(0)); assertEquals(2, store.getMessageGroup("A").getMessages().size()); }
handler.setCorrelationStrategy(message -> "foo"); handler.setReleaseStrategy(new MessageCountReleaseStrategy(60000)); handler.setExpireGroupsUponCompletion(true); handler.setSendPartialResultOnExpiry(true); DirectChannel outputChannel = new DirectChannel();
/** * @param expireGroupsUponCompletion the expireGroupsUponCompletion. * @return the aggregator spec. * @see AggregatingMessageHandler#setExpireGroupsUponCompletion(boolean) */ public AggregatorSpec expireGroupsUponCompletion(boolean expireGroupsUponCompletion) { this.handler.setExpireGroupsUponCompletion(expireGroupsUponCompletion); return _this(); }
/** * @param expireGroupsUponCompletion the expireGroupsUponCompletion. * @return the aggregator spec. * @see AggregatingMessageHandler#setExpireGroupsUponCompletion(boolean) */ public AggregatorSpec expireGroupsUponCompletion(boolean expireGroupsUponCompletion) { this.handler.setExpireGroupsUponCompletion(expireGroupsUponCompletion); return _this(); }
/** * @param expireGroupsUponCompletion the expireGroupsUponCompletion. * @return the aggregator spec. * @see AggregatingMessageHandler#setExpireGroupsUponCompletion(boolean) */ public AggregatorSpec expireGroupsUponCompletion(boolean expireGroupsUponCompletion) { this.handler.setExpireGroupsUponCompletion(expireGroupsUponCompletion); return _this(); }
aggregator.setExpireGroupsUponCompletion(this.expireGroupsUponCompletion);
aggregator.setExpireGroupsUponCompletion(this.expireGroupsUponCompletion);