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 30d47d1c7c210ecaf9951b82becbd7923dcace59
Author: Andrea Cosentino <[email protected]>
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 <[email protected]>
---
 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 9a403fcdf33..c69427968a0 100644
--- a/components/camel-aws/camel-aws-secrets-manager/pom.xml
+++ b/components/camel-aws/camel-aws-secrets-manager/pom.xml
@@ -86,6 +86,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();

Reply via email to