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 1c4a959e6e26ce4b7f83e3acc2c4248fdcc75814 Author: Claus Ibsen <[email protected]> AuthorDate: Mon Jul 27 20:35:49 2026 +0200 camel-tui: Add Remote column to Consumers tab and use x marker style Co-Authored-By: Claude Opus 4.6 <[email protected]> Signed-off-by: Claus Ibsen <[email protected]> --- .../apache/camel/dsl/jbang/core/commands/tui/ConsumerInfo.java | 1 + .../apache/camel/dsl/jbang/core/commands/tui/ConsumersTab.java | 9 +++++++-- .../apache/camel/dsl/jbang/core/commands/tui/ProducersTab.java | 2 +- .../apache/camel/dsl/jbang/core/commands/tui/StatusParser.java | 1 + 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumerInfo.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumerInfo.java index 17ce5aa06c36..62fb00441da1 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumerInfo.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumerInfo.java @@ -22,6 +22,7 @@ class ConsumerInfo { String state; String className; boolean scheduled; + boolean remote; int inflight; Boolean polling; Long totalCounter; diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumersTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumersTab.java index 74bd30692436..2c9361b3359f 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumersTab.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ConsumersTab.java @@ -43,7 +43,7 @@ import static org.apache.camel.dsl.jbang.core.commands.tui.TuiHelper.*; class ConsumersTab extends AbstractTableTab { ConsumersTab(MonitorContext ctx) { - super(ctx, "id", "status", "type", "inflight", "polls", "uri"); + super(ctx, "id", "status", "type", "remote", "inflight", "polls", "uri"); } @Override @@ -102,6 +102,7 @@ class ConsumersTab extends AbstractTableTab { Cell.from(Span.styled(" " + (ci.id != null ? ci.id : ""), Style.EMPTY.fg(Theme.accent()))), Cell.from(Span.styled(statusText, statusStyle)), Cell.from(type), + Cell.from(ci.remote ? "x" : ""), rightCell(String.valueOf(ci.inflight), 8), rightCell(ci.totalCounter != null ? String.valueOf(ci.totalCounter) : "", 8), Cell.from(schedule), @@ -110,7 +111,7 @@ class ConsumersTab extends AbstractTableTab { } if (rows.isEmpty()) { - rows.add(emptyRow("No consumers", 8)); + rows.add(emptyRow("No consumers", 9)); } Table table = Table.builder() @@ -119,6 +120,7 @@ class ConsumersTab extends AbstractTableTab { Cell.from(Span.styled(" " + sortLabel("ROUTE", "id"), sortStyle("id"))), Cell.from(Span.styled(sortLabel("STATUS", "status"), sortStyle("status"))), Cell.from(Span.styled(sortLabel("TYPE", "type"), sortStyle("type"))), + Cell.from(Span.styled(sortLabel("REMOTE", "remote"), sortStyle("remote"))), rightCell(sortLabel("INFLIGHT", "inflight"), 8, sortStyle("inflight")), rightCell(sortLabel("POLLS", "polls"), 8, sortStyle("polls")), Cell.from(Span.styled("SCHEDULE", Style.EMPTY.bold())), @@ -130,6 +132,7 @@ class ConsumersTab extends AbstractTableTab { Constraint.length(16), Constraint.length(8), Constraint.length(8), + Constraint.length(8), Constraint.length(22), Constraint.length(22), Constraint.fill()) @@ -154,6 +157,7 @@ class ConsumersTab extends AbstractTableTab { String tb = consumerType(b); yield ta.compareToIgnoreCase(tb); } + case "remote" -> Boolean.compare(b.remote, a.remote); case "inflight" -> Integer.compare(b.inflight, a.inflight); case "polls" -> { long la = a.totalCounter != null ? a.totalCounter : 0; @@ -398,6 +402,7 @@ class ConsumersTab extends AbstractTableTab { row.put("state", ci.state); row.put("className", ci.className); row.put("scheduled", ci.scheduled); + row.put("remote", ci.remote); row.put("inflight", ci.inflight); if (ci.totalCounter != null) { row.put("totalCounter", ci.totalCounter); diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ProducersTab.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ProducersTab.java index 38c63698c796..dec2525b51d3 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ProducersTab.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/ProducersTab.java @@ -87,7 +87,7 @@ class ProducersTab extends AbstractTableTab { Cell.from(Span.styled(" " + (pi.routeId != null ? pi.routeId : ""), Style.EMPTY.fg(Theme.accent()))), Cell.from(Span.styled(pi.state != null ? pi.state : "", statusStyle)), Cell.from(type), - Cell.from(pi.remote ? "Yes" : "No"), + Cell.from(pi.remote ? "x" : ""), Cell.from(pi.uri != null ? pi.uri : ""))); } diff --git a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParser.java b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParser.java index aa9883bf048d..014bc2f245b1 100644 --- a/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParser.java +++ b/dsl/camel-jbang/camel-jbang-plugin-tui/src/main/java/org/apache/camel/dsl/jbang/core/commands/tui/StatusParser.java @@ -303,6 +303,7 @@ final class StatusParser { ci.state = cj.getString("state"); ci.className = cj.getString("class"); ci.scheduled = Boolean.TRUE.equals(cj.get("scheduled")); + ci.remote = Boolean.TRUE.equals(cj.get("remote")); ci.inflight = cj.getIntegerOrDefault("inflight", 0); ci.polling = Boolean.TRUE.equals(cj.get("polling")); ci.totalCounter = cj.getLong("totalCounter");
