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