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