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;