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 6c65866e7c1 CAMEL-19033: camel-jbang - Add trace command
6c65866e7c1 is described below

commit 6c65866e7c1dc82604e1c7f4de786407273569e7
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Tue Feb 14 11:09:20 2023 +0100

    CAMEL-19033: camel-jbang - Add trace command
---
 .../dsl/jbang/core/commands/process/ListTrace.java | 10 ++-
 .../camel/dsl/jbang/core/common/JSonHelper.java    |  6 +-
 .../java/org/apache/camel/util/json/Jsoner.java    | 80 +++++++++++++++-------
 3 files changed, 62 insertions(+), 34 deletions(-)

diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListTrace.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListTrace.java
index 79fe1470b0a..eb28e878adf 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListTrace.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListTrace.java
@@ -291,12 +291,10 @@ public class ListTrace extends ProcessWatchCommand {
 
     private String getDataAsJSon(Row r) {
         String s = r.message.toJson();
-        if (pretty) {
-            if (loggingColor) {
-                s = JSonHelper.colorPrint(s, 2);
-            } else {
-                s = JSonHelper.prettyPrint(s, 2);
-            }
+        if (loggingColor) {
+            s = JSonHelper.colorPrint(s, 2, pretty);
+        } else if (pretty) {
+            s = JSonHelper.prettyPrint(s, 2);
         }
         String st = null;
         if (r.exception != null) {
diff --git 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/JSonHelper.java
 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/JSonHelper.java
index 5151740e320..0b5e821d374 100644
--- 
a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/JSonHelper.java
+++ 
b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/common/JSonHelper.java
@@ -34,10 +34,10 @@ public final class JSonHelper {
     }
 
     /**
-     * Prints the JSon in pretty mode with ANSi color (similar to jq)
+     * Prints the JSon with ANSi color (similar to jq)
      */
-    public static String colorPrint(String json, int spaces) {
-        return Jsoner.colorPrint(json, spaces, new Jsoner.ColorPrintElement() {
+    public static String colorPrint(String json, int spaces, boolean pretty) {
+        return Jsoner.colorPrint(json, spaces, pretty, new 
Jsoner.ColorPrintElement() {
             Yytoken.Types prev;
 
             @Override
diff --git 
a/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java 
b/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
index 1abb19d7af5..0ddfd375442 100644
--- 
a/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
+++ 
b/tooling/camel-util-json/src/main/java/org/apache/camel/util/json/Jsoner.java
@@ -744,10 +744,15 @@ public final class Jsoner {
     }
 
     public static String colorPrint(final String printable, final 
ColorPrintElement color) {
-        return Jsoner.colorPrint(printable, "\t", Integer.MAX_VALUE, color);
+        return Jsoner.colorPrint(printable, "\t", Integer.MAX_VALUE, true, 
color);
     }
 
     public static String colorPrint(final String printable, final int spaces, 
final ColorPrintElement color) {
+        return colorPrint(printable, spaces, true, color);
+    }
+
+    public static String colorPrint(
+            final String printable, final int spaces, final boolean pretty, 
final ColorPrintElement color) {
         if (spaces > 10 || spaces < 2) {
             throw new IllegalArgumentException("Indentation with spaces must 
be between 2 and 10.");
         }
@@ -755,11 +760,11 @@ public final class Jsoner {
         for (int i = 0; i < spaces; i++) {
             indentation.append(" ");
         }
-        return Jsoner.colorPrint(printable, indentation.toString(), 
Integer.MAX_VALUE, color);
+        return Jsoner.colorPrint(printable, indentation.toString(), 
Integer.MAX_VALUE, pretty, color);
     }
 
     public static String colorPrint(
-            final String printable, final String indentation, final int depth, 
ColorPrintElement color) {
+            final String printable, final String indentation, final int depth, 
final boolean pretty, ColorPrintElement color) {
         final Yylex lexer = new Yylex(new StringReader(printable));
         Yytoken lexed;
         final StringBuilder returnable = new StringBuilder();
@@ -769,63 +774,88 @@ public final class Jsoner {
                 lexed = Jsoner.lexNextToken(lexer);
                 switch (lexed.getType()) {
                     case COLON:
-                        returnable.append(color.color(Yytoken.Types.COLON, 
":")).append(" ");
+                        returnable.append(color.color(Yytoken.Types.COLON, 
":"));
+                        if (pretty) {
+                            returnable.append(" ");
+                        }
                         break;
                     case COMMA:
                         returnable.append(color.color(Yytoken.Types.COMMA, 
lexed.getValue()));
                         if (level <= depth) {
-                            returnable.append("\n");
-                            for (int i = 0; i < level; i++) {
-                                returnable.append(indentation);
+                            if (pretty) {
+                                returnable.append("\n");
+                                for (int i = 0; i < level; i++) {
+                                    returnable.append(indentation);
+                                }
                             }
                         } else {
-                            returnable.append(" ");
+                            if (pretty) {
+                                returnable.append(" ");
+                            }
                         }
                         break;
                     case END:
-                        returnable.append("\n");
+                        if (pretty) {
+                            returnable.append("\n");
+                        }
                         break;
                     case LEFT_BRACE:
                         
returnable.append(color.color(Yytoken.Types.LEFT_BRACE, lexed.getValue()));
                         if (++level <= depth) {
-                            returnable.append("\n");
-                            for (int i = 0; i < level; i++) {
-                                returnable.append(indentation);
+                            if (pretty) {
+                                returnable.append("\n");
+                                for (int i = 0; i < level; i++) {
+                                    returnable.append(indentation);
+                                }
                             }
                         } else {
-                            returnable.append(" ");
+                            if (pretty) {
+                                returnable.append(" ");
+                            }
                         }
                         break;
                     case LEFT_SQUARE:
                         
returnable.append(color.color(Yytoken.Types.LEFT_SQUARE, lexed.getValue()));
                         if (++level <= depth) {
-                            returnable.append("\n");
-                            for (int i = 0; i < level; i++) {
-                                returnable.append(indentation);
+                            if (pretty) {
+                                returnable.append("\n");
+                                for (int i = 0; i < level; i++) {
+                                    returnable.append(indentation);
+                                }
                             }
                         } else {
-                            returnable.append(" ");
+                            if (pretty) {
+                                returnable.append(" ");
+                            }
                         }
                         break;
                     case RIGHT_BRACE:
                         if (level-- <= depth) {
-                            returnable.append("\n");
-                            for (int i = 0; i < level; i++) {
-                                returnable.append(indentation);
+                            if (pretty) {
+                                returnable.append("\n");
+                                for (int i = 0; i < level; i++) {
+                                    returnable.append(indentation);
+                                }
                             }
                         } else {
-                            returnable.append(" ");
+                            if (pretty) {
+                                returnable.append(" ");
+                            }
                         }
                         
returnable.append(color.color(Yytoken.Types.RIGHT_BRACE, lexed.getValue()));
                         break;
                     case RIGHT_SQUARE:
                         if (level-- <= depth) {
-                            returnable.append("\n");
-                            for (int i = 0; i < level; i++) {
-                                returnable.append(indentation);
+                            if (pretty) {
+                                returnable.append("\n");
+                                for (int i = 0; i < level; i++) {
+                                    returnable.append(indentation);
+                                }
                             }
                         } else {
-                            returnable.append(" ");
+                            if (pretty) {
+                                returnable.append(" ");
+                            }
                         }
                         
returnable.append(color.color(Yytoken.Types.RIGHT_SQUARE, lexed.getValue()));
                         break;

Reply via email to