Author: ningjiang
Date: Fri Jan 11 08:28:20 2013
New Revision: 1431934
URL: http://svn.apache.org/viewvc?rev=1431934&view=rev
Log:
CAMEL-5944 - Setting extendMessageVisibility on an SQS consumer
Merged revisions 1431813 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r1431813 | tjsnell | 2013-01-11 10:20:42 +0800 (Fri, 11 Jan 2013) | 1 line
CAMEL-5944 - Setting extendMessageVisibility on an SQS consumer
........
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java
camel/branches/camel-2.10.x/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1431813
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
camel/branches/camel-2.10.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java?rev=1431934&r1=1431933&r2=1431934&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java
(original)
+++
camel/branches/camel-2.10.x/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java
Fri Jan 11 08:28:20 2013
@@ -48,7 +48,12 @@ public class SqsComponent extends Defaul
if (configuration.getAmazonSQSClient() == null &&
(configuration.getAccessKey() == null || configuration.getSecretKey() == null))
{
throw new IllegalArgumentException("AmazonSQSClient or accessKey
and secretKey must be specified.");
}
-
+
+ // Verify that visibilityTimeout is set if extendMessageVisibility is
set to true.
+ if (configuration.isExtendMessageVisibility() &&
(configuration.getVisibilityTimeout() == null)) {
+ throw new IllegalArgumentException("Extending message visibilty
(extendMessageVisibility) requires visibilityTimeout to be set on the
Endpoint.");
+ }
+
SqsEndpoint sqsEndpoint = new SqsEndpoint(uri, this, configuration);
sqsEndpoint.setConsumerProperties(parameters);
return sqsEndpoint;
Modified:
camel/branches/camel-2.10.x/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
URL:
http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java?rev=1431934&r1=1431933&r2=1431934&view=diff
==============================================================================
---
camel/branches/camel-2.10.x/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
(original)
+++
camel/branches/camel-2.10.x/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
Fri Jan 11 08:28:20 2013
@@ -119,4 +119,23 @@ public class SqsComponentConfigurationTe
SqsComponent component = new SqsComponent(context);
component.createEndpoint("aws-sqs://MyQueue?accessKey=xxx");
}
+
+ // Setting extendMessageVisibility on an SQS consumer should make
visibilityTimeout compulsory
+ @Test(expected = IllegalArgumentException.class)
+ public void
createEndpointWithExtendMessageVisibilityAndNoVisibilityTimeoutThrowsException()
throws Exception {
+ SqsComponent component = new SqsComponent(context);
+
component.createEndpoint("aws-sqs://MyQueue?accessKey=xxx&secretKey=yyy&extendMessageVisibility=true");
+ }
+
+ @Test
+ public void
createEndpointWithExtendMessageVisibilityTrueAndVisibilityTimeoutSet() throws
Exception {
+ SqsComponent component = new SqsComponent(context);
+
assertNotNull(component.createEndpoint("aws-sqs://MyQueue?accessKey=xxx&secretKey=yyy&visibilityTimeout=30&extendMessageVisibility=true"));
+ }
+
+ @Test
+ public void
createEndpointWithExtendMessageVisibilityFalseAndVisibilityTimeoutSet() throws
Exception {
+ SqsComponent component = new SqsComponent(context);
+
assertNotNull(component.createEndpoint("aws-sqs://MyQueue?accessKey=xxx&secretKey=yyy&visibilityTimeout=30&extendMessageVisibility=false"));
+ }
}
\ No newline at end of file