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();
