This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 40b4a0fa7bc health-check: Fixes Camel context health check (#17680)
40b4a0fa7bc is described below
commit 40b4a0fa7bc55b95d47b07d72ad5b24d663d0839
Author: Marco Carletti <[email protected]>
AuthorDate: Mon Apr 7 14:06:24 2025 +0200
health-check: Fixes Camel context health check (#17680)
---
.../camel/impl/health/ContextHealthCheckTest.java | 50 ++++++++++++++++++++++
.../camel/impl/health/ContextHealthCheck.java | 2 +
2 files changed, 52 insertions(+)
diff --git
a/core/camel-core/src/test/java/org/apache/camel/impl/health/ContextHealthCheckTest.java
b/core/camel-core/src/test/java/org/apache/camel/impl/health/ContextHealthCheckTest.java
new file mode 100644
index 00000000000..e65ed8c9bc5
--- /dev/null
+++
b/core/camel-core/src/test/java/org/apache/camel/impl/health/ContextHealthCheckTest.java
@@ -0,0 +1,50 @@
+package org.apache.camel.impl.health;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ServiceStatus;
+import org.apache.camel.health.HealthCheck;
+import org.apache.camel.health.HealthCheckResultBuilder;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.junit.jupiter.api.Test;
+
+import java.util.Map;
+
+import static org.junit.jupiter.api.Assertions.*;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+public class ContextHealthCheckTest {
+
+ @Test
+ public void testOverallStatusOnceTheContextIsStarted() {
+ CamelContext context = new DefaultCamelContext();
+ context.start();
+
+ ContextHealthCheck check = new ContextHealthCheck();
+ check.setCamelContext(context);
+
+ HealthCheck.Result result = check.call();
+
+ assertEquals(HealthCheck.State.UP, result.getState());
+ assertFalse(result.getMessage().isPresent());
+
assertFalse(result.getDetails().containsKey(AbstractHealthCheck.CHECK_ENABLED));
+ assertEquals(ServiceStatus.Started,
result.getDetails().get("context.status"));
+ }
+
+ @Test
+ public void testOverallStatusOnceTheContextIsSuspended() {
+ CamelContext context = new DefaultCamelContext();
+ context.suspend();
+
+ ContextHealthCheck check = new ContextHealthCheck();
+ check.setCamelContext(context);
+
+ HealthCheck.Result result = check.call();
+
+ assertEquals(HealthCheck.State.DOWN, result.getState());
+ assertTrue(result.getMessage().isPresent());
+
assertFalse(result.getDetails().containsKey(AbstractHealthCheck.CHECK_ENABLED));
+ assertEquals(ServiceStatus.Suspended,
result.getDetails().get("context.status"));
+ }
+
+
+}
diff --git
a/core/camel-health/src/main/java/org/apache/camel/impl/health/ContextHealthCheck.java
b/core/camel-health/src/main/java/org/apache/camel/impl/health/ContextHealthCheck.java
index aed5dc79c72..8315d9f4a66 100644
---
a/core/camel-health/src/main/java/org/apache/camel/impl/health/ContextHealthCheck.java
+++
b/core/camel-health/src/main/java/org/apache/camel/impl/health/ContextHealthCheck.java
@@ -71,6 +71,7 @@ public final class ContextHealthCheck extends
AbstractHealthCheck {
break;
case Started:
builder.up();
+ break;
case Stopping:
case Stopped:
case Suspending:
@@ -78,6 +79,7 @@ public final class ContextHealthCheck extends
AbstractHealthCheck {
builder.message("Camel Context '" + name + "' is shutting
down. Status: '" + status + "', Phase: '" + phase
+ "'. Please check the debug log");
builder.down();
+ break;
default:
builder.message("Camel Context '" + name + "' has unknown
Status: " + status);
builder.down();