This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
commit 0e8d2664e2691f5f13fd0594062f7dbb4eb3d5ba Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Mon Dec 20 18:05:56 2021 +0100 CAMEL-15951 - Introduce configuration property to skip DescribeTable operation on start of aws2-ddb component --- .../component/aws2/ddb/Ddb2Configuration.java | 13 ++++++++ .../camel/component/aws2/ddb/Ddb2Endpoint.java | 36 ++++++++++++---------- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Configuration.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Configuration.java index de82380..3d81fcf 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Configuration.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Configuration.java @@ -67,6 +67,8 @@ public class Ddb2Configuration implements Cloneable { private String uriEndpointOverride; @UriParam(defaultValue = "false") private boolean useDefaultCredentialsProvider; + @UriParam(defaultValue = "true") + private boolean enabledInitialDescribeTable; public String getAccessKey() { return accessKey; @@ -280,6 +282,17 @@ public class Ddb2Configuration implements Cloneable { return useDefaultCredentialsProvider; } + public boolean isEnabledInitialDescribeTable() { + return enabledInitialDescribeTable; + } + + /** + * Set whether the initial Describe table operation in the DDB Endpoint must be done, or not. + */ + public void setEnabledInitialDescribeTable(boolean enabledInitialDescribeTable) { + this.enabledInitialDescribeTable = enabledInitialDescribeTable; + } + // ************************************************* // // ************************************************* diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java index 9f74084..caec89d 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Endpoint.java @@ -85,24 +85,26 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint { String tableName = getConfiguration().getTableName(); LOG.trace("Querying whether table [{}] already exists...", tableName); - try { - DescribeTableRequest.Builder request = DescribeTableRequest.builder().tableName(tableName); - TableDescription tableDescription = ddbClient.describeTable(request.build()).table(); - if (!isTableActive(tableDescription)) { - waitForTableToBecomeAvailable(tableName); - } - - LOG.trace("Table [{}] already exists", tableName); - return; - } catch (ResourceNotFoundException e) { - LOG.trace("Table [{}] doesn't exist yet", tableName); - LOG.trace("Creating table [{}]...", tableName); - TableDescription tableDescription = createTable(tableName); - if (!isTableActive(tableDescription)) { - waitForTableToBecomeAvailable(tableName); + if (configuration.isEnabledInitialDescribeTable()) { + try { + DescribeTableRequest.Builder request = DescribeTableRequest.builder().tableName(tableName); + TableDescription tableDescription = ddbClient.describeTable(request.build()).table(); + if (!isTableActive(tableDescription)) { + waitForTableToBecomeAvailable(tableName); + } + + LOG.trace("Table [{}] already exists", tableName); + return; + } catch (ResourceNotFoundException e) { + LOG.trace("Table [{}] doesn't exist yet", tableName); + LOG.trace("Creating table [{}]...", tableName); + TableDescription tableDescription = createTable(tableName); + if (!isTableActive(tableDescription)) { + waitForTableToBecomeAvailable(tableName); + } + + LOG.trace("Table [{}] created", tableName); } - - LOG.trace("Table [{}] created", tableName); } }