Author: davsclaus
Date: Sat Mar  9 08:43:14 2013
New Revision: 1454673

URL: http://svn.apache.org/r1454673
Log:
CAMEL-6148: Make the xml dump of the messages use indent so its easier to read 
for the users.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracerInterceptor.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
    
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java
 Sat Mar  9 08:43:14 2013
@@ -42,8 +42,9 @@ public interface BacklogTracerEventMessa
      * <p/>
      * The <tt>timestamp</tt> tag is formatted in the format defined by {@link 
#TIMESTAMP_FORMAT}
      *
+     * @param indent number of spaces to indent
      * @return xml representation of this event
      */
-    String toXml();
+    String toXml(int indent);
 
 }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracer.java
 Sat Mar  9 08:43:14 2013
@@ -155,7 +155,7 @@ public class BacklogTracer extends Servi
         StringBuilder sb = new StringBuilder();
         
sb.append("<").append(DefaultBacklogTracerEventMessage.ROOT_TAG).append("s>");
         for (BacklogTracerEventMessage event : events) {
-            sb.append("\n").append(event.toXml());
+            sb.append("\n").append(event.toXml(2));
         }
         
sb.append("\n</").append(DefaultBacklogTracerEventMessage.ROOT_TAG).append("s>");
         return sb.toString();
@@ -174,7 +174,7 @@ public class BacklogTracer extends Servi
         StringBuilder sb = new StringBuilder();
         sb.append("<").append(BacklogTracerEventMessage.ROOT_TAG).append("s>");
         for (BacklogTracerEventMessage event : events) {
-            sb.append("\n").append(event.toXml());
+            sb.append("\n").append(event.toXml(2));
         }
         
sb.append("\n</").append(BacklogTracerEventMessage.ROOT_TAG).append("s>");
         return sb.toString();

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracerInterceptor.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracerInterceptor.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracerInterceptor.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/BacklogTracerInterceptor.java
 Sat Mar  9 08:43:14 2013
@@ -64,7 +64,7 @@ public class BacklogTracerInterceptor ex
                 Date timestamp = new Date();
                 String toNode = processorDefinition.getId();
                 String exchangeId = exchange.getExchangeId();
-                String messageAsXml = 
MessageHelper.dumpAsXml(exchange.getIn());
+                String messageAsXml = 
MessageHelper.dumpAsXml(exchange.getIn(), true, 4);
 
                 // if first we should add a pseudo trace message as well, so 
we have a starting message (eg from the route)
                 if (first) {

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
 (original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/DefaultBacklogTracerEventMessage.java
 Sat Mar  9 08:43:14 2013
@@ -74,16 +74,21 @@ public final class DefaultBacklogTracerE
      *
      * @return xml representation of this event
      */
-    public String toXml() {
+    public String toXml(int indent) {
+        StringBuilder prefix = new StringBuilder();
+        for (int i = 0; i < indent; i++) {
+            prefix.append(" ");
+        }
+
         StringBuilder sb = new StringBuilder();
-        sb.append("<").append(ROOT_TAG).append(">\n");
-        sb.append("<uid>").append(uid).append("</uid>\n");
+        sb.append(prefix).append("<").append(ROOT_TAG).append(">\n");
+        sb.append(prefix).append("  <uid>").append(uid).append("</uid>\n");
         String ts = new SimpleDateFormat(TIMESTAMP_FORMAT).format(timestamp);
-        sb.append("<timestamp>").append(ts).append("</timestamp>\n");
-        sb.append("<toNode>").append(toNode).append("</toNode>\n");
-        sb.append("<exchangeId>").append(exchangeId).append("</exchangeId>\n");
-        sb.append(messageAsXml).append("\n");
-        sb.append("</").append(ROOT_TAG).append(">");
+        sb.append(prefix).append("  
<timestamp>").append(ts).append("</timestamp>\n");
+        sb.append(prefix).append("  
<toNode>").append(toNode).append("</toNode>\n");
+        sb.append(prefix).append("  
<exchangeId>").append(exchangeId).append("</exchangeId>\n");
+        sb.append(prefix).append(messageAsXml).append("\n");
+        sb.append(prefix).append("</").append(ROOT_TAG).append(">");
         return sb.toString();
     }
 }

Modified: 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java 
(original)
+++ 
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java 
Sat Mar  9 08:43:14 2013
@@ -83,7 +83,7 @@ public final class MessageHelper {
      * Will skip java.lang. for the build in Java types.
      * 
      * @param message the message with the body
-     * @return the body typename as String, can return
+     * @return the body type name as String, can return
      *         <tt>null</null> if no body
      */
     public static String getBodyTypeName(Message message) {
@@ -200,7 +200,7 @@ public final class MessageHelper {
             if (obj instanceof StreamSource && !(obj instanceof StringSource 
|| obj instanceof BytesSource)) {
                 /*
                  * Generally do not log StreamSources but as StringSource and
-                 * ByteSoure are memory based they are ok
+                 * ByteSource are memory based they are ok
                  */
                 return prepend + "[Body is instance of 
java.xml.transform.StreamSource]";
             } else if (obj instanceof StreamCache) {
@@ -274,19 +274,40 @@ public final class MessageHelper {
      * @return the XML
      */
     public static String dumpAsXml(Message message, boolean includeBody) {
+        return dumpAsXml(message, includeBody, 0);
+    }
+
+    /**
+     * Dumps the message as a generic XML structure.
+     *
+     * @param message the message
+     * @param includeBody whether or not to include the message body
+     * @param indent number of spaces to indent
+     * @return the XML
+     */
+    public static String dumpAsXml(Message message, boolean includeBody, int 
indent) {
         StringBuilder sb = new StringBuilder();
+
+        StringBuilder prefix = new StringBuilder();
+        for (int i = 0; i < indent; i++) {
+            prefix.append(" ");
+        }
+
         // include exchangeId as attribute on the <message> tag
+        sb.append(prefix);
         sb.append("<message 
exchangeId=\"").append(message.getExchange().getExchangeId()).append("\">\n");
 
         // headers
         if (message.hasHeaders()) {
-            sb.append("<headers>\n");
+            sb.append(prefix);
+            sb.append("  <headers>\n");
             // sort the headers so they are listed A..Z
             Map<String, Object> headers = new TreeMap<String, 
Object>(message.getHeaders());
             for (Map.Entry<String, Object> entry : headers.entrySet()) {
                 Object value = entry.getValue();
                 String type = ObjectHelper.classCanonicalName(value);
-                sb.append("<header key=\"" + entry.getKey() + "\"");
+                sb.append(prefix);
+                sb.append("    <header key=\"" + entry.getKey() + "\"");
                 if (type != null) {
                     sb.append(" type=\"" + type + "\"");
                 }
@@ -309,11 +330,13 @@ public final class MessageHelper {
 
                 sb.append("</header>\n");
             }
-            sb.append("</headers>\n");
+            sb.append(prefix);
+            sb.append("  </headers>\n");
         }
 
         if (includeBody) {
-            sb.append("<body");
+            sb.append(prefix);
+            sb.append("  <body");
             String type = ObjectHelper.classCanonicalName(message.getBody());
             if (type != null) {
                 sb.append(" type=\"" + type + "\"");
@@ -333,6 +356,7 @@ public final class MessageHelper {
             sb.append("</body>\n");
         }
 
+        sb.append(prefix);
         sb.append("</message>");
         return sb.toString();
     }

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerIdOnAllNodesTest.java
 Sat Mar  9 08:43:14 2013
@@ -99,9 +99,9 @@ public class BacklogTracerIdOnAllNodesTe
 
         BacklogTracerEventMessage event1 = events.get(0);
         assertEquals("to1", event1.getToNode());
-        assertEquals("<message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello World</body>\n"
-                + "</message>", event1.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello World</body>\n"
+                + "    </message>", event1.getMessageAsXml());
 
         events = (List<BacklogTracerEventMessage>) mbeanServer.invoke(on, 
"dumpTracedMessages",
                 new Object[]{"camel"}, new String[]{"java.lang.String"});
@@ -111,9 +111,9 @@ public class BacklogTracerIdOnAllNodesTe
 
         event1 = events.get(0);
         assertEquals("camel", event1.getToNode());
-        assertEquals("<message exchangeId=\"" + 
camelExchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello Camel</body>\n"
-                + "</message>", event1.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
camelExchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello Camel</body>\n"
+                + "    </message>", event1.getMessageAsXml());
     }
 
     @Override

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerTest.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/BacklogTracerTest.java
 Sat Mar  9 08:43:14 2013
@@ -64,15 +64,15 @@ public class BacklogTracerTest extends M
 
         BacklogTracerEventMessage event1 = events.get(0);
         assertEquals("foo", event1.getToNode());
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello World</body>\n"
-                + "</message>", event1.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello World</body>\n"
+                + "    </message>", event1.getMessageAsXml());
 
         BacklogTracerEventMessage event2 = events.get(1);
         assertEquals("foo", event2.getToNode());
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Bye World</body>\n"
-                + "</message>", event2.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Bye World</body>\n"
+                + "    </message>", event2.getMessageAsXml());
     }
 
     @SuppressWarnings("unchecked")
@@ -144,39 +144,39 @@ public class BacklogTracerTest extends M
 
         BacklogTracerEventMessage event0 = events.get(0);
         assertEquals("route1", event0.getToNode());
-        assertEquals("<message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello World</body>\n"
-                + "</message>", event0.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello World</body>\n"
+                + "    </message>", event0.getMessageAsXml());
 
         BacklogTracerEventMessage event1 = events.get(1);
         assertEquals("foo", event1.getToNode());
-        assertEquals("<message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello World</body>\n"
-                + "</message>", event1.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
fooExchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello World</body>\n"
+                + "    </message>", event1.getMessageAsXml());
 
         BacklogTracerEventMessage event2 = events.get(2);
         assertEquals("bar", event2.getToNode());
-        assertEquals("<message exchangeId=\"" + 
barExchanges.get(0).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Hello World</body>\n"
-                + "</message>", event2.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
barExchanges.get(0).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Hello World</body>\n"
+                + "    </message>", event2.getMessageAsXml());
 
         BacklogTracerEventMessage event3 = events.get(3);
         assertEquals("route1", event3.getToNode());
-        assertEquals("<message exchangeId=\"" + 
fooExchanges.get(1).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Bye World</body>\n"
-                + "</message>", event3.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
fooExchanges.get(1).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Bye World</body>\n"
+                + "    </message>", event3.getMessageAsXml());
 
         BacklogTracerEventMessage event4 = events.get(4);
         assertEquals("foo", event4.getToNode());
-        assertEquals("<message exchangeId=\"" + 
fooExchanges.get(1).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Bye World</body>\n"
-                + "</message>", event3.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
fooExchanges.get(1).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Bye World</body>\n"
+                + "    </message>", event3.getMessageAsXml());
 
         BacklogTracerEventMessage event5 = events.get(5);
         assertEquals("bar", event5.getToNode());
-        assertEquals("<message exchangeId=\"" + 
barExchanges.get(1).getExchangeId() + "\">\n"
-                + "<body type=\"java.lang.String\">Bye World</body>\n"
-                + "</message>", event4.getMessageAsXml());
+        assertEquals("    <message exchangeId=\"" + 
barExchanges.get(1).getExchangeId() + "\">\n"
+                + "      <body type=\"java.lang.String\">Bye World</body>\n"
+                + "    </message>", event4.getMessageAsXml());
     }
 
     @SuppressWarnings("unchecked")

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowsableEndpointAsXmlTest.java
 Sat Mar  9 08:43:14 2013
@@ -57,45 +57,45 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<body 
type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <body 
type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{1, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n<body type=\"java.lang.String\">Camel 
&gt; Donkey</body>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n  <body 
type=\"java.lang.String\">Camel &gt; Donkey</body>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{2, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(2).getExchangeId() + "\">\n<headers>\n<header key=\"name\" 
type=\"java.lang.String\">Me &amp; You</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(2).getExchangeId() + "\">\n  <headers>\n    <header key=\"name\" 
type=\"java.lang.String\">Me &amp; You</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{3, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(3).getExchangeId() + "\">\n<headers>\n"
-                + "<header key=\"title\" 
type=\"java.lang.String\">&lt;title&gt;Me &amp;amp; 
You&lt;/title&gt;</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(3).getExchangeId() + "\">\n  <headers>\n"
+                + "    <header key=\"title\" 
type=\"java.lang.String\">&lt;title&gt;Me &amp;amp; 
You&lt;/title&gt;</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.String\">&lt;foo&gt;Camel &amp;gt; 
Donkey&lt;/foo&gt;</body>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{4, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(4).getExchangeId() + "\">\n<headers>\n<header key=\"name\" 
type=\"java.lang.String\">Me &amp; You</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\">Camel &gt; 
Donkey</body>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(4).getExchangeId() + "\">\n  <headers>\n    <header key=\"name\" 
type=\"java.lang.String\">Me &amp; You</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.String\">Camel &gt; 
Donkey</body>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{5, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(5).getExchangeId() + "\">\n<headers>\n<header key=\"user\" 
type=\"java.lang.Boolean\">true</header>\n</headers>\n"
-                + "<body type=\"java.lang.Integer\">123</body>\n</message>", 
out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(5).getExchangeId() + "\">\n  <headers>\n    <header key=\"user\" 
type=\"java.lang.Boolean\">true</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.Integer\">123</body>\n</message>", 
out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{6, true}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(6).getExchangeId() + "\">\n<headers>\n<header key=\"title\" 
type=\"java.lang.String\">Camel rocks</header>\n"
-                + "<header key=\"uid\" 
type=\"java.lang.Integer\">123</header>\n"
-                + "<header key=\"user\" 
type=\"java.lang.Boolean\">false</header>\n</headers>\n"
-                + "<body 
type=\"java.lang.String\">&lt;animal&gt;&lt;name&gt;Donkey&lt;/name&gt;&lt;age&gt;17&lt;/age&gt;&lt;/animal&gt;</body>\n</message>",
 out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(6).getExchangeId() + "\">\n  <headers>\n    <header key=\"title\" 
type=\"java.lang.String\">Camel rocks</header>\n"
+                + "    <header key=\"uid\" 
type=\"java.lang.Integer\">123</header>\n"
+                + "    <header key=\"user\" 
type=\"java.lang.Boolean\">false</header>\n  </headers>\n"
+                + "  <body 
type=\"java.lang.String\">&lt;animal&gt;&lt;name&gt;Donkey&lt;/name&gt;&lt;age&gt;17&lt;/age&gt;&lt;/animal&gt;</body>\n</message>",
 out);
     }
 
     public void testBrowseableEndpointAsXml() throws Exception {
@@ -116,12 +116,12 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n</headers>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n  </headers>\n</message>", out);
 
         out = (String) mbeanServer.invoke(name, "browseMessageAsXml", new 
Object[]{1, false}, new String[]{"java.lang.Integer", "java.lang.Boolean"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n</headers>\n</message>", out);
+        assertEquals("<message exchangeId=\"" + 
exchanges.get(1).getExchangeId() + "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n  </headers>\n</message>", out);
     }
 
     public void testBrowseableEndpointAsXmlAllIncludeBody() throws Exception {
@@ -142,9 +142,9 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<body type=\"java.lang.String\">Hello 
World</body>\n</message>\n"
-                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\">Bye 
World</body>\n</message>\n</messages>", out);
+        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <body 
type=\"java.lang.String\">Hello World</body>\n</message>\n"
+                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.String\">Bye 
World</body>\n</message>\n</messages>", out);
     }
 
     public void testBrowseableEndpointAsXmlAll() throws Exception {
@@ -165,9 +165,9 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<headers>\n"
-                + "<header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n</headers>\n</message>\n"
-                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n</headers>\n"
+        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <headers>\n"
+                + "    <header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n  </headers>\n</message>\n"
+                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n  </headers>\n"
                 + "</message>\n</messages>", out);
     }
 
@@ -190,9 +190,9 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<body type=\"java.lang.String\">Hello 
World</body>\n</message>\n"
-                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\">Bye 
World</body>\n</message>\n</messages>", out);
+        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <body 
type=\"java.lang.String\">Hello World</body>\n</message>\n"
+                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n  </headers>\n"
+                + "  <body type=\"java.lang.String\">Bye 
World</body>\n</message>\n</messages>", out);
     }
 
     public void testBrowseableEndpointAsXmlRange() throws Exception {
@@ -214,8 +214,8 @@ public class ManagedBrowsableEndpointAsX
         assertNotNull(out);
         log.info(out);
 
-        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n</headers>\n</message>\n"
-                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n</headers>\n"
+        assertEquals("<messages>\n<message exchangeId=\"" + 
exchanges.get(0).getExchangeId() + "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n  </headers>\n</message>\n"
+                + "<message exchangeId=\"" + exchanges.get(1).getExchangeId() 
+ "\">\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">456</header>\n  </headers>\n"
                 + "</message>\n</messages>", out);
     }
 

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java?rev=1454673&r1=1454672&r2=1454673&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/util/MessageHelperTest.java
 Sat Mar  9 08:43:14 2013
@@ -148,7 +148,25 @@ public class MessageHelperTest extends T
         String out = MessageHelper.dumpAsXml(message, false);
 
         assertEquals("<message exchangeId=\"" + 
message.getExchange().getExchangeId() + "\">"
-                + "\n<headers>\n<header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n</headers>\n</message>", out);
+                + "\n  <headers>\n    <header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n  </headers>\n</message>", out);
+
+        context.stop();
+    }
+
+    public void testDumpAsXmlNoBodyIndent() throws Exception {
+        CamelContext context = new DefaultCamelContext();
+        context.start();
+
+        message = new DefaultExchange(context).getIn();
+
+        // xml message body
+        message.setBody("Hello World");
+        message.setHeader("foo", 123);
+
+        String out = MessageHelper.dumpAsXml(message, false, 2);
+
+        assertEquals("  <message exchangeId=\"" + 
message.getExchange().getExchangeId() + "\">"
+                + "\n    <headers>\n      <header key=\"foo\" 
type=\"java.lang.Integer\">123</header>\n    </headers>\n  </message>", out);
 
         context.stop();
     }


Reply via email to