You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2022/09/20 07:59:39 UTC

[camel] 02/03: Fixing the health check to using default credentials provider or passing a custom client instance

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 38807619aed345f41c8126b2bd6655b1b4f3c8f3
Author: Rhuan Rocha <rh...@gmail.com>
AuthorDate: Mon Sep 19 15:59:08 2022 -0300

    Fixing the health check to using default credentials provider or passing a custom client instance
    
    Signed-off-by: Rhuan Rocha <rh...@gmail.com>
---
 .../aws2/athena/Athena2ClientHealthCheck.java       | 21 ++++++++++++++++-----
 ...> Athena2ClientHealthCheckCustomClientTest.java} | 15 ++++++++-------
 ...> Athena2ClientHealthCheckProfileCredsTest.java} |  6 +++---
 ...=> Athena2ClientHealthCheckStaticCredsTest.java} | 12 ++++++------
 4 files changed, 33 insertions(+), 21 deletions(-)

diff --git a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
index e80214f3379..24390c939bc 100644
--- a/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
+++ b/components/camel-aws/camel-aws2-athena/src/main/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheck.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.camel.health.HealthCheckResultBuilder;
 import org.apache.camel.impl.health.AbstractHealthCheck;
+import org.apache.camel.util.ObjectHelper;
 import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
 import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
 import software.amazon.awssdk.awscore.exception.AwsServiceException;
@@ -54,11 +55,21 @@ public class Athena2ClientHealthCheck extends AbstractHealthCheck {
                 builder.down();
                 return;
             }
-            AwsBasicCredentials cred = AwsBasicCredentials.create(athena2Endpoint.getConfiguration().getAccessKey(),
-                    athena2Endpoint.getConfiguration().getSecretKey());
-            AthenaClientBuilder clientBuilder = AthenaClient.builder();
-            AthenaClient client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred))
-                    .region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+            AthenaClient client;
+            if(!athena2Endpoint.getConfiguration().isUseDefaultCredentialsProvider()){
+                AwsBasicCredentials cred = AwsBasicCredentials.create(athena2Endpoint.getConfiguration().getAccessKey(),
+                        athena2Endpoint.getConfiguration().getSecretKey());
+                AthenaClientBuilder clientBuilder = AthenaClient.builder();
+                client = clientBuilder.credentialsProvider(StaticCredentialsProvider.create(cred))
+                        .region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+            }
+            else if(ObjectHelper.isNotEmpty(athena2Endpoint.getConfiguration().getAmazonAthenaClient())){
+                client = athena2Endpoint.getConfiguration().getAmazonAthenaClient();
+            }
+            else{
+                AthenaClientBuilder clientBuilder = AthenaClient.builder();
+                client = clientBuilder.region(Region.of(athena2Endpoint.getConfiguration().getRegion())).build();
+            }
             client.listQueryExecutions();
         } catch (AwsServiceException e) {
             builder.message(e.getMessage());
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
similarity index 91%
copy from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
copy to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
index 915edf9bf90..de65e4a9bb5 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckCustomClientTest.java
@@ -17,9 +17,6 @@
 
 package org.apache.camel.component.aws2.athena;
 
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.health.HealthCheck;
@@ -32,11 +29,14 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+
 import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
 
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckCustomClientTest extends CamelTestSupport {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckCustomClientTest.class);
 
     CamelContext context;
 
@@ -44,7 +44,8 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
     protected CamelContext createCamelContext() throws Exception {
         context = super.createCamelContext();
         context.getPropertiesComponent().setLocation("ref:prop");
-
+        AmazonAthenaClientMock clientMock = new AmazonAthenaClientMock();
+        context.getRegistry().bind("amazonAthenaClient", clientMock);
         // install health check manually (yes a bit cumbersome)
         HealthCheckRegistry registry = new DefaultHealthCheckRegistry();
         registry.setCamelContext(context);
@@ -66,7 +67,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
             @Override
             public void configure() {
                 from("direct:getQueryExecution")
-                        .to("aws2-athena://label?accessKey=xxx&secretKey=yyy&region=l");
+                        .to("aws2-athena://label?region=l");
             }
         };
     }
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
similarity index 94%
copy from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
copy to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
index 915edf9bf90..63b7a825398 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckProfileCredsTest.java
@@ -34,9 +34,9 @@ import org.slf4j.LoggerFactory;
 
 import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
 
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckProfileCredsTest extends CamelTestSupport {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckProfileCredsTest.class);
 
     CamelContext context;
 
@@ -66,7 +66,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
             @Override
             public void configure() {
                 from("direct:getQueryExecution")
-                        .to("aws2-athena://label?accessKey=xxx&secretKey=yyy&region=l");
+                        .to("aws2-athena://label?region=l&useDefaultCredentialsProvider=true");
             }
         };
     }
diff --git a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
similarity index 94%
rename from components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
rename to components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
index 915edf9bf90..81746543e84 100644
--- a/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckTest.java
+++ b/components/camel-aws/camel-aws2-athena/src/test/java/org/apache/camel/component/aws2/athena/Athena2ClientHealthCheckStaticCredsTest.java
@@ -17,9 +17,6 @@
 
 package org.apache.camel.component.aws2.athena;
 
-import java.util.Collection;
-import java.util.concurrent.TimeUnit;
-
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.health.HealthCheck;
@@ -32,11 +29,14 @@ import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+
 import static org.testcontainers.shaded.org.awaitility.Awaitility.await;
 
-public class Athena2ClientHealthCheckTest extends CamelTestSupport {
+public class Athena2ClientHealthCheckStaticCredsTest extends CamelTestSupport {
 
-    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckTest.class);
+    private static final Logger LOG = LoggerFactory.getLogger(Athena2ClientHealthCheckStaticCredsTest.class);
 
     CamelContext context;
 
@@ -66,7 +66,7 @@ public class Athena2ClientHealthCheckTest extends CamelTestSupport {
             @Override
             public void configure() {
                 from("direct:getQueryExecution")
-                        .to("aws2-athena://label?accessKey=xxx&secretKey=yyy&region=l");
+                        .to("aws2-athena://label?region=l&secretKey=l&accessKey=k");
             }
         };
     }