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 2023/02/03 12:57:44 UTC

[camel] 01/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager

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

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

commit f74bc782dd0d81dfb656691ebda32df12a020163
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:37:18 2023 +0100

    CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
    
    Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
 components/camel-aws/camel-aws-secrets-manager/pom.xml |  4 ++++
 .../aws/secretsmanager/SecretsManagerEndpoint.java     | 18 ++++++++++++++++++
 2 files changed, 22 insertions(+)

diff --git a/components/camel-aws/camel-aws-secrets-manager/pom.xml b/components/camel-aws/camel-aws-secrets-manager/pom.xml
index e4cf76857ca..5efce52752f 100644
--- a/components/camel-aws/camel-aws-secrets-manager/pom.xml
+++ b/components/camel-aws/camel-aws-secrets-manager/pom.xml
@@ -91,6 +91,10 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel</groupId>
+            <artifactId>camel-health</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java
index b93c491f72f..85fc12b5e2a 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerEndpoint.java
@@ -22,6 +22,8 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.aws.secretsmanager.client.SecretsManagerClientFactory;
+import org.apache.camel.health.HealthCheckHelper;
+import org.apache.camel.impl.health.ComponentsHealthCheckRepository;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.support.ScheduledPollEndpoint;
@@ -38,6 +40,9 @@ public class SecretsManagerEndpoint extends ScheduledPollEndpoint {
 
     private SecretsManagerClient secretsManagerClient;
 
+    private ComponentsHealthCheckRepository healthCheckRepository;
+    private SecretsManagerClientHealthCheck clientHealthCheck;
+
     @UriParam
     private SecretsManagerConfiguration configuration;
 
@@ -63,10 +68,23 @@ public class SecretsManagerEndpoint extends ScheduledPollEndpoint {
         secretsManagerClient = configuration.getSecretsManagerClient() != null
                 ? configuration.getSecretsManagerClient()
                 : SecretsManagerClientFactory.getSecretsManagerClient(configuration).getSecretsManagerClient();
+
+        healthCheckRepository = HealthCheckHelper.getHealthCheckRepository(getCamelContext(),
+                ComponentsHealthCheckRepository.REPOSITORY_ID, ComponentsHealthCheckRepository.class);
+
+        if (healthCheckRepository != null) {
+            clientHealthCheck = new SecretsManagerClientHealthCheck(this, getId());
+            healthCheckRepository.addHealthCheck(clientHealthCheck);
+        }
     }
 
     @Override
     public void doStop() throws Exception {
+        if (healthCheckRepository != null && clientHealthCheck != null) {
+            healthCheckRepository.removeHealthCheck(clientHealthCheck);
+            clientHealthCheck = null;
+        }
+
         if (ObjectHelper.isEmpty(configuration.getSecretsManagerClient())) {
             if (secretsManagerClient != null) {
                 secretsManagerClient.close();