You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2023/03/05 10:54:02 UTC
[camel] 02/02: CAMEL-19087: camel trace - Added pretty option
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 <cl...@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) {