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
> Donkey</foo></body>\n</message>", out);
+
+ assertEquals("<message>\n<body
type=\"java.lang.String\"><foo>Camel &gt;
Donkey</foo></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 & You</header>\n</headers>\n"
- + "<body type=\"java.lang.String\"><foo>Camel >
Donkey</foo></body>\n</message>", out);
+ + "<body type=\"java.lang.String\"><foo>Camel &gt;
Donkey</foo></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 & You</title></header>\n</headers>\n"
- + "<body type=\"java.lang.String\"><foo>Camel >
Donkey</foo></body>\n</message>", 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);
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\"><animal><name>Donkey</name><age>17</age></animal></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\"><?xml version="1.0"?><hi>Hello
World</hi></body>"));
+
+ context.stop();
+ }
+
}