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 1c2421575adec92885a1ed132f3419b9fd5fdd67 Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Apr 27 13:29:31 2021 +0200 CAMEL-16465 - Camel-AWS: Add useDefaultCredentialProvider option to all the components - DynamoDB Component --- .../camel/component/aws2/ddb/Ddb2Component.java | 4 +- .../camel/component/aws2/ddb/Ddb2Endpoint.java | 50 ++-------------------- 2 files changed, 5 insertions(+), 49 deletions(-) diff --git a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java index d8418cf..c0deb31 100644 --- a/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java +++ b/components/camel-aws/camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2Component.java @@ -54,9 +54,9 @@ public class Ddb2Component extends DefaultComponent { configuration.setTableName(remaining); Ddb2Endpoint endpoint = new Ddb2Endpoint(uri, this, configuration); setProperties(endpoint, parameters); - if (configuration.getAmazonDDBClient() == null + if (!configuration.isUseDefaultCredentialsProvider() && configuration.getAmazonDDBClient() == null && (configuration.getAccessKey() == null || configuration.getSecretKey() == null)) { - throw new IllegalArgumentException("amazonDDBClient or accessKey and secretKey must be specified"); + throw new IllegalArgumentException("useDefaultCredentialsProvider is set to false, amazonDDBClient or accessKey and secretKey must be specified"); } return endpoint; 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 676a33e..3f19d6e 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 @@ -23,6 +23,7 @@ import org.apache.camel.Component; import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; +import org.apache.camel.component.aws2.ddb.client.Ddb2ClientFactory; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.support.ScheduledPollEndpoint; @@ -82,7 +83,8 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint { public void doStart() throws Exception { super.doStart(); - ddbClient = configuration.getAmazonDDBClient() != null ? configuration.getAmazonDDBClient() : createDdbClient(); + ddbClient = configuration.getAmazonDDBClient() != null + ? configuration.getAmazonDDBClient() : Ddb2ClientFactory.getDynamoDBClient(configuration).getDynamoDBClient(); String tableName = getConfiguration().getTableName(); LOG.trace("Querying whether table [{}] already exists...", tableName); @@ -139,52 +141,6 @@ public class Ddb2Endpoint extends ScheduledPollEndpoint { return ddbClient; } - DynamoDbClient createDdbClient() { - DynamoDbClient client = null; - DynamoDbClientBuilder clientBuilder = DynamoDbClient.builder(); - ProxyConfiguration.Builder proxyConfig = null; - ApacheHttpClient.Builder httpClientBuilder = null; - boolean isClientConfigFound = false; - if (ObjectHelper.isNotEmpty(configuration.getProxyHost()) && ObjectHelper.isNotEmpty(configuration.getProxyPort())) { - proxyConfig = ProxyConfiguration.builder(); - URI proxyEndpoint = URI.create(configuration.getProxyProtocol() + "://" + configuration.getProxyHost() + ":" - + configuration.getProxyPort()); - proxyConfig.endpoint(proxyEndpoint); - httpClientBuilder = ApacheHttpClient.builder().proxyConfiguration(proxyConfig.build()); - isClientConfigFound = true; - } - if (configuration.getAccessKey() != null && configuration.getSecretKey() != null) { - AwsBasicCredentials cred = AwsBasicCredentials.create(configuration.getAccessKey(), configuration.getSecretKey()); - if (isClientConfigFound) { - clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder) - .credentialsProvider(StaticCredentialsProvider.create(cred)); - } else { - clientBuilder = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred)); - } - } else { - if (!isClientConfigFound) { - clientBuilder = clientBuilder.httpClientBuilder(httpClientBuilder); - } - } - if (ObjectHelper.isNotEmpty(configuration.getRegion())) { - clientBuilder = clientBuilder.region(Region.of(configuration.getRegion())); - } - if (configuration.isOverrideEndpoint()) { - clientBuilder.endpointOverride(URI.create(configuration.getUriEndpointOverride())); - } - if (configuration.isTrustAllCertificates()) { - SdkHttpClient ahc = ApacheHttpClient.builder().buildWithDefaults(AttributeMap - .builder() - .put( - SdkHttpConfigurationOption.TRUST_ALL_CERTIFICATES, - Boolean.TRUE) - .build()); - clientBuilder.httpClient(ahc); - } - client = clientBuilder.build(); - return client; - } - private void waitForTableToBecomeAvailable(String tableName) { LOG.trace("Waiting for [{}] to become ACTIVE...", tableName);
