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

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

commit 77f02e30befd9e6ef77600c4ee6dcfeb3df02f41
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jul 24 12:29:58 2023 +0200

    CAMEL-18992: HealthCheckComponent to be able to enable/disable per 
component health-checks as standard component configuration.
---
 .../management/mbean/ManagedComponentMBean.java    | 12 +++++++++
 .../camel/management/mbean/ManagedComponent.java   | 30 ++++++++++++++++++++++
 2 files changed, 42 insertions(+)

diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
index b63ba179fff..90c2e6a1b02 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java
@@ -35,6 +35,18 @@ public interface ManagedComponentMBean {
     @ManagedAttribute(description = "Camel ManagementName")
     String getCamelManagementName();
 
+    @ManagedAttribute(description = "Whether this component provides component 
specific health checks")
+    boolean isHealthCheckSupported();
+
+    @ManagedAttribute(description = "Used for enabling or disabling all health 
checks from this component")
+    boolean isHealthCheckEnabled();
+
+    @ManagedAttribute(description = "Used for enabling or disabling all 
consumer based health checks from this component")
+    boolean isHealthCheckConsumerEnabled();
+
+    @ManagedAttribute(description = "Used for enabling or disabling all 
producer based health checks from this component")
+    boolean isHealthCheckProducerEnabled();
+
     @ManagedAttribute(description = "Whether this component support 
verification (parameters or connectivity)")
     boolean isVerifySupported();
 
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
index f892b516e7c..91b3c82e544 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java
@@ -40,6 +40,7 @@ import 
org.apache.camel.api.management.mbean.ComponentVerifierExtension.Verifica
 import 
org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.StandardCode;
 import org.apache.camel.api.management.mbean.ManagedComponentMBean;
 import org.apache.camel.spi.ManagementStrategy;
+import org.apache.camel.support.HealthCheckComponent;
 import org.apache.camel.util.CastUtils;
 
 @ManagedResource(description = "Managed Component")
@@ -92,6 +93,35 @@ public class ManagedComponent implements ManagedInstance, 
ManagedComponentMBean
         return component;
     }
 
+    @Override
+    public boolean isHealthCheckSupported() {
+        return component instanceof HealthCheckComponent;
+    }
+
+    @Override
+    public boolean isHealthCheckEnabled() {
+        if (component instanceof HealthCheckComponent) {
+            return ((HealthCheckComponent) component).isHealthCheckEnabled();
+        }
+        return false;
+    }
+
+    @Override
+    public boolean isHealthCheckConsumerEnabled() {
+        if (component instanceof HealthCheckComponent) {
+            return ((HealthCheckComponent) 
component).isHealthCheckConsumerEnabled();
+        }
+        return false;
+    }
+
+    @Override
+    public boolean isHealthCheckProducerEnabled() {
+        if (component instanceof HealthCheckComponent) {
+            return ((HealthCheckComponent) 
component).isHealthCheckProducerEnabled();
+        }
+        return false;
+    }
+
     @Override
     public boolean isVerifySupported() {
         return 
component.getExtension(org.apache.camel.component.extension.ComponentVerifierExtension.class).isPresent();

Reply via email to