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
The following commit(s) were added to refs/heads/main by this push: new e9f4771d429 camel-jbang - Improve browse command e9f4771d429 is described below commit e9f4771d4290717808b64a42be84f60c408788fe Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Thu Sep 12 09:36:48 2024 +0200 camel-jbang - Improve browse command --- .../core/commands/action/CamelBrowseAction.java | 3 ++- .../core/commands/action/MessageTableHelper.java | 29 ++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelBrowseAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelBrowseAction.java index 9f3b533f286..4437109ad83 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelBrowseAction.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelBrowseAction.java @@ -273,7 +273,8 @@ public class CamelBrowseAction extends ActionBaseCommand { .with(r -> r.name), new Column().header("AGE").headerAlign(HorizontalAlign.CENTER).with(r -> r.ago), new Column().header("SIZE").headerAlign(HorizontalAlign.RIGHT).with(this::getQueueSize), - new Column().header("SINCE").headerAlign(HorizontalAlign.CENTER).with(this::getMessageAgo), + new Column().header("SINCE").headerAlign(HorizontalAlign.CENTER).dataAlign(HorizontalAlign.LEFT) + .with(this::getMessageAgo), new Column().header("ENDPOINT").visible(!wideUri).dataAlign(HorizontalAlign.LEFT) .maxWidth(90, OverflowBehaviour.ELLIPSIS_RIGHT) .with(this::getEndpointUri), diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java index 5fde1c54e44..da41fb63849 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/MessageTableHelper.java @@ -16,6 +16,7 @@ */ package org.apache.camel.dsl.jbang.core.commands.action; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -27,6 +28,7 @@ import com.github.freva.asciitable.Column; import com.github.freva.asciitable.HorizontalAlign; import com.github.freva.asciitable.OverflowBehaviour; import org.apache.camel.dsl.jbang.core.common.CamelCommandHelper; +import org.apache.camel.util.TimeUtils; import org.apache.camel.util.json.JsonArray; import org.apache.camel.util.json.JsonObject; import org.apache.camel.util.json.Jsoner; @@ -201,7 +203,23 @@ public class MessageTableHelper { if (arr != null) { for (Object o : arr) { JsonObject jo = (JsonObject) o; - rows.add(new TableRow("Header", jo.getString("type"), jo.getString("key"), jo.get("value"))); + String key = jo.getString("key"); + Object value = jo.get("value"); + if ("CamelMessageTimestamp".equals(key)) { + long val = jo.getLongOrDefault("value", 0); + if (val > 0) { + String df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(val); + String since = TimeUtils.printSince(val); + value = "(" + df + " / " + since + " ago)"; + if (loggingColor) { + value = val + " " + Ansi.ansi().fgBrightDefault().a(Ansi.Attribute.INTENSITY_FAINT).a(value) + .reset().toString(); + } else { + value = val + " " + value; + } + } + } + rows.add(new TableRow("Header", jo.getString("type"), key, value)); } } if (!rows.isEmpty()) { @@ -318,7 +336,14 @@ public class MessageTableHelper { } String valueAsString() { - return value != null ? value.toString() : "null"; + if (value == null || "null".equals(value)) { + if (loggingColor) { + value = Ansi.ansi().fgBrightDefault().a(Ansi.Attribute.INTENSITY_FAINT).a(value).reset().toString(); + } else { + value = "null"; + } + } + return value.toString(); } String valueAsStringPretty() {