Example usage for org.springframework.integration.aggregator SequenceSizeReleaseStrategy SequenceSizeReleaseStrategy

List of usage examples for org.springframework.integration.aggregator SequenceSizeReleaseStrategy SequenceSizeReleaseStrategy

Introduction

In this page you can find the example usage for org.springframework.integration.aggregator SequenceSizeReleaseStrategy SequenceSizeReleaseStrategy.

Prototype

public SequenceSizeReleaseStrategy() 

Source Link

Document

Construct an instance that does not support releasing partial sequences.

Usage

From source file:org.springframework.integration.aggregator.AbstractCorrelatingMessageHandler.java

public AbstractCorrelatingMessageHandler(MessageGroupProcessor processor, MessageGroupStore store,
        CorrelationStrategy correlationStrategy, ReleaseStrategy releaseStrategy) {
    Assert.notNull(processor);//from  w  w  w.  j  a v a  2 s .c  om

    Assert.notNull(store);
    setMessageStore(store);
    this.outputProcessor = processor;
    this.correlationStrategy = correlationStrategy == null
            ? new HeaderAttributeCorrelationStrategy(MessageHeaders.CORRELATION_ID)
            : correlationStrategy;
    this.releaseStrategy = releaseStrategy == null ? new SequenceSizeReleaseStrategy() : releaseStrategy;
    this.messagingTemplate.setSendTimeout(DEFAULT_SEND_TIMEOUT);
    sequenceAware = this.releaseStrategy instanceof SequenceSizeReleaseStrategy;
}

From source file:org.springframework.integration.aggregator.AggregatorTests.java

@Test
public void shouldRejectDuplicatedSequenceNumbers() throws InterruptedException {
    QueueChannel replyChannel = new QueueChannel();
    Message<?> message1 = createMessage(3, "ABC", 3, 1, replyChannel, null);
    Message<?> message2 = createMessage(5, "ABC", 3, 2, replyChannel, null);
    Message<?> message3 = createMessage(7, "ABC", 3, 3, replyChannel, null);
    Message<?> message4 = createMessage(7, "ABC", 3, 3, replyChannel, null);
    this.aggregator.setReleaseStrategy(new SequenceSizeReleaseStrategy());

    this.aggregator.handleMessage(message1);
    this.aggregator.handleMessage(message3);
    // duplicated sequence number, either message3 or message4 should be rejected
    this.aggregator.handleMessage(message4);
    this.aggregator.handleMessage(message2);

    Message<?> reply = replyChannel.receive(10000);
    assertNotNull("A message should be aggregated", reply);
    assertThat(((Integer) reply.getPayload()), is(105));
}

From source file:org.springframework.integration.aggregator.CorrelatingMessageHandler.java

public CorrelatingMessageHandler(MessageGroupProcessor processor, MessageGroupStore store,
        CorrelationStrategy correlationStrategy, ReleaseStrategy releaseStrategy) {
    Assert.notNull(processor);/*from   www .j  a  va2s. c o  m*/
    Assert.notNull(store);
    setMessageStore(store);
    this.outputProcessor = processor;
    this.correlationStrategy = correlationStrategy == null
            ? new HeaderAttributeCorrelationStrategy(MessageHeaders.CORRELATION_ID)
            : correlationStrategy;
    this.releaseStrategy = releaseStrategy == null ? new SequenceSizeReleaseStrategy() : releaseStrategy;
    this.messagingTemplate.setSendTimeout(DEFAULT_SEND_TIMEOUT);
}