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:43 UTC
[camel] branch camel-3.x updated (0636fa1aa99 -> ffe171a65fd)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a change to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git
from 0636fa1aa99 CAMEL-19002: camel-jbang - Fix log command when lines do not start with timestamp
new f74bc782dd0 CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
new 1aaf75e02c6 CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
new 060d75f226d CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
new c91e7b0aeb9 CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
new 951928ea304 CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
new ffe171a65fd CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../camel-aws/camel-aws-secrets-manager/pom.xml | 4 ++++
.../SecretsManagerClientHealthCheck.java} | 24 +++++++++++-----------
.../aws/secretsmanager/SecretsManagerEndpoint.java | 18 ++++++++++++++++
...sManagerClientHealthCheckProfileCredsTest.java} | 18 ++++++++--------
...tsManagerClientHealthCheckStaticCredsTest.java} | 18 ++++++++--------
5 files changed, 52 insertions(+), 30 deletions(-)
copy components/camel-aws/{camel-aws2-ddb/src/main/java/org/apache/camel/component/aws2/ddb/Ddb2ClientHealthCheck.java => camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java} (68%)
copy components/camel-aws/{camel-aws2-ses/src/test/java/org/apache/camel/component/aws2/ses/Ses2HealthCheckProfileCredsTest.java => camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java} (83%)
copy components/camel-aws/{camel-aws2-ses/src/test/java/org/apache/camel/component/aws2/ses/Ses2HealthCheckProfileCredsTest.java => camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java} (83%)
[camel] 05/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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 951928ea30414608765e6bf8f3908317795da28d
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:47:42 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>
---
.../SecretsManagerClientHealthCheckProfileCredsTest.java | 6 +++---
.../SecretsManagerClientHealthCheckStaticCredsTest.java | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java
index a37efbabd62..4aa9b30defa 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java
@@ -17,6 +17,9 @@
package org.apache.camel.component.aws.secretsmanager;
+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;
@@ -29,9 +32,6 @@ 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 SecretsManagerClientHealthCheckProfileCredsTest extends CamelTestSupport {
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java
index a1f3108d8db..2268d331dba 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java
@@ -17,6 +17,9 @@
package org.apache.camel.component.aws.secretsmanager;
+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;
@@ -29,9 +32,6 @@ 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 SecretsManagerClientHealthCheckStaticCredsTest extends CamelTestSupport {
[camel] 06/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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 ffe171a65fd6686019c4de2ce49b65fea8f3d566
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:48:08 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 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/components/camel-aws/camel-aws-secrets-manager/pom.xml b/components/camel-aws/camel-aws-secrets-manager/pom.xml
index 5efce52752f..b8df2ee28c5 100644
--- a/components/camel-aws/camel-aws-secrets-manager/pom.xml
+++ b/components/camel-aws/camel-aws-secrets-manager/pom.xml
@@ -65,6 +65,10 @@
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-health</artifactId>
+ </dependency>
<!-- for testing -->
<dependency>
@@ -91,10 +95,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-health</artifactId>
- </dependency>
</dependencies>
<build>
[camel] 04/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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 c91e7b0aeb95d623d943a58af94b9bec4b341c88
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:43:39 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>
---
...tsManagerClientHealthCheckProfileCredsTest.java | 97 ++++++++++++++++++++++
...etsManagerClientHealthCheckStaticCredsTest.java | 97 ++++++++++++++++++++++
2 files changed, 194 insertions(+)
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java
new file mode 100644
index 00000000000..a37efbabd62
--- /dev/null
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckProfileCredsTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.aws.secretsmanager;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.health.HealthCheck;
+import org.apache.camel.health.HealthCheckHelper;
+import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Assertions;
+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 SecretsManagerClientHealthCheckProfileCredsTest extends CamelTestSupport {
+
+ private static final Logger LOG = LoggerFactory.getLogger(SecretsManagerClientHealthCheckProfileCredsTest.class);
+
+ CamelContext context;
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ context = super.createCamelContext();
+ context.getPropertiesComponent().setLocation("ref:prop");
+
+ // install health check manually (yes a bit cumbersome)
+ HealthCheckRegistry registry = new DefaultHealthCheckRegistry();
+ registry.setCamelContext(context);
+ Object hc = registry.resolveById("context");
+ registry.register(hc);
+ hc = registry.resolveById("routes");
+ registry.register(hc);
+ hc = registry.resolveById("consumers");
+ registry.register(hc);
+ context.setExtension(HealthCheckRegistry.class, registry);
+
+ return context;
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+
+ @Override
+ public void configure() {
+ from("direct:listClusters")
+ .to("aws-secrets-manager://test?operation=listSecrets®ion=l&useDefaultCredentialsProvider=true");
+ }
+ };
+ }
+
+ @Test
+ public void testConnectivity() {
+
+ Collection<HealthCheck.Result> res = HealthCheckHelper.invokeLiveness(context);
+ boolean up = res.stream().allMatch(r -> r.getState().equals(HealthCheck.State.UP));
+ Assertions.assertTrue(up, "liveness check");
+
+ // health-check readiness should be down
+ await().atMost(20, TimeUnit.SECONDS).untilAsserted(() -> {
+ Collection<HealthCheck.Result> res2 = HealthCheckHelper.invokeReadiness(context);
+ boolean down = res2.stream().allMatch(r -> r.getState().equals(HealthCheck.State.DOWN));
+ boolean containsAwsSecretsManagerHealthCheck = res2.stream()
+ .filter(result -> result.getCheck().getId().startsWith("aws-secrets-manager-client"))
+ .findAny()
+ .isPresent();
+ boolean hasRegionMessage = res2.stream()
+ .anyMatch(r -> r.getMessage().stream().anyMatch(msg -> msg.contains("region")));
+ Assertions.assertTrue(down, "liveness check");
+ Assertions.assertTrue(containsAwsSecretsManagerHealthCheck, "aws-secrets-manager check");
+ Assertions.assertTrue(hasRegionMessage, "aws-secrets-manager check error message");
+ });
+
+ }
+}
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java
new file mode 100644
index 00000000000..a1f3108d8db
--- /dev/null
+++ b/components/camel-aws/camel-aws-secrets-manager/src/test/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheckStaticCredsTest.java
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.aws.secretsmanager;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.health.HealthCheck;
+import org.apache.camel.health.HealthCheckHelper;
+import org.apache.camel.health.HealthCheckRegistry;
+import org.apache.camel.impl.health.DefaultHealthCheckRegistry;
+import org.apache.camel.test.junit5.CamelTestSupport;
+import org.junit.jupiter.api.Assertions;
+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 SecretsManagerClientHealthCheckStaticCredsTest extends CamelTestSupport {
+
+ private static final Logger LOG = LoggerFactory.getLogger(SecretsManagerClientHealthCheckStaticCredsTest.class);
+
+ CamelContext context;
+
+ @Override
+ protected CamelContext createCamelContext() throws Exception {
+ context = super.createCamelContext();
+ context.getPropertiesComponent().setLocation("ref:prop");
+
+ // install health check manually (yes a bit cumbersome)
+ HealthCheckRegistry registry = new DefaultHealthCheckRegistry();
+ registry.setCamelContext(context);
+ Object hc = registry.resolveById("context");
+ registry.register(hc);
+ hc = registry.resolveById("routes");
+ registry.register(hc);
+ hc = registry.resolveById("consumers");
+ registry.register(hc);
+ context.setExtension(HealthCheckRegistry.class, registry);
+
+ return context;
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+
+ @Override
+ public void configure() {
+ from("direct:listClusters")
+ .to("aws-secrets-manager://test?operation=listSecrets®ion=l&secretKey=l&accessKey=k");
+ }
+ };
+ }
+
+ @Test
+ public void testConnectivity() {
+
+ Collection<HealthCheck.Result> res = HealthCheckHelper.invokeLiveness(context);
+ boolean up = res.stream().allMatch(r -> r.getState().equals(HealthCheck.State.UP));
+ Assertions.assertTrue(up, "liveness check");
+
+ // health-check readiness should be down
+ await().atMost(20, TimeUnit.SECONDS).untilAsserted(() -> {
+ Collection<HealthCheck.Result> res2 = HealthCheckHelper.invokeReadiness(context);
+ boolean down = res2.stream().allMatch(r -> r.getState().equals(HealthCheck.State.DOWN));
+ boolean containsAwsSecManagerHealthCheck = res2.stream()
+ .filter(result -> result.getCheck().getId().startsWith("aws-secrets-manager-client"))
+ .findAny()
+ .isPresent();
+ boolean hasRegionMessage = res2.stream()
+ .anyMatch(r -> r.getMessage().stream().anyMatch(msg -> msg.contains("region")));
+ Assertions.assertTrue(down, "liveness check");
+ Assertions.assertTrue(containsAwsSecManagerHealthCheck, "aws-secrets-manager check");
+ Assertions.assertTrue(hasRegionMessage, "aws-secrets-manager check error message");
+ });
+
+ }
+}
[camel] 02/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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 1aaf75e02c6a2375664f1f1e7b354d2d962821dd
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:37:33 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>
---
.../SecretsManagerClientHealthCheck.java | 77 ++++++++++++++++++++++
1 file changed, 77 insertions(+)
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java
new file mode 100644
index 00000000000..703416cb1a9
--- /dev/null
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.aws.secretsmanager;
+
+import org.apache.camel.health.HealthCheckResultBuilder;
+import org.apache.camel.impl.health.AbstractHealthCheck;
+import org.apache.camel.util.ObjectHelper;
+import software.amazon.awssdk.awscore.exception.AwsServiceException;
+import software.amazon.awssdk.regions.Region;
+import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
+import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
+
+import java.util.Map;
+
+public class SecretsManagerClientHealthCheck extends AbstractHealthCheck {
+
+ private final SecretsManagerEndpoint secretsManagerEndpoint;
+
+ public SecretsManagerClientHealthCheck(SecretsManagerEndpoint secretsManagerEndpoint, String clientId) {
+ super("camel", "aws-secrets-manager-client-" + clientId);
+ this.secretsManagerEndpoint = secretsManagerEndpoint;
+ }
+
+ @Override
+ public boolean isLiveness() {
+ // this health check is only readiness
+ return false;
+ }
+
+ @Override
+ protected void doCall(HealthCheckResultBuilder builder, Map<String, Object> options) {
+ SecretsManagerConfiguration configuration = secretsManagerEndpoint.getConfiguration();
+ if (ObjectHelper.isNotEmpty(configuration.getRegion())) {
+ if (!SecretsManagerClient.serviceMetadata().regions().contains(Region.of(configuration.getRegion()))) {
+ builder.message("The service is not supported in this region");
+ builder.down();
+ return;
+ }
+ }
+ try {
+ SecretsManagerClient secretsManagerClient = secretsManagerEndpoint.getSecretsManagerClient();
+
+ secretsManagerClient.listSecrets(ListSecretsRequest.builder().maxResults(1).build());
+ } catch (AwsServiceException e) {
+ builder.message(e.getMessage());
+ builder.error(e);
+ if (ObjectHelper.isNotEmpty(e.statusCode())) {
+ builder.detail(SERVICE_STATUS_CODE, e.statusCode());
+ }
+ if (ObjectHelper.isNotEmpty(e.awsErrorDetails().errorCode())) {
+ builder.detail(SERVICE_ERROR_CODE, e.awsErrorDetails().errorCode());
+ }
+ builder.down();
+ return;
+ } catch (Exception e) {
+ builder.error(e);
+ builder.down();
+ return;
+ }
+ builder.up();
+ }
+}
[camel] 03/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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 060d75f226d7c82cb81dd986bea5a524204dc2fb
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Fri Feb 3 13:41:06 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>
---
.../component/aws/secretsmanager/SecretsManagerClientHealthCheck.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java
index 703416cb1a9..0a29270ba74 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerClientHealthCheck.java
@@ -17,6 +17,8 @@
package org.apache.camel.component.aws.secretsmanager;
+import java.util.Map;
+
import org.apache.camel.health.HealthCheckResultBuilder;
import org.apache.camel.impl.health.AbstractHealthCheck;
import org.apache.camel.util.ObjectHelper;
@@ -25,8 +27,6 @@ import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.ListSecretsRequest;
-import java.util.Map;
-
public class SecretsManagerClientHealthCheck extends AbstractHealthCheck {
private final SecretsManagerEndpoint secretsManagerEndpoint;
[camel] 01/06: CAMEL-18131 - camel-health - Add health checks for components that has extension for connectivity verification - AWS Secrets Manager
Posted by ac...@apache.org.
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();