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

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

commit 8627338fde576977904646f6f9c70ddd3d8e27cb
Author: Claus Ibsen <[email protected]>
AuthorDate: Fri Jul 3 14:12:57 2026 +0200

    CAMEL-23831: Detect integration reload and show notification in camel-tui
    
    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    Signed-off-by: Claus Ibsen <[email protected]>
---
 .../dsl/jbang/core/commands/tui/CamelMonitor.java   |  5 +++++
 .../jbang/core/commands/tui/DataRefreshService.java | 21 +++++++++++++++++++++
 2 files changed, 26 insertions(+)

diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
index 6114ad04fbfd..0d89f379b83c 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/CamelMonitor.java
@@ -1051,6 +1051,11 @@ public class CamelMonitor extends CamelCommand {
                         Constraint.length(1))
                 .split(area);
 
+        String reloadMsg = dataService.consumeReloadNotification();
+        if (reloadMsg != null) {
+            setNotification(reloadMsg, false);
+        }
+
         renderHeader(frame, mainChunks.get(0));
         renderTabs(frame, mainChunks.get(1));
         lastTabsArea = mainChunks.get(1);
diff --git 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
index 7285ed4337fc..bb90d7322c52 100644
--- 
a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
+++ 
b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/DataRefreshService.java
@@ -92,6 +92,9 @@ class DataRefreshService {
     // OTel span data -- shared between CamelMonitor and SpansTab
     private final AtomicReference<List<SpanEntry>> otelSpans = new 
AtomicReference<>(List.of());
 
+    private final Map<String, Integer> lastReloadCount = new 
ConcurrentHashMap<>();
+    private volatile String reloadNotification;
+
     private volatile long lastRefresh;
     private final AtomicBoolean refreshInProgress = new AtomicBoolean(false);
 
@@ -265,6 +268,7 @@ class DataRefreshService {
                     metrics.updateCbHistory(info);
                     metrics.updateHeapHistory(info);
                     metrics.updateLoadMetrics(ph, info);
+                    detectReload(info);
                 }
             }
         }
@@ -656,6 +660,23 @@ class DataRefreshService {
 
     // ---- Helpers ----
 
+    private void detectReload(IntegrationInfo info) {
+        if (info.pid == null || info.reloaded <= 0) {
+            return;
+        }
+        Integer prev = lastReloadCount.put(info.pid, info.reloaded);
+        if (prev != null && info.reloaded > prev) {
+            String label = info.name != null ? info.name : info.pid;
+            reloadNotification = label + " reloaded";
+        }
+    }
+
+    String consumeReloadNotification() {
+        String msg = reloadNotification;
+        reloadNotification = null;
+        return msg;
+    }
+
     private List<Long> findPids(String name) {
         return TuiHelper.findPids(name, statusFileResolver);
     }

Reply via email to