You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/07/27 04:34:50 UTC

[camel] 01/01: CAMEL-18992: HealthCheckComponent to be able to enable/disable per component health-checks as standard component configuration.

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

davsclaus pushed a commit to branch hcinit
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 934c53c297d15b3a571f04ad9e1f04b9acdb79f9
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Jul 27 06:34:33 2023 +0200

    CAMEL-18992: HealthCheckComponent to be able to enable/disable per component health-checks as standard component configuration.
---
 core/camel-api/src/main/java/org/apache/camel/Endpoint.java   |  2 +-
 .../apache/camel/support/DefaultInterceptSendToEndpoint.java  | 11 +++++++++++
 .../java/org/apache/camel/support/ScheduledPollConsumer.java  |  6 ++++++
 3 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
index d7865244d0d..e7cd23e4aaf 100644
--- a/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
+++ b/core/camel-api/src/main/java/org/apache/camel/Endpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.support.service.ServiceSupport;
  * @see Exchange
  * @see Message
  */
-public interface Endpoint extends IsSingleton, Service {
+public interface Endpoint extends IsSingleton, Service, ComponentAware {
 
     /**
      * Returns the string representation of the endpoint URI
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/DefaultInterceptSendToEndpoint.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultInterceptSendToEndpoint.java
index b35c1ef0893..ba811529088 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/DefaultInterceptSendToEndpoint.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultInterceptSendToEndpoint.java
@@ -20,6 +20,7 @@ import java.util.Map;
 
 import org.apache.camel.AsyncProducer;
 import org.apache.camel.CamelContext;
+import org.apache.camel.Component;
 import org.apache.camel.Consumer;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
@@ -126,6 +127,16 @@ public class DefaultInterceptSendToEndpoint implements InterceptSendToEndpoint,
         return delegate.getCamelContext();
     }
 
+    @Override
+    public void setComponent(Component component) {
+        delegate.setComponent(component);
+    }
+
+    @Override
+    public Component getComponent() {
+        return delegate.getComponent();
+    }
+
     @Override
     public Producer createProducer() throws Exception {
         return createAsyncProducer();
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
index c12bfc67158..3048f30374d 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
@@ -23,6 +23,7 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.apache.camel.Component;
 import org.apache.camel.Endpoint;
 import org.apache.camel.Exchange;
 import org.apache.camel.FailedToCreateConsumerException;
@@ -566,6 +567,11 @@ public abstract class ScheduledPollConsumer extends DefaultConsumer
     protected void doInit() throws Exception {
         super.doInit();
 
+        Component component = getEndpoint().getComponent();
+        if (component instanceof HealthCheckComponent hcc) {
+            getHealthCheck().setEnabled(hcc.isHealthCheckEnabled() && hcc.isHealthCheckConsumerEnabled());
+        }
+
         // validate that if backoff multiplier is in use, the threshold values is set correctly
         if (backoffMultiplier > 0) {
             if (backoffIdleThreshold <= 0 && backoffErrorThreshold <= 0) {