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

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


The following commit(s) were added to refs/heads/camel-4.10.x by this push:
     new 4610a58a9a5 CAMEL-21934: Additional Information Needed in 
ContextHealthCheck message (#17656)
4610a58a9a5 is described below

commit 4610a58a9a5e3ddc17b3e6fef2dbb256b3050c18
Author: Luigi De Masi <[email protected]>
AuthorDate: Fri Apr 4 19:49:48 2025 +0200

    CAMEL-21934: Additional Information Needed in ContextHealthCheck message 
(#17656)
---
 .../camel/impl/health/ContextHealthCheck.java      | 37 +++++++++++++++++-----
 1 file changed, 29 insertions(+), 8 deletions(-)

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 9f7c9b29a62..aed5dc79c72 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
@@ -20,6 +20,7 @@ import java.util.Map;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.Ordered;
+import org.apache.camel.ServiceStatus;
 import org.apache.camel.health.HealthCheckResultBuilder;
 
 /**
@@ -50,16 +51,36 @@ public final class ContextHealthCheck extends 
AbstractHealthCheck {
         builder.unknown();
 
         if (getCamelContext() != null) {
-            builder.detail("context.name", getCamelContext().getName());
+            ServiceStatus status = getCamelContext().getStatus();
+            byte phase = 
getCamelContext().getCamelContextExtension().getStatusPhase();
+            String name = getCamelContext().getName();
+
+            builder.detail("context.name", name);
             builder.detail("context.version", getCamelContext().getVersion());
-            builder.detail("context.status", 
getCamelContext().getStatus().name());
-            builder.detail("context.phase", 
getCamelContext().getCamelContextExtension().getStatusPhase());
+            builder.detail("context.status", status);
+            builder.detail("context.phase", phase);
 
-            if (getCamelContext().getStatus().isStarted()) {
-                builder.up();
-            } else {
-                // not ready also during graceful shutdown
-                builder.down();
+            switch (status) {
+                case Initializing:
+                case Initialized:
+                case Starting:
+                    builder.message(
+                            "Camel Context '" + name + "' is starting. Status: 
'" + status + "', Phase: '" + phase
+                                    + "'. Please wait...");
+                    builder.down();
+                    break;
+                case Started:
+                    builder.up();
+                case Stopping:
+                case Stopped:
+                case Suspending:
+                case Suspended:
+                    builder.message("Camel Context '" + name + "' is shutting 
down. Status: '" + status + "', Phase: '" + phase
+                                    + "'. Please check the debug log");
+                    builder.down();
+                default:
+                    builder.message("Camel Context '" + name + "' has unknown 
Status: " + status);
+                    builder.down();
             }
         }
     }

Reply via email to