Author: bibryam Date: Thu Nov 15 23:09:11 2012 New Revision: 1410099 URL: http://svn.apache.org/viewvc?rev=1410099&view=rev Log: Update aws library to 1.3.25 Introduced two new options for SQS consumer to enable long polling: waitTimeSeconds and receiveMessageWaitTimeSeconds
Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java camel/trunk/components/camel-aws/src/test/resources/org/apache/camel/component/aws/sqs/SqsComponentSpringTest-context.xml camel/trunk/parent/pom.xml Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java (original) +++ camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java Thu Nov 15 23:09:11 2012 @@ -37,6 +37,7 @@ public class SqsConfiguration { private Boolean deleteAfterRead = Boolean.TRUE; private Integer visibilityTimeout; private Collection<String> attributeNames; + private Integer waitTimeSeconds; private Integer defaultVisibilityTimeout; private Boolean extendMessageVisibility = Boolean.FALSE; @@ -46,6 +47,7 @@ public class SqsConfiguration { // queue properties private Integer maximumMessageSize; private Integer messageRetentionPeriod; + private Integer receiveMessageWaitTimeSeconds; private String policy; public void setAmazonSQSEndpoint(String amazonSQSEndpoint) { @@ -160,6 +162,22 @@ public class SqsConfiguration { this.extendMessageVisibility = extendMessageVisibility; } + public Integer getReceiveMessageWaitTimeSeconds() { + return receiveMessageWaitTimeSeconds; + } + + public void setReceiveMessageWaitTimeSeconds(Integer receiveMessageWaitTimeSeconds) { + this.receiveMessageWaitTimeSeconds = receiveMessageWaitTimeSeconds; + } + + public Integer getWaitTimeSeconds() { + return waitTimeSeconds; + } + + public void setWaitTimeSeconds(Integer waitTimeSeconds) { + this.waitTimeSeconds = waitTimeSeconds; + } + @Override public String toString() { return "SqsConfiguration[queueName=" + queueName @@ -169,9 +187,11 @@ public class SqsConfiguration { + ", deleteAfterRead=" + deleteAfterRead + ", visibilityTimeout=" + visibilityTimeout + ", attributeNames=" + attributeNames + + ", waitTimeSeconds=" + waitTimeSeconds + ", defaultVisibilityTimeout=" + defaultVisibilityTimeout + ", maximumMessageSize=" + maximumMessageSize + ", messageRetentionPeriod=" + messageRetentionPeriod + + ", receiveMessageWaitTimeSeconds=" + receiveMessageWaitTimeSeconds + ", delaySeconds=" + delaySeconds + ", policy=" + policy + ", extendMessageVisibility=" + extendMessageVisibility Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java (original) +++ camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java Thu Nov 15 23:09:11 2012 @@ -69,7 +69,8 @@ public class SqsConsumer extends Schedul request.setMaxNumberOfMessages(getMaxMessagesPerPoll() > 0 ? getMaxMessagesPerPoll() : null); request.setVisibilityTimeout(getConfiguration().getVisibilityTimeout() != null ? getConfiguration().getVisibilityTimeout() : null); request.setAttributeNames(getConfiguration().getAttributeNames() != null ? getConfiguration().getAttributeNames() : null); - + request.setWaitTimeSeconds(getConfiguration().getWaitTimeSeconds() != null ? getConfiguration().getWaitTimeSeconds() : null); + LOG.trace("Receiving messages with request [{}]...", request); ReceiveMessageResult messageResult = getClient().receiveMessage(request); Modified: camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java (original) +++ camel/trunk/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java Thu Nov 15 23:09:11 2012 @@ -110,7 +110,10 @@ public class SqsEndpoint extends Schedul } if (getConfiguration().getPolicy() != null) { request.getAttributes().put(QueueAttributeName.Policy.name(), String.valueOf(getConfiguration().getPolicy())); - } + } + if (getConfiguration().getReceiveMessageWaitTimeSeconds() != null) { + request.getAttributes().put(QueueAttributeName.ReceiveMessageWaitTimeSeconds.name(), String.valueOf(getConfiguration().getReceiveMessageWaitTimeSeconds())); + } LOG.trace("Creating queue [{}] with request [{}]...", configuration.getQueueName(), request); CreateQueueResult queueResult = client.createQueue(request); @@ -134,7 +137,9 @@ public class SqsEndpoint extends Schedul if (getConfiguration().getPolicy() != null) { request.getAttributes().put(QueueAttributeName.Policy.name(), String.valueOf(getConfiguration().getPolicy())); } - + if (getConfiguration().getReceiveMessageWaitTimeSeconds() != null) { + request.getAttributes().put(QueueAttributeName.ReceiveMessageWaitTimeSeconds.name(), String.valueOf(getConfiguration().getReceiveMessageWaitTimeSeconds())); + } if (!request.getAttributes().isEmpty()) { LOG.trace("Updating queue '{}' with the provided queue attributes...", configuration.getQueueName()); client.setQueueAttributes(request); Modified: camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java (original) +++ camel/trunk/components/camel-aws/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java Thu Nov 15 23:09:11 2012 @@ -79,7 +79,7 @@ public class SqsComponentConfigurationTe + "&DefaultVisibilityTimeout=1000&visibilityTimeout=2000&maximumMessageSize=65536&messageRetentionPeriod=1209600&policy=" + "%7B%22Version%22%3A%222008-10-17%22%2C%22Id%22%3A%22%2F195004372649%2FMyQueue%2FSQSDefaultPolicy%22%2C%22Statement%22%3A%5B%7B%22Sid%22%3A%22Queue1ReceiveMessage%22%2C%22" + "Effect%22%3A%22Allow%22%2C%22Principal%22%3A%7B%22AWS%22%3A%22*%22%7D%2C%22Action%22%3A%22SQS%3AReceiveMessage%22%2C%22Resource%22%3A%22%2F195004372649%2FMyQueue%22%7D%5D%7D" - + "&delaySeconds=123"); + + "&delaySeconds=123&receiveMessageWaitTimeSeconds=10&waitTimeSeconds=20"); assertEquals("MyQueue", endpoint.getConfiguration().getQueueName()); assertEquals("xxx", endpoint.getConfiguration().getAccessKey()); @@ -95,6 +95,8 @@ public class SqsComponentConfigurationTe + "{\"AWS\":\"*\"},\"Action\":\"SQS:ReceiveMessage\",\"Resource\":\"/195004372649/MyQueue\"}]}", endpoint.getConfiguration().getPolicy()); assertEquals(new Integer(123), endpoint.getConfiguration().getDelaySeconds()); + assertEquals(Integer.valueOf(10), endpoint.getConfiguration().getReceiveMessageWaitTimeSeconds()); + assertEquals(Integer.valueOf(20), endpoint.getConfiguration().getWaitTimeSeconds()); } @Test Modified: camel/trunk/components/camel-aws/src/test/resources/org/apache/camel/component/aws/sqs/SqsComponentSpringTest-context.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-aws/src/test/resources/org/apache/camel/component/aws/sqs/SqsComponentSpringTest-context.xml?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/components/camel-aws/src/test/resources/org/apache/camel/component/aws/sqs/SqsComponentSpringTest-context.xml (original) +++ camel/trunk/components/camel-aws/src/test/resources/org/apache/camel/component/aws/sqs/SqsComponentSpringTest-context.xml Thu Nov 15 23:09:11 2012 @@ -23,11 +23,11 @@ <camelContext id="camel" xmlns="http://camel.apache.org/schema/spring"> <route> <from uri="direct:start"/> - <to uri="aws-sqs://MyQueue?amazonSQSClient=#amazonSQSClient&messageRetentionPeriod=1209600&maximumMessageSize=65536&policy="/> + <to uri="aws-sqs://MyQueue?amazonSQSClient=#amazonSQSClient&messageRetentionPeriod=1209600&maximumMessageSize=65536&receiveMessageWaitTimeSeconds=20&policy="/> </route> <route> - <from uri="aws-sqs://MyQueue?amazonSQSClient=#amazonSQSClient&messageRetentionPeriod=1209600&maximumMessageSize=65536&policy="/> + <from uri="aws-sqs://MyQueue?amazonSQSClient=#amazonSQSClient&messageRetentionPeriod=1209600&maximumMessageSize=65536&receiveMessageWaitTimeSeconds=20&policy="/> <to uri="mock:result"/> </route> </camelContext> Modified: camel/trunk/parent/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/parent/pom.xml?rev=1410099&r1=1410098&r2=1410099&view=diff ============================================================================== --- camel/trunk/parent/pom.xml (original) +++ camel/trunk/parent/pom.xml Thu Nov 15 23:09:11 2012 @@ -56,7 +56,7 @@ <avro-version>1.6.2</avro-version> <avro-bundle-version>1.6.1_1</avro-bundle-version> <aws-java-sdk-bundle-version>1.3.14_1</aws-java-sdk-bundle-version> - <aws-java-sdk-version>1.3.14</aws-java-sdk-version> + <aws-java-sdk-version>1.3.25</aws-java-sdk-version> <axiom-version>1.2.12</axiom-version> <bcel-bundle-version>5.2_4</bcel-bundle-version> <bcpg-jdk16-bundle-version>1.46_2</bcpg-jdk16-bundle-version>