You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2013/01/11 09:28:20 UTC

svn commit: r1431934 - in /camel/branches/camel-2.10.x: ./ components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java

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