/** * Configure the handler with an {@link ExpressionEvaluatingReleaseStrategy} for the * given expression. * * @param releaseExpression the correlation expression. * @return the handler spec. * @see AbstractCorrelatingMessageHandler#setReleaseStrategy(ReleaseStrategy) */ public S releaseExpression(String releaseExpression) { return releaseStrategy(new ExpressionEvaluatingReleaseStrategy(releaseExpression)); }
@Test public void testCompletedWithFilterSpelEvaluated() { strategy = new ExpressionEvaluatingReleaseStrategy("!messages.?[payload==5].empty"); strategy.setBeanFactory(mock(BeanFactory.class)); assertThat(strategy.canRelease(messages), is(true)); }
@Test public void testCompletedWithSizeSpelEvaluated() { strategy = new ExpressionEvaluatingReleaseStrategy("#root.size()==5"); strategy.setBeanFactory(mock(BeanFactory.class)); assertThat(strategy.canRelease(messages), is(true)); }
@Test public void testCompletedWithFilterSpelReturnsNotCompleted() { strategy = new ExpressionEvaluatingReleaseStrategy("!messages.?[payload==6].empty"); strategy.setBeanFactory(mock(BeanFactory.class)); assertThat(strategy.canRelease(messages), is(false)); }
@Bean public MessageHandler gatherer1() { return new AggregatingMessageHandler( new ExpressionEvaluatingMessageGroupProcessor("^[payload gt 5] ?: -1D"), new SimpleMessageStore(), new HeaderAttributeCorrelationStrategy(IntegrationMessageHeaderAccessor.CORRELATION_ID), new ExpressionEvaluatingReleaseStrategy("size() == 2")); }
@Bean @ServiceActivator(inputChannel = "aggregatorChannel") public MessageHandler aggregator() { AggregatingMessageHandler handler = new AggregatingMessageHandler(new SimpleMessageGroupProcessor()); handler.setCorrelationStrategy(new ExpressionEvaluatingCorrelationStrategy("1")); handler.setReleaseStrategy(new ExpressionEvaluatingReleaseStrategy("size() == 10")); handler.setOutputChannelName("splitterChannel"); return handler; }
/** * Configure the handler with an {@link ExpressionEvaluatingReleaseStrategy} for the * given expression. * * @param releaseExpression the correlation expression. * @return the handler spec. * @see AbstractCorrelatingMessageHandler#setReleaseStrategy(ReleaseStrategy) */ public S releaseExpression(String releaseExpression) { return releaseStrategy(new ExpressionEvaluatingReleaseStrategy(releaseExpression)); }
/** * Configure the handler with an {@link ExpressionEvaluatingReleaseStrategy} for the * given expression. * @param releaseExpression the correlation expression. * @return the handler spec. * @see AbstractCorrelatingMessageHandler#setReleaseStrategy(ReleaseStrategy) */ public S releaseExpression(String releaseExpression) { return releaseStrategy(new ExpressionEvaluatingReleaseStrategy(releaseExpression)); }
@Bean @ConditionalOnProperty(prefix = AggregatorProperties.PREFIX, name = "release") @ConditionalOnMissingBean public ReleaseStrategy releaseStrategy() { return new ExpressionEvaluatingReleaseStrategy(this.properties.getRelease()); }
/** * Configure the handler with an {@link ExpressionEvaluatingReleaseStrategy} for the * given expression. * @param releaseExpression the correlation expression. * @return the handler spec. * @see AbstractCorrelatingMessageHandler#setReleaseStrategy(ReleaseStrategy) */ public S releaseExpression(String releaseExpression) { return releaseStrategy(new ExpressionEvaluatingReleaseStrategy(releaseExpression)); }