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() {

Reply via email to