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 93e3d74d5f43568879e458661fcf9a70a284b500 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Sun Mar 5 11:53:39 2023 +0100 CAMEL-19087: camel trace - Added pretty option --- .../core/commands/action/CamelTraceAction.java | 33 +++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java index 27b4f97d53b..df35b0f42de 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/CamelTraceAction.java @@ -41,6 +41,7 @@ import com.github.freva.asciitable.HorizontalAlign; import com.github.freva.asciitable.OverflowBehaviour; import org.apache.camel.catalog.impl.TimePatternConverter; import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain; +import org.apache.camel.dsl.jbang.core.common.JSonHelper; import org.apache.camel.dsl.jbang.core.common.ProcessHelper; import org.apache.camel.util.StopWatch; import org.apache.camel.util.StringHelper; @@ -129,6 +130,10 @@ public class CamelTraceAction extends ActionBaseCommand { description = "Only output traces from the latest (follow if necessary until complete and exit)") boolean latest; + @CommandLine.Option(names = { "--pretty" }, + description = "Pretty print message body when using JSon format") + boolean pretty; + String findAnsi; private int nameMaxWidth; @@ -735,7 +740,7 @@ public class CamelTraceAction extends ActionBaseCommand { if (bodyRow.value != null) { tab6 = AsciiTable.getTable(AsciiTable.NO_BORDERS, List.of(bodyRow), Arrays.asList( new Column().dataAlign(HorizontalAlign.LEFT).maxWidth(160, OverflowBehaviour.NEWLINE) - .with(TableRow::valueAsString))); + .with(b -> pretty ? bodyRow.valueAsStringPretty() : bodyRow.valueAsString()))); } String tab7 = null; jo = r.exception; @@ -893,6 +898,32 @@ public class CamelTraceAction extends ActionBaseCommand { return value != null ? value.toString() : "null"; } + String valueAsStringPretty() { + if (value == null) { + return "null"; + } + String s = value.toString(); + if (!s.isEmpty()) { + try { + s = Jsoner.unescape(s); + if (loggingColor) { + s = JSonHelper.colorPrint(s, 2, true); + } else { + s = JSonHelper.prettyPrint(s, 2); + } + } catch (Throwable e) { + // ignore as not json + } + if (s == null || s.isEmpty()) { + s = value.toString(); + } + } + if (s == null) { + return "null"; + } + return s; + } + String valueAsStringRed() { if (value != null) { if (loggingColor) {