GH-36: Add SqsMessageDrivenCA.queueStopTimeout

Fixes GH-36 (https://github.com/spring-projects/spring-integration-aws/issues/36)

* Add ability to set `queueStopTimeout` for `SimpleMessageListenerContainer` in `SqsMessageDrivenChannelAdapter`
* Update unit tests to test `queueStopTimeout`
* Ensure that we don't override the default `queueStopTimeout` with `0` `long`
* Upgrade to `SI-4.2.8`
This commit is contained in:
Patrick Fitzsimons
2016-06-14 18:17:41 +01:00
committed by Artem Bilan
parent d2aa5224ec
commit 7be94b7690
7 changed files with 30 additions and 3 deletions

View File

@@ -32,6 +32,7 @@
visibility-timeout="200"
wait-time-out="40"
send-timeout="2000"
queue-stop-timeout="11000"
destination-resolver="destinationResolver"
resource-id-resolver="resourceIdResolver"/>

View File

@@ -96,6 +96,7 @@ public class SqsMessageDrivenChannelAdapterParserTests {
assertThat(TestUtils.getPropertyValue(listenerContainer, "maxNumberOfMessages")).isEqualTo(5);
assertThat(TestUtils.getPropertyValue(listenerContainer, "visibilityTimeout")).isEqualTo(200);
assertThat(TestUtils.getPropertyValue(listenerContainer, "waitTimeOut")).isEqualTo(40);
assertThat(TestUtils.getPropertyValue(listenerContainer, "queueStopTimeout")).isEqualTo(11000L);
assertThat(TestUtils.getPropertyValue(listenerContainer, "autoStartup")).isEqualTo(false);
@SuppressWarnings("rawtypes")

View File

@@ -31,6 +31,7 @@ import org.springframework.integration.aws.support.AwsHeaders;
import org.springframework.integration.channel.QueueChannel;
import org.springframework.integration.config.EnableIntegration;
import org.springframework.integration.core.MessageProducer;
import org.springframework.integration.test.util.TestUtils;
import org.springframework.messaging.PollableChannel;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -54,8 +55,14 @@ public class SqsMessageDrivenChannelAdapterTests {
@Autowired
private PollableChannel inputChannel;
@Autowired
private SqsMessageDrivenChannelAdapter sqsMessageDrivenChannelAdapter;
@Test
public void testSqsMessageDrivenChannelAdapter() {
assertThat(TestUtils.getPropertyValue(this.sqsMessageDrivenChannelAdapter,
"listenerContainer.queueStopTimeout"))
.isEqualTo(10000L);
org.springframework.messaging.Message<?> receive = this.inputChannel.receive(1000);
assertThat(receive).isNotNull();
assertThat((String) receive.getPayload()).isIn("messageContent", "messageContent2");