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