Author: davsclaus
Date: Fri Jul 29 14:57:33 2011
New Revision: 1152250

URL: http://svn.apache.org/viewvc?rev=1152250&view=rev
Log:
CAMEL-4283: Fixed dump as xml if message is already xml.

Modified:
    
camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java
    
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowseableEndpointAsXmlTest.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/util/MessageHelper.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/MessageHelper.java?rev=1152250&r1=1152249&r2=1152250&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 
Fri Jul 29 14:57:33 2011
@@ -269,13 +269,8 @@ public final class MessageHelper {
                 if (value != null) {
                     String xml = 
message.getExchange().getContext().getTypeConverter().convertTo(String.class, 
value);
                     if (xml != null) {
-                        // is the header value already XML
-                        if (xml.startsWith("<") && xml.endsWith(">")) {
-                            sb.append(xml);
-                        } else {
-                            // no its not xml so xml encode it
-                            sb.append(StringHelper.xmlEncode(xml));
-                        }
+                        // must always xml encode
+                        sb.append(StringHelper.xmlEncode(xml));
                     }
                 }
 
@@ -294,13 +289,8 @@ public final class MessageHelper {
         // dump body value as XML, use Camel type converter to convert to 
String
         String xml = message.getBody(String.class);
         if (xml != null) {
-            // is the body already XML
-            if (xml.startsWith("<") && xml.endsWith(">")) {
-                sb.append(xml);
-            } else {
-                // no its not xml so xml encode it
-                sb.append(StringHelper.xmlEncode(xml));
-            }
+            // must always xml encode
+            sb.append(StringHelper.xmlEncode(xml));
         }
 
         sb.append("</body>\n");

Modified: 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowseableEndpointAsXmlTest.java
URL: 
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowseableEndpointAsXmlTest.java?rev=1152250&r1=1152249&r2=1152250&view=diff
==============================================================================
--- 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowseableEndpointAsXmlTest.java
 (original)
+++ 
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedBrowseableEndpointAsXmlTest.java
 Fri Jul 29 14:57:33 2011
@@ -52,7 +52,8 @@ public class ManagedBrowseableEndpointAs
         String out = (String) mbeanServer.invoke(name, "browseMessageAsXml", 
new Object[]{0}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message>\n<body type=\"java.lang.String\"><foo>Camel 
&gt; Donkey</foo></body>\n</message>", out);
+
+        assertEquals("<message>\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}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
@@ -63,13 +64,13 @@ public class ManagedBrowseableEndpointAs
         assertNotNull(out);
         log.info(out);
         assertEquals("<message>\n<headers>\n<header key=\"name\" 
type=\"java.lang.String\">Me &amp; You</header>\n</headers>\n"
-                + "<body type=\"java.lang.String\"><foo>Camel &gt; 
Donkey</foo></body>\n</message>", out);
+                + "<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}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
         log.info(out);
-        assertEquals("<message>\n<headers>\n<header key=\"title\" 
type=\"java.lang.String\"><title>Me &amp; You</title></header>\n</headers>\n"
-                + "<body type=\"java.lang.String\"><foo>Camel &gt; 
Donkey</foo></body>\n</message>", out);
+        assertEquals("<message>\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}, new String[]{"java.lang.Integer"});
         assertNotNull(out);
@@ -89,7 +90,7 @@ public class ManagedBrowseableEndpointAs
         assertEquals("<message>\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\"><animal><name>Donkey</name><age>17</age></animal></body>\n</message>",
 out);
+                + "<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);
     }
 
     @Override

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=1152250&r1=1152249&r2=1152250&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
 Fri Jul 29 14:57:33 2011
@@ -20,9 +20,12 @@ import java.io.IOException;
 import java.io.OutputStream;
 
 import junit.framework.TestCase;
+import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.StreamCache;
+import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.DefaultMessage;
 
 /**
@@ -99,4 +102,36 @@ public class MessageHelperTest extends T
         assertEquals(456, target.getHeader("bar"));
     }
 
+    public void testDumpAsXmlPlainBody() 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);
+        assertTrue("Should contain body", out.contains("<body 
type=\"java.lang.String\">Hello World</body>"));
+
+        context.stop();
+    }
+
+    public void testDumpAsXmlXmlBody() throws Exception {
+        CamelContext context = new DefaultCamelContext();
+        context.start();
+
+        message = new DefaultExchange(context).getIn();
+
+        // xml message body
+        message.setBody("<?xml version=\"1.0\"?><hi>Hello World</hi>");
+        message.setHeader("foo", 123);
+
+        String out = MessageHelper.dumpAsXml(message);
+        assertTrue("Should contain body", out.contains("<body 
type=\"java.lang.String\">&lt;?xml version=&quot;1.0&quot;?&gt;&lt;hi&gt;Hello 
World&lt;/hi&gt;</body>"));
+
+        context.stop();
+    }
+
 }


Reply via email to