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 3d2b79b5c2a camel-jbang - Trace should show size of collection/array 3d2b79b5c2a is described below commit 3d2b79b5c2a9b33e65026ecf4e8848d16e75f4bc Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Wed Oct 4 10:58:10 2023 +0200 camel-jbang - Trace should show size of collection/array --- .../org/apache/camel/support/MessageHelper.java | 18 ++++++++++++++ .../core/commands/action/MessageTableHelper.java | 28 +++++++++++++++------- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java index bee600108cd..2f6712103f0 100644 --- a/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java +++ b/core/camel-support/src/main/java/org/apache/camel/support/MessageHelper.java @@ -24,6 +24,8 @@ import java.io.PrintWriter; import java.io.Reader; import java.io.StringWriter; import java.io.Writer; +import java.lang.reflect.Array; +import java.util.Collection; import java.util.List; import java.util.Map; import java.util.TreeMap; @@ -588,6 +590,14 @@ public final class MessageHelper { if (type != null) { sb.append(" type=\"").append(type).append("\""); } + if (body instanceof Collection) { + long size = ((Collection<?>) body).size(); + sb.append(" size=\"").append(size).append("\""); + } + if (body != null && body.getClass().isArray()) { + int size = Array.getLength(body); + sb.append(" size=\"").append(size).append("\""); + } if (body instanceof StreamCache) { long pos = ((StreamCache) body).position(); if (pos != -1) { @@ -996,6 +1006,14 @@ public final class MessageHelper { if (type != null) { jb.put("type", type); } + if (body instanceof Collection) { + long size = ((Collection<?>) body).size(); + jb.put("size", size); + } + if (body != null && body.getClass().isArray()) { + int size = Array.getLength(body); + jb.put("size", size); + } if (body instanceof StreamCache) { long pos = ((StreamCache) body).position(); if (pos != -1) { 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 8e35ad46696..71b2cb84479 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 @@ -166,7 +166,8 @@ public class MessageTableHelper { // body and type JsonObject jo = root.getMap("body"); if (jo != null) { - TableRow bodyRow = new TableRow("Body", jo.getString("type"), null, jo.get("value"), jo.getLong("position")); + TableRow bodyRow = new TableRow( + "Body", jo.getString("type"), null, jo.get("value"), jo.getLong("size"), jo.getLong("position")); tab5 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(bodyRow), Arrays.asList( new Column().dataAlign(HorizontalAlign.LEFT) .minWidth(showExchangeProperties ? 12 : 10).with(TableRow::kindAsString), @@ -239,17 +240,19 @@ public class MessageTableHelper { String key; Object value; Long position; + Long size; TableRow(String kind, String type, String key, Object value) { - this(kind, type, key, value, null); + this(kind, type, key, value, null, null); } - TableRow(String kind, String type, String key, Object value, Long position) { + TableRow(String kind, String type, String key, Object value, Long size, Long position) { this.kind = kind; this.type = type; this.key = key; this.value = value; this.position = position; + this.size = size; } String valueAsString() { @@ -378,13 +381,20 @@ public class MessageTableHelper { } s = "(" + s + ")"; int l = valueLength(); + long sz = size != null ? size : -1; long p = position != null ? position : -1; - if (l != -1 & p != -1) { - s = s + " (pos: " + p + " length: " + l + ")"; - } else if (l != -1) { - s = s + " (length: " + l + ")"; - } else if (p != -1) { - s = s + " (pos: " + p + ")"; + StringBuilder sb = new StringBuilder(); + if (sz != -1) { + sb.append(" size: ").append(sz); + } + if (p != -1) { + sb.append(" pos: ").append(p); + } + if (l != -1) { + sb.append(" bytes: ").append(l); + } + if (!sb.isEmpty()) { + s = s + " (" + sb.toString().trim() + ")"; } if (loggingColor) { s = Ansi.ansi().fgBrightDefault().a(Ansi.Attribute.INTENSITY_FAINT).a(s).reset().toString();