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/12/15 15:18:28 UTC

(camel) branch main updated (b47910bf00f -> 7381d932865)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


    from b47910bf00f Fixed test after changes in camel-core tests
     new 2726fe92a37 CAMEL-20241: camel-jbang - Pretty print xml body should not have noisy empty lines
     new 7381d932865 Regen

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../camel/processor/converter/ConvertBodyTest.java |  8 ++--
 .../processor/converter/ConvertHeaderTest.java     |  8 ++--
 .../org/apache/camel/support/AbstractExchange.java |  2 +-
 .../camel/util/xml/pretty/XmlPrettyPrinter.java    | 45 ++++++++++++++--------
 .../util/xml/pretty/XmlPrettyPrinterTest.java      | 36 +++++++++++++++++
 5 files changed, 73 insertions(+), 26 deletions(-)


(camel) 02/02: Regen

Posted by da...@apache.org.
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 7381d932865dfd3abafd081e1a72a9f106ebf856
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Dec 15 16:18:16 2023 +0100

    Regen
---
 .../org/apache/camel/processor/converter/ConvertBodyTest.java     | 8 ++++----
 .../org/apache/camel/processor/converter/ConvertHeaderTest.java   | 8 ++++----
 .../src/main/java/org/apache/camel/support/AbstractExchange.java  | 2 +-
 3 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertBodyTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertBodyTest.java
index f15a90ce1ba..af5f8745510 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertBodyTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertBodyTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.camel.processor.converter;
 
+import java.io.ByteArrayInputStream;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.Date;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.InvalidPayloadException;
@@ -29,10 +33,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.Date;
-
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
diff --git a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertHeaderTest.java b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertHeaderTest.java
index fb4ba79353c..c3a5be38fcc 100644
--- a/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertHeaderTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/processor/converter/ConvertHeaderTest.java
@@ -16,6 +16,10 @@
  */
 package org.apache.camel.processor.converter;
 
+import java.io.ByteArrayInputStream;
+import java.nio.charset.UnsupportedCharsetException;
+import java.util.Date;
+
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.NoTypeConversionAvailableException;
@@ -27,10 +31,6 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledOnOs;
 import org.junit.jupiter.api.condition.OS;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.UnsupportedCharsetException;
-import java.util.Date;
-
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
index 6863605f176..ce3acd09507 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/AbstractExchange.java
@@ -66,7 +66,7 @@ abstract class AbstractExchange implements Exchange {
     private RedeliveryTraitPayload externalRedelivered = RedeliveryTraitPayload.UNDEFINED_REDELIVERY;
 
     protected AbstractExchange(CamelContext context, EnumMap<ExchangePropertyKey, Object> internalProperties,
-                     Map<String, Object> properties) {
+                               Map<String, Object> properties) {
         this.context = context;
         this.internalProperties = new EnumMap<>(internalProperties);
         this.privateExtension = new ExtendedExchangeExtension(this);


(camel) 01/02: CAMEL-20241: camel-jbang - Pretty print xml body should not have noisy empty lines

Posted by da...@apache.org.
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 2726fe92a378508d11ad6e4d53511988f6478b68
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Dec 15 16:03:28 2023 +0100

    CAMEL-20241: camel-jbang - Pretty print xml body should not have noisy empty lines
---
 .../camel/util/xml/pretty/XmlPrettyPrinter.java    | 45 ++++++++++++++--------
 .../util/xml/pretty/XmlPrettyPrinterTest.java      | 36 +++++++++++++++++
 2 files changed, 64 insertions(+), 17 deletions(-)

diff --git a/core/camel-xml-jaxp-util/src/main/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinter.java b/core/camel-xml-jaxp-util/src/main/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinter.java
index 4e5789e0e67..2d004d3192b 100644
--- a/core/camel-xml-jaxp-util/src/main/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinter.java
+++ b/core/camel-xml-jaxp-util/src/main/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinter.java
@@ -107,6 +107,7 @@ public final class XmlPrettyPrinter {
         final StringBuilder sb = new StringBuilder();
         final DefaultHandler handler = new DefaultHandler() {
             int indent;
+            boolean inElement;
 
             @Override
             public void declaration(String version, String encoding, String standalone) throws SAXException {
@@ -132,26 +133,33 @@ public final class XmlPrettyPrinter {
 
             @Override
             public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
+                inElement = true;
                 sb.append(XmlPrettyPrinter.padString(indent, blanks));
 
                 StringBuilder lb = new StringBuilder();
                 lb.append("<");
                 lb.append(qName);
+
+                boolean empty = attributes.getLength() == 0;
+                if (empty) {
+                    lb.append(">");
+                }
                 String value = color.color(ColorPrintElement.ELEMENT, lb.toString());
                 sb.append(value);
 
-                lb.setLength(0);
-                for (int i = 0; i < attributes.getLength(); i++) {
-                    String k = color.color(ColorPrintElement.ATTRIBUTE_KEY, attributes.getQName(i));
-                    String v = color.color(ColorPrintElement.ATTRIBUTE_VALUE, attributes.getValue(i));
-                    String eq = color.color(ColorPrintElement.ATTRIBUTE_EQUAL, "=");
-                    String quote = color.color(ColorPrintElement.ATTRIBUTE_QUOTE, "\"");
-                    lb.append(" ").append(k).append(eq).append(quote).append(v).append(quote);
+                if (!empty) {
+                    lb.setLength(0);
+                    for (int i = 0; i < attributes.getLength(); i++) {
+                        String k = color.color(ColorPrintElement.ATTRIBUTE_KEY, attributes.getQName(i));
+                        String v = color.color(ColorPrintElement.ATTRIBUTE_VALUE, attributes.getValue(i));
+                        String eq = color.color(ColorPrintElement.ATTRIBUTE_EQUAL, "=");
+                        String quote = color.color(ColorPrintElement.ATTRIBUTE_QUOTE, "\"");
+                        lb.append(" ").append(k).append(eq).append(quote).append(v).append(quote);
+                    }
+                    sb.append(lb);
+                    value = color.color(ColorPrintElement.ELEMENT, ">");
+                    sb.append(value);
                 }
-                sb.append(lb);
-
-                value = color.color(ColorPrintElement.ELEMENT, ">");
-                sb.append(value);
                 sb.append("\n");
 
                 indent++;
@@ -159,6 +167,7 @@ public final class XmlPrettyPrinter {
 
             @Override
             public void endElement(String uri, String localName, String qName) throws SAXException {
+                inElement = false;
                 --indent;
 
                 StringBuilder lb = new StringBuilder();
@@ -176,13 +185,15 @@ public final class XmlPrettyPrinter {
 
             @Override
             public void characters(char[] ch, int start, int length) throws SAXException {
-                char[] chars = new char[length];
-                System.arraycopy(ch, start, chars, 0, length);
-                String value = color.color(ColorPrintElement.VALUE, new String(chars));
+                if (inElement && indent > 1) {
+                    char[] chars = new char[length];
+                    System.arraycopy(ch, start, chars, 0, length);
+                    String value = color.color(ColorPrintElement.VALUE, new String(chars));
 
-                sb.append(XmlPrettyPrinter.padString(indent, blanks));
-                sb.append(value);
-                sb.append("\n");
+                    sb.append(XmlPrettyPrinter.padString(indent, blanks));
+                    sb.append(value);
+                    sb.append("\n");
+                }
             }
         };
 
diff --git a/core/camel-xml-jaxp-util/src/test/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinterTest.java b/core/camel-xml-jaxp-util/src/test/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinterTest.java
index 1740e3929df..0eb71cf9b61 100644
--- a/core/camel-xml-jaxp-util/src/test/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinterTest.java
+++ b/core/camel-xml-jaxp-util/src/test/java/org/apache/camel/util/xml/pretty/XmlPrettyPrinterTest.java
@@ -50,4 +50,40 @@ public class XmlPrettyPrinterTest {
         Assertions.assertEquals(expected, pretty);
     }
 
+    @Test
+    public void testPrettyPrintColor() throws Exception {
+        String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><tag><nested>hello</nested></tag></root>";
+        String expected = "*<?xml version=\"1.0\" encoding=\"UTF-8\"?>*\n"
+                          + "*<root>*\n"
+                          + "  *<tag>*\n"
+                          + "    *<nested>*\n"
+                          + "      *hello*\n"
+                          + "    *</nested>*\n"
+                          + "  *</tag>*\n"
+                          + "*</root>*";
+        String pretty = XmlPrettyPrinter.colorPrint(xml, 2, true, new XmlPrettyPrinter.ColorPrintElement() {
+            @Override
+            public String color(int type, String value) {
+                return "*" + value + "*";
+            }
+        });
+        Assertions.assertEquals(expected, pretty);
+    }
+
+    @Test
+    public void testPrettyPrintBeer() throws Exception {
+        String xml = "<beer alc=\"4.4%\"> <kind>Fosters</kind> <name>Bell Expedition</name> </beer>";
+        String expected = """
+                <beer alc="4.4%">
+                  <kind>
+                    Fosters
+                  </kind>
+                  <name>
+                    Bell Expedition
+                  </name>
+                </beer>""";
+        String pretty = XmlPrettyPrinter.pettyPrint(xml, 2, false);
+        Assertions.assertEquals(expected, pretty);
+    }
+
 }