[camel] branch master updated (a35e72f -> 8cec20d)

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[camel] branch master updated (a35e72f -> 8cec20d)

acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git.


    from a35e72f  CAMEL-13557: Add property binding support to make it convenient to configure components and whatnot.
     new 4fd8060  CAMEL-13570 - Camel AWS-SQS: Make the autocreation of the queue configurable
     new 9b3fec8  CAMEL-13570 - Fixed CS
     new c3cedd1  CAMEL-13570 - Docs
     new 65d6be9  CAMEL-13570 - Default value for autoCreateQueue is true
     new 88a090b  CAMEL-13570 - Regen docs
     new 8cec20d  CAMEL-13570 - Full regen

The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../src/main/docs/aws-sqs-component.adoc           |  11 ++-
 .../camel/component/aws/sqs/SqsConfiguration.java  | 104 ++++++++++++++-------
 .../camel/component/aws/sqs/SqsConsumer.java       |  48 +++++-----
 .../camel/component/aws/sqs/SqsEndpoint.java       |   2 +-
 .../aws/sqs/SqsComponentConfigurationTest.java     |  15 +++
 .../modules/ROOT/pages/aws-sqs-component.adoc      |  11 ++-
 .../sqs/springboot/SqsComponentConfiguration.java  |  12 +++
 7 files changed, 138 insertions(+), 65 deletions(-)

Reply | Threaded
Open this post in threaded view
|

[camel] 01/06: CAMEL-13570 - Camel AWS-SQS: Make the autocreation of the queue configurable

acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 4fd8060a3cd1b46bd2c89640fb1fc56b485d8ab2
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 13:22:30 2019 +0200

    CAMEL-13570 - Camel AWS-SQS: Make the autocreation of the queue configurable
---
 .../src/main/docs/aws-sqs-component.adoc           |  5 ++---
 .../camel/component/aws/sqs/SqsConfiguration.java  | 15 ++++++++++++-
 .../camel/component/aws/sqs/SqsConsumer.java       |  4 +++-
 .../camel/component/aws/sqs/SqsEndpoint.java       |  2 +-
 .../aws/sqs/SqsComponentConfigurationTest.java     | 15 +++++++++++++
 .../sqs/springboot/SqsComponentConfiguration.java  | 25 +++++++++++-----------
 6 files changed, 47 insertions(+), 19 deletions(-)

diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index 4784854..a4ff572 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -27,7 +27,7 @@ The queue will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Queue Service component supports 6 options, which are listed below.
+The AWS Simple Queue Service component supports 5 options, which are listed below.
 
 
 
@@ -39,7 +39,6 @@ The AWS Simple Queue Service component supports 6 options, which are listed belo
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
 | *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
-| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
 
@@ -77,6 +76,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *amazonAWSHost* (common) | The hostname of the Amazon AWS cloud. | amazonaws.com | String
 | *amazonSQSClient* (common) | To use the AmazonSQS as client |  | AmazonSQS
+| *autoCreateQueue* (common) | Setting the autocreation of the queue | false | boolean
 | *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to map headers to/from Camel. |  | HeaderFilterStrategy
 | *queueOwnerAWSAccountId* (common) | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
@@ -102,7 +102,6 @@ with the following path and query parameters:
 | *messageDeduplicationId Strategy* (producer) | Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. | useExchangeId | MessageDeduplicationId Strategy
 | *messageGroupIdStrategy* (producer) | Only for FIFO queues. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. |  | MessageGroupIdStrategy
 | *operation* (producer) | The operation to do in case the user don't want to send only a message |  | SqsOperations
-| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *delayQueue* (advanced) | Define if you want to apply delaySeconds option to the queue or on single messages | false | boolean
 | *queueUrl* (advanced) | To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes. |  | String
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
index 9e01171..3a17d7a 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
@@ -43,6 +43,8 @@ public class SqsConfiguration implements Cloneable {
     private String proxyHost;
     @UriParam(label = "proxy")
     private Integer proxyPort;
+    @UriParam
+    private boolean autoCreateQueue = true;
 
     // consumer properties
     @UriParam(label = "consumer", defaultValue = "true")
@@ -490,11 +492,22 @@ public class SqsConfiguration implements Cloneable {
         this.operation = operation;
     }
     
+    public boolean isAutoCreateQueue() {
+ return autoCreateQueue;
+ }
+
+    /**
+     * Setting the autocreation of the queue
+     */
+ public void setAutoCreateQueue(boolean autoCreateQueue) {
+ this.autoCreateQueue = autoCreateQueue;
+ }
+    
     // *************************************************
     //
     // *************************************************
 
-    public SqsConfiguration copy() {
+ public SqsConfiguration copy() {
         try {
             return (SqsConfiguration)super.clone();
         } catch (CloneNotSupportedException e) {
diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
index 8d3694d..b6892be 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
@@ -110,7 +110,9 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
 
     public void reConnectToQueue() {
         try {
-            getEndpoint().createQueue(getClient());
+         if (getEndpoint().getConfiguration().isAutoCreateQueue()) {
+                getEndpoint().createQueue(getClient());
+         }
         } catch (QueueDeletedRecentlyException qdr) {
             log.debug("Queue recently deleted, will retry in 30 seconds.");
             try {
diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
index d7e8579..18fd053 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
@@ -142,7 +142,7 @@ public class SqsEndpoint extends ScheduledPollEndpoint implements HeaderFilterSt
             }
         }
 
-        if (queueUrl == null) {
+        if (queueUrl == null && configuration.isAutoCreateQueue()) {
             createQueue(client);
         } else {
             log.debug("Using Amazon SQS queue url: {}", queueUrl);
diff --git a/components/camel-aws-sqs/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java b/components/camel-aws-sqs/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
index 201539d..b80ff53 100644
--- a/components/camel-aws-sqs/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
+++ b/components/camel-aws-sqs/src/test/java/org/apache/camel/component/aws/sqs/SqsComponentConfigurationTest.java
@@ -264,4 +264,19 @@ public class SqsComponentConfigurationTest extends CamelTestSupport {
         assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
         assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
     }
+    
+    @Test
+    public void createEndpointWithoutAutoCreation() throws Exception {
+        SqsComponent component = new SqsComponent(context);
+        component.setAccessKey("XXX");
+        component.setSecretKey("YYY");
+        component.setRegion(Regions.US_WEST_1.toString());
+        SqsEndpoint endpoint = (SqsEndpoint)component.createEndpoint("aws-sqs://MyQueue?accessKey=xxxxxx&secretKey=yyyyy&region=US_EAST_1&autoCreateQueue=false");
+        
+        assertEquals("MyQueue", endpoint.getConfiguration().getQueueName());
+        assertEquals("xxxxxx", endpoint.getConfiguration().getAccessKey());
+        assertEquals("yyyyy", endpoint.getConfiguration().getSecretKey());
+        assertEquals("US_EAST_1", endpoint.getConfiguration().getRegion());
+        assertEquals(false, endpoint.getConfiguration().isAutoCreateQueue());
+    }
 }
diff --git a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
index b3f0896..3082327 100644
--- a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
@@ -62,11 +62,6 @@ public class SqsComponentConfiguration
      * placeholders.
      */
     private Boolean resolvePropertyPlaceholders = true;
-    /**
-     * Whether the component should use basic property binding (Camel 2.x) or
-     * the newer property binding with additional capabilities
-     */
-    private Boolean basicPropertyBinding = false;
 
     public SqsConfigurationNestedConfiguration getConfiguration() {
         return configuration;
@@ -110,14 +105,6 @@ public class SqsComponentConfiguration
         this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
     }
 
-    public Boolean getBasicPropertyBinding() {
-        return basicPropertyBinding;
-    }
-
-    public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
-        this.basicPropertyBinding = basicPropertyBinding;
-    }
-
     public static class SqsConfigurationNestedConfiguration {
         public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.sqs.SqsConfiguration.class;
         /**
@@ -287,6 +274,10 @@ public class SqsComponentConfiguration
          * message
          */
         private SqsOperations operation;
+        /**
+         * Setting the autocreation of the queue
+         */
+        private Boolean autoCreateQueue = false;
 
         public String getAmazonAWSHost() {
             return amazonAWSHost;
@@ -547,5 +538,13 @@ public class SqsComponentConfiguration
         public void setOperation(SqsOperations operation) {
             this.operation = operation;
         }
+
+        public Boolean getAutoCreateQueue() {
+            return autoCreateQueue;
+        }
+
+        public void setAutoCreateQueue(Boolean autoCreateQueue) {
+            this.autoCreateQueue = autoCreateQueue;
+        }
     }
 }
\ No newline at end of file

Reply | Threaded
Open this post in threaded view
|

[camel] 02/06: CAMEL-13570 - Fixed CS

acosentino
In reply to this post by acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 9b3fec8ee3a5c6e4c27732936371d9d86bf886b3
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 14:02:27 2019 +0200

    CAMEL-13570 - Fixed CS
---
 .../camel/component/aws/sqs/SqsConfiguration.java  | 105 ++++++++++++---------
 .../camel/component/aws/sqs/SqsConsumer.java       |  48 +++++-----
 2 files changed, 85 insertions(+), 68 deletions(-)

diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
index 3a17d7a..4305a01 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
@@ -96,13 +96,13 @@ public class SqsConfiguration implements Cloneable {
     private Integer receiveMessageWaitTimeSeconds;
     @UriParam(label = "queue")
     private String policy;
-    
+
     // dead letter queue properties
     @UriParam(label = "queue")
     private String redrivePolicy;
 
     /**
-     *  Whether or not the queue is a FIFO queue
+     * Whether or not the queue is a FIFO queue
      */
     boolean isFifoQueue() {
         // AWS docs suggest this is valid derivation.
@@ -184,10 +184,12 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * The duration (in seconds) that the received messages are hidden from subsequent retrieve requests after being retrieved
-     * by a ReceiveMessage request to set in the com.amazonaws.services.sqs.model.SetQueueAttributesRequest.
-     * This only make sense if its different from defaultVisibilityTimeout.
-     * It changes the queue visibility timeout attribute permanently.
+     * The duration (in seconds) that the received messages are hidden from
+     * subsequent retrieve requests after being retrieved by a ReceiveMessage
+     * request to set in the
+     * com.amazonaws.services.sqs.model.SetQueueAttributesRequest. This only
+     * make sense if its different from defaultVisibilityTimeout. It changes the
+     * queue visibility timeout attribute permanently.
      */
     public void setVisibilityTimeout(Integer visibilityTimeout) {
         this.visibilityTimeout = visibilityTimeout;
@@ -198,7 +200,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * A list of attribute names to receive when consuming.  Multiple names can be separated by comma.
+     * A list of attribute names to receive when consuming. Multiple names can
+     * be separated by comma.
      */
     public void setAttributeNames(String attributeNames) {
         this.attributeNames = attributeNames;
@@ -209,7 +212,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * A list of message attribute names to receive when consuming. Multiple names can be separated by comma.
+     * A list of message attribute names to receive when consuming. Multiple
+     * names can be separated by comma.
      */
     public void setMessageAttributeNames(String messageAttributeNames) {
         this.messageAttributeNames = messageAttributeNames;
@@ -242,7 +246,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Define if you want to apply delaySeconds option to the queue or on single messages
+     * Define if you want to apply delaySeconds option to the queue or on single
+     * messages
      */
     public void setDelayQueue(boolean delayQueue) {
         this.delayQueue = delayQueue;
@@ -253,7 +258,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * The maximumMessageSize (in bytes) an SQS message can contain for this queue.
+     * The maximumMessageSize (in bytes) an SQS message can contain for this
+     * queue.
      */
     public void setMaximumMessageSize(Integer maximumMessageSize) {
         this.maximumMessageSize = maximumMessageSize;
@@ -264,7 +270,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * The messageRetentionPeriod (in seconds) a message will be retained by SQS for this queue.
+     * The messageRetentionPeriod (in seconds) a message will be retained by SQS
+     * for this queue.
      */
     public void setMessageRetentionPeriod(Integer messageRetentionPeriod) {
         this.messageRetentionPeriod = messageRetentionPeriod;
@@ -286,7 +293,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Specify the policy that send message to DeadLetter queue. See detail at Amazon docs.
+     * Specify the policy that send message to DeadLetter queue. See detail at
+     * Amazon docs.
      */
     public void setRedrivePolicy(String redrivePolicy) {
         this.redrivePolicy = redrivePolicy;
@@ -297,8 +305,9 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * If enabled then a scheduled background task will keep extending the message visibility on SQS.
-     * This is needed if it takes a long time to process the message. If set to true defaultVisibilityTimeout must be set.
+     * If enabled then a scheduled background task will keep extending the
+     * message visibility on SQS. This is needed if it takes a long time to
+     * process the message. If set to true defaultVisibilityTimeout must be set.
      * See details at Amazon docs.
      */
     public void setExtendMessageVisibility(boolean extendMessageVisibility) {
@@ -310,7 +319,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * If you do not specify WaitTimeSeconds in the request, the queue attribute ReceiveMessageWaitTimeSeconds is used to determine how long to wait.
+     * If you do not specify WaitTimeSeconds in the request, the queue attribute
+     * ReceiveMessageWaitTimeSeconds is used to determine how long to wait.
      */
     public void setReceiveMessageWaitTimeSeconds(Integer receiveMessageWaitTimeSeconds) {
         this.receiveMessageWaitTimeSeconds = receiveMessageWaitTimeSeconds;
@@ -321,7 +331,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Duration in seconds (0 to 20) that the ReceiveMessage action call will wait until a message is in the queue to include in the response.
+     * Duration in seconds (0 to 20) that the ReceiveMessage action call will
+     * wait until a message is in the queue to include in the response.
      */
     public void setWaitTimeSeconds(Integer waitTimeSeconds) {
         this.waitTimeSeconds = waitTimeSeconds;
@@ -332,7 +343,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Specify the queue owner aws account id when you need to connect the queue with different account owner.
+     * Specify the queue owner aws account id when you need to connect the queue
+     * with different account owner.
      */
     public void setQueueOwnerAWSAccountId(String queueOwnerAWSAccountId) {
         this.queueOwnerAWSAccountId = queueOwnerAWSAccountId;
@@ -343,8 +355,10 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Whether or not to send the DeleteMessage to the SQS queue if an exchange fails to get through a filter.
-     * If 'false' and exchange does not make it through a Camel filter upstream in the route, then don't send DeleteMessage.
+     * Whether or not to send the DeleteMessage to the SQS queue if an exchange
+     * fails to get through a filter. If 'false' and exchange does not make it
+     * through a Camel filter upstream in the route, then don't send
+     * DeleteMessage.
      */
     public void setDeleteIfFiltered(boolean deleteIfFiltered) {
         this.deleteIfFiltered = deleteIfFiltered;
@@ -355,7 +369,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL.
+     * Specify the queue region which could be used with queueOwnerAWSAccountId
+     * to build the service URL.
      */
     public void setRegion(String region) {
         this.region = region;
@@ -366,7 +381,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Allows you to use multiple threads to poll the sqs queue to increase throughput
+     * Allows you to use multiple threads to poll the sqs queue to increase
+     * throughput
      */
     public void setConcurrentConsumers(int concurrentConsumers) {
         this.concurrentConsumers = concurrentConsumers;
@@ -377,8 +393,9 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored.
-     * This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes.
+     * To define the queueUrl explicitly. All other parameters, which would
+     * influence the queueUrl, are ignored. This parameter is intended to be
+     * used, to connect to a mock implementation of SQS, for testing purposes.
      */
     public void setQueueUrl(String queueUrl) {
         this.queueUrl = queueUrl;
@@ -411,7 +428,8 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK.
+     * The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a
+     * custom CMK.
      */
     public void setKmsMasterKeyId(String kmsMasterKeyId) {
         this.kmsMasterKeyId = kmsMasterKeyId;
@@ -422,9 +440,10 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt
-     * messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute)
-     * and 86,400 seconds (24 hours). Default: 300 (5 minutes).
+     * The length of time, in seconds, for which Amazon SQS can reuse a data key
+     * to encrypt or decrypt messages before calling AWS KMS again. An integer
+     * representing seconds, between 60 seconds (1 minute) and 86,400 seconds
+     * (24 hours). Default: 300 (5 minutes).
      */
     public void setKmsDataKeyReusePeriodSeconds(Integer kmsDataKeyReusePeriodSeconds) {
         this.kmsDataKeyReusePeriodSeconds = kmsDataKeyReusePeriodSeconds;
@@ -442,9 +461,10 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Only for FIFO queues. Strategy for setting the messageGroupId on the message.
-     * Can be one of the following options: *useConstant*, *useExchangeId*, *usePropertyValue*.
-     * For the *usePropertyValue* option, the value of property "CamelAwsMessageGroupId" will be used.
+     * Only for FIFO queues. Strategy for setting the messageGroupId on the
+     * message. Can be one of the following options: *useConstant*,
+     * *useExchangeId*, *usePropertyValue*. For the *usePropertyValue* option,
+     * the value of property "CamelAwsMessageGroupId" will be used.
      */
     public void setMessageGroupIdStrategy(String strategy) {
         if ("useConstant".equalsIgnoreCase(strategy)) {
@@ -467,9 +487,10 @@ public class SqsConfiguration implements Cloneable {
     }
 
     /**
-     * Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message.
-     * Can be one of the following options: *useExchangeId*, *useContentBasedDeduplication*.
-     * For the *useContentBasedDeduplication* option, no messageDeduplicationId will be set on the message.
+     * Only for FIFO queues. Strategy for setting the messageDeduplicationId on
+     * the message. Can be one of the following options: *useExchangeId*,
+     * *useContentBasedDeduplication*. For the *useContentBasedDeduplication*
+     * option, no messageDeduplicationId will be set on the message.
      */
     public void setMessageDeduplicationIdStrategy(String strategy) {
         if ("useExchangeId".equalsIgnoreCase(strategy)) {
@@ -480,7 +501,7 @@ public class SqsConfiguration implements Cloneable {
             throw new IllegalArgumentException("Unrecognised MessageDeduplicationIdStrategy: " + strategy);
         }
     }
-    
+
     public SqsOperations getOperation() {
         return operation;
     }
@@ -491,23 +512,23 @@ public class SqsConfiguration implements Cloneable {
     public void setOperation(SqsOperations operation) {
         this.operation = operation;
     }
-    
+
     public boolean isAutoCreateQueue() {
- return autoCreateQueue;
- }
+        return autoCreateQueue;
+    }
 
     /**
      * Setting the autocreation of the queue
      */
- public void setAutoCreateQueue(boolean autoCreateQueue) {
- this.autoCreateQueue = autoCreateQueue;
- }
-    
+    public void setAutoCreateQueue(boolean autoCreateQueue) {
+        this.autoCreateQueue = autoCreateQueue;
+    }
+
     // *************************************************
     //
     // *************************************************
 
- public SqsConfiguration copy() {
+    public SqsConfiguration copy() {
         try {
             return (SqsConfiguration)super.clone();
         } catch (CloneNotSupportedException e) {
diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
index b6892be..be11e6b 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConsumer.java
@@ -52,7 +52,7 @@ import org.apache.camel.util.URISupport;
  * <a href="http://aws.amazon.com/sqs/">AWS SQS</a>
  */
 public class SqsConsumer extends ScheduledBatchPollingConsumer {
-    
+
     private ScheduledExecutorService scheduledExecutor;
     private transient String sqsConsumerToString;
     private Collection<String> attributeNames;
@@ -76,7 +76,7 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
         // must reset for each poll
         shutdownRunningTask = null;
         pendingExchanges = 0;
-        
+
         ReceiveMessageRequest request = new ReceiveMessageRequest(getQueueUrl());
         request.setMaxNumberOfMessages(getMaxMessagesPerPoll() > 0 ? getMaxMessagesPerPoll() : null);
         request.setVisibilityTimeout(getConfiguration().getVisibilityTimeout() != null ? getConfiguration().getVisibilityTimeout() : null);
@@ -90,7 +90,7 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
         }
 
         log.trace("Receiving messages with request [{}]...", request);
-        
+
         ReceiveMessageResult messageResult = null;
         try {
             messageResult = getClient().receiveMessage(request);
@@ -103,16 +103,16 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
         if (log.isTraceEnabled()) {
             log.trace("Received {} messages", messageResult.getMessages().size());
         }
-        
+
         Queue<Exchange> exchanges = createExchanges(messageResult.getMessages());
         return processBatch(CastUtils.cast(exchanges));
     }
 
     public void reConnectToQueue() {
         try {
-         if (getEndpoint().getConfiguration().isAutoCreateQueue()) {
+            if (getEndpoint().getConfiguration().isAutoCreateQueue()) {
                 getEndpoint().createQueue(getClient());
-         }
+            }
         } catch (QueueDeletedRecentlyException qdr) {
             log.debug("Queue recently deleted, will retry in 30 seconds.");
             try {
@@ -125,12 +125,12 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
             log.warn("Could not connect to queue in amazon.", e);
         }
     }
-    
+
     protected Queue<Exchange> createExchanges(List<Message> messages) {
         if (log.isTraceEnabled()) {
             log.trace("Received {} messages in this poll", messages.size());
         }
-        
+
         Queue<Exchange> answer = new LinkedList<>();
         for (Message message : messages) {
             Exchange exchange = getEndpoint().createExchange(message);
@@ -139,7 +139,7 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
 
         return answer;
     }
-    
+
     public int processBatch(Queue<Object> exchanges) throws Exception {
         int total = exchanges.size();
 
@@ -162,10 +162,10 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
                 int repeatSeconds = Double.valueOf(visibilityTimeout.doubleValue() * 1.5).intValue();
                 if (log.isDebugEnabled()) {
                     log.debug("Scheduled TimeoutExtender task to start after {} delay, and run with {}/{} period/repeat (seconds), to extend exchangeId: {}",
-                            new Object[]{delay, period, repeatSeconds, exchange.getExchangeId()});
+                              new Object[] {delay, period, repeatSeconds, exchange.getExchangeId()});
                 }
-                final ScheduledFuture<?> scheduledFuture = this.scheduledExecutor.scheduleAtFixedRate(
-                        new TimeoutExtender(exchange, repeatSeconds), delay, period, TimeUnit.SECONDS);
+                final ScheduledFuture<?> scheduledFuture = this.scheduledExecutor.scheduleAtFixedRate(new TimeoutExtender(exchange, repeatSeconds), delay, period,
+                                                                                                      TimeUnit.SECONDS);
                 exchange.addOnCompletion(new Synchronization() {
                     @Override
                     public void onComplete(Exchange exchange) {
@@ -212,7 +212,7 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
 
         return total;
     }
-    
+
     /**
      * Strategy to delete the message after being processed.
      *
@@ -237,12 +237,9 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
     }
 
     private boolean shouldDelete(Exchange exchange) {
-        boolean shouldDeleteByFilter = exchange.getProperty(Exchange.FILTER_MATCHED) != null
-                && getConfiguration().isDeleteIfFiltered()
-                && passedThroughFilter(exchange);
+        boolean shouldDeleteByFilter = exchange.getProperty(Exchange.FILTER_MATCHED) != null && getConfiguration().isDeleteIfFiltered() && passedThroughFilter(exchange);
 
-        return getConfiguration().isDeleteAfterRead()
-                || shouldDeleteByFilter;
+        return getConfiguration().isDeleteAfterRead() || shouldDeleteByFilter;
     }
 
     private boolean passedThroughFilter(Exchange exchange) {
@@ -264,18 +261,18 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
     protected SqsConfiguration getConfiguration() {
         return getEndpoint().getConfiguration();
     }
-    
+
     protected AmazonSQS getClient() {
         return getEndpoint().getClient();
     }
-    
+
     protected String getQueueUrl() {
         return getEndpoint().getQueueUrl();
     }
-    
+
     @Override
     public SqsEndpoint getEndpoint() {
-        return (SqsEndpoint) super.getEndpoint();
+        return (SqsEndpoint)super.getEndpoint();
     }
 
     @Override
@@ -318,8 +315,8 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
 
         @Override
         public void run() {
-            ChangeMessageVisibilityRequest request = new ChangeMessageVisibilityRequest(getQueueUrl(),
-                    exchange.getIn().getHeader(SqsConstants.RECEIPT_HANDLE, String.class), repeatSeconds);
+            ChangeMessageVisibilityRequest request = new ChangeMessageVisibilityRequest(getQueueUrl(), exchange.getIn().getHeader(SqsConstants.RECEIPT_HANDLE, String.class),
+                                                                                        repeatSeconds);
 
             try {
                 log.trace("Extending visibility window by {} seconds for exchange {}", this.repeatSeconds, this.exchange);
@@ -330,8 +327,7 @@ public class SqsConsumer extends ScheduledBatchPollingConsumer {
             } catch (MessageNotInflightException e) {
                 // Ignore.
             } catch (Exception e) {
-                log.warn("Extending visibility window failed for exchange " + exchange
-                        + ". Will not attempt to extend visibility further. This exception will be ignored.", e);
+                log.warn("Extending visibility window failed for exchange " + exchange + ". Will not attempt to extend visibility further. This exception will be ignored.", e);
             }
         }
     }

Reply | Threaded
Open this post in threaded view
|

[camel] 03/06: CAMEL-13570 - Docs

acosentino
In reply to this post by acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit c3cedd15e98293ddfade75d8b9dbcd485551cb98
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 14:06:24 2019 +0200

    CAMEL-13570 - Docs
---
 components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index a4ff572..b550129 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -388,6 +388,11 @@ from("direct:start")
 
 As result you'll get an exchange containing a `ListQueuesResult` instance, that you can examinate to check the actual queues.
 
+### Queue Autocreation
+
+With the option `autoCreateQueue` users are able to avoid the autocreation of an SQS Queue in case it doesn't exist. The default for this option is `true`.
+If set to false any operation on a not-existent queue in AWS won't be successful and an error will be returned.
+
 ### Automatic detection of AmazonSQS client in registry
 
 From Camel 3.0.0-M3 the component will be able to detect the presence of an AmazonSQS bean into the registry.

Reply | Threaded
Open this post in threaded view
|

[camel] 04/06: CAMEL-13570 - Default value for autoCreateQueue is true

acosentino
In reply to this post by acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 65d6be9ae4af1279f8a8a851c262e8a8d9db24f2
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 14:06:56 2019 +0200

    CAMEL-13570 - Default value for autoCreateQueue is true
---
 .../main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
index 4305a01..894a7b1 100644
--- a/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
+++ b/components/camel-aws-sqs/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
@@ -43,7 +43,7 @@ public class SqsConfiguration implements Cloneable {
     private String proxyHost;
     @UriParam(label = "proxy")
     private Integer proxyPort;
-    @UriParam
+    @UriParam(defaultValue = "true")
     private boolean autoCreateQueue = true;
 
     // consumer properties

Reply | Threaded
Open this post in threaded view
|

[camel] 05/06: CAMEL-13570 - Regen docs

acosentino
In reply to this post by acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 88a090b33dac2a0486d7bc8f82053539017a6a02
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 14:08:55 2019 +0200

    CAMEL-13570 - Regen docs
---
 components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc           | 2 +-
 .../camel/component/aws/sqs/springboot/SqsComponentConfiguration.java   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index b550129..c33ee42 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -76,7 +76,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *amazonAWSHost* (common) | The hostname of the Amazon AWS cloud. | amazonaws.com | String
 | *amazonSQSClient* (common) | To use the AmazonSQS as client |  | AmazonSQS
-| *autoCreateQueue* (common) | Setting the autocreation of the queue | false | boolean
+| *autoCreateQueue* (common) | Setting the autocreation of the queue | true | boolean
 | *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to map headers to/from Camel. |  | HeaderFilterStrategy
 | *queueOwnerAWSAccountId* (common) | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
diff --git a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
index 3082327..544961b 100644
--- a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
@@ -277,7 +277,7 @@ public class SqsComponentConfiguration
         /**
          * Setting the autocreation of the queue
          */
-        private Boolean autoCreateQueue = false;
+        private Boolean autoCreateQueue = true;
 
         public String getAmazonAWSHost() {
             return amazonAWSHost;

Reply | Threaded
Open this post in threaded view
|

[camel] 06/06: CAMEL-13570 - Full regen

acosentino
In reply to this post by acosentino
This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 8cec20d8c287a8459b6baa7c366eecbfa45a95b6
Author: Andrea Cosentino <[hidden email]>
AuthorDate: Fri May 24 14:51:28 2019 +0200

    CAMEL-13570 - Full regen
---
 .../camel-aws-sqs/src/main/docs/aws-sqs-component.adoc      |  9 ++++++---
 docs/components/modules/ROOT/pages/aws-sqs-component.adoc   | 11 +++++++++--
 .../aws/sqs/springboot/SqsComponentConfiguration.java       | 13 +++++++++++++
 3 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
index c33ee42..89a046e 100644
--- a/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
+++ b/components/camel-aws-sqs/src/main/docs/aws-sqs-component.adoc
@@ -27,7 +27,7 @@ The queue will be created if they don't already exists. +
 
 
 // component options: START
-The AWS Simple Queue Service component supports 5 options, which are listed below.
+The AWS Simple Queue Service component supports 6 options, which are listed below.
 
 
 
@@ -39,6 +39,7 @@ The AWS Simple Queue Service component supports 5 options, which are listed belo
 | *secretKey* (common) | Amazon AWS Secret Key |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
 | *resolveProperty Placeholders* (advanced) | Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders. | true | boolean
+| *basicPropertyBinding* (advanced) | Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 |===
 // component options: END
 
@@ -68,7 +69,7 @@ with the following path and query parameters:
 |===
 
 
-==== Query Parameters (53 parameters):
+==== Query Parameters (54 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -102,6 +103,7 @@ with the following path and query parameters:
 | *messageDeduplicationId Strategy* (producer) | Only for FIFO queues. Strategy for setting the messageDeduplicationId on the message. Can be one of the following options: useExchangeId, useContentBasedDeduplication. For the useContentBasedDeduplication option, no messageDeduplicationId will be set on the message. | useExchangeId | MessageDeduplicationId Strategy
 | *messageGroupIdStrategy* (producer) | Only for FIFO queues. Strategy for setting the messageGroupId on the message. Can be one of the following options: useConstant, useExchangeId, usePropertyValue. For the usePropertyValue option, the value of property CamelAwsMessageGroupId will be used. |  | MessageGroupIdStrategy
 | *operation* (producer) | The operation to do in case the user don't want to send only a message |  | SqsOperations
+| *basicPropertyBinding* (advanced) | Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities | false | boolean
 | *delayQueue* (advanced) | Define if you want to apply delaySeconds option to the queue or on single messages | false | boolean
 | *queueUrl* (advanced) | To define the queueUrl explicitly. All other parameters, which would influence the queueUrl, are ignored. This parameter is intended to be used, to connect to a mock implementation of SQS, for testing purposes. |  | String
 | *synchronous* (advanced) | Sets whether synchronous processing should be strictly used, or Camel is allowed to use asynchronous processing (if supported). | false | boolean
@@ -145,7 +147,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 38 options, which are listed below.
+The component supports 39 options, which are listed below.
 
 
 
@@ -158,6 +160,7 @@ The component supports 38 options, which are listed below.
 | *camel.component.aws-sqs.configuration.amazon-a-w-s-host* | The hostname of the Amazon AWS cloud. | amazonaws.com | String
 | *camel.component.aws-sqs.configuration.amazon-s-q-s-client* | To use the AmazonSQS as client |  | AmazonSQS
 | *camel.component.aws-sqs.configuration.attribute-names* | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
+| *camel.component.aws-sqs.configuration.auto-create-queue* | Setting the autocreation of the queue | true | Boolean
 | *camel.component.aws-sqs.configuration.concurrent-consumers* | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | Integer
 | *camel.component.aws-sqs.configuration.default-visibility-timeout* | The default visibility timeout (in seconds) |  | Integer
 | *camel.component.aws-sqs.configuration.delay-queue* | Define if you want to apply delaySeconds option to the queue or on single messages | false | Boolean
diff --git a/docs/components/modules/ROOT/pages/aws-sqs-component.adoc b/docs/components/modules/ROOT/pages/aws-sqs-component.adoc
index 4784854..89a046e 100644
--- a/docs/components/modules/ROOT/pages/aws-sqs-component.adoc
+++ b/docs/components/modules/ROOT/pages/aws-sqs-component.adoc
@@ -69,7 +69,7 @@ with the following path and query parameters:
 |===
 
 
-==== Query Parameters (53 parameters):
+==== Query Parameters (54 parameters):
 
 
 [width="100%",cols="2,5,^1,2",options="header"]
@@ -77,6 +77,7 @@ with the following path and query parameters:
 | Name | Description | Default | Type
 | *amazonAWSHost* (common) | The hostname of the Amazon AWS cloud. | amazonaws.com | String
 | *amazonSQSClient* (common) | To use the AmazonSQS as client |  | AmazonSQS
+| *autoCreateQueue* (common) | Setting the autocreation of the queue | true | boolean
 | *headerFilterStrategy* (common) | To use a custom HeaderFilterStrategy to map headers to/from Camel. |  | HeaderFilterStrategy
 | *queueOwnerAWSAccountId* (common) | Specify the queue owner aws account id when you need to connect the queue with different account owner. |  | String
 | *region* (common) | Specify the queue region which could be used with queueOwnerAWSAccountId to build the service URL. |  | String
@@ -146,7 +147,7 @@ When using Spring Boot make sure to use the following Maven dependency to have s
 ----
 
 
-The component supports 38 options, which are listed below.
+The component supports 39 options, which are listed below.
 
 
 
@@ -159,6 +160,7 @@ The component supports 38 options, which are listed below.
 | *camel.component.aws-sqs.configuration.amazon-a-w-s-host* | The hostname of the Amazon AWS cloud. | amazonaws.com | String
 | *camel.component.aws-sqs.configuration.amazon-s-q-s-client* | To use the AmazonSQS as client |  | AmazonSQS
 | *camel.component.aws-sqs.configuration.attribute-names* | A list of attribute names to receive when consuming. Multiple names can be separated by comma. |  | String
+| *camel.component.aws-sqs.configuration.auto-create-queue* | Setting the autocreation of the queue | true | Boolean
 | *camel.component.aws-sqs.configuration.concurrent-consumers* | Allows you to use multiple threads to poll the sqs queue to increase throughput | 1 | Integer
 | *camel.component.aws-sqs.configuration.default-visibility-timeout* | The default visibility timeout (in seconds) |  | Integer
 | *camel.component.aws-sqs.configuration.delay-queue* | Define if you want to apply delaySeconds option to the queue or on single messages | false | Boolean
@@ -389,6 +391,11 @@ from("direct:start")
 
 As result you'll get an exchange containing a `ListQueuesResult` instance, that you can examinate to check the actual queues.
 
+### Queue Autocreation
+
+With the option `autoCreateQueue` users are able to avoid the autocreation of an SQS Queue in case it doesn't exist. The default for this option is `true`.
+If set to false any operation on a not-existent queue in AWS won't be successful and an error will be returned.
+
 ### Automatic detection of AmazonSQS client in registry
 
 From Camel 3.0.0-M3 the component will be able to detect the presence of an AmazonSQS bean into the registry.
diff --git a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
index 544961b..23c657c 100644
--- a/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-aws-sqs-starter/src/main/java/org/apache/camel/component/aws/sqs/springboot/SqsComponentConfiguration.java
@@ -62,6 +62,11 @@ public class SqsComponentConfiguration
      * placeholders.
      */
     private Boolean resolvePropertyPlaceholders = true;
+    /**
+     * Whether the component should use basic property binding (Camel 2.x) or
+     * the newer property binding with additional capabilities
+     */
+    private Boolean basicPropertyBinding = false;
 
     public SqsConfigurationNestedConfiguration getConfiguration() {
         return configuration;
@@ -105,6 +110,14 @@ public class SqsComponentConfiguration
         this.resolvePropertyPlaceholders = resolvePropertyPlaceholders;
     }
 
+    public Boolean getBasicPropertyBinding() {
+        return basicPropertyBinding;
+    }
+
+    public void setBasicPropertyBinding(Boolean basicPropertyBinding) {
+        this.basicPropertyBinding = basicPropertyBinding;
+    }
+
     public static class SqsConfigurationNestedConfiguration {
         public static final Class CAMEL_NESTED_CLASS = org.apache.camel.component.aws.sqs.SqsConfiguration.class;
         /**