CAMEL-6895 Supported to set the camel-xmljson Encoding from the message header
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/599cf88b Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/599cf88b Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/599cf88b Branch: refs/heads/master Commit: 599cf88bf55213f470ddd5422e52537f69dfa5a2 Parents: c5be3e6 Author: Willem Jiang <[email protected]> Authored: Fri Oct 25 12:38:30 2013 +0800 Committer: Willem Jiang <[email protected]> Committed: Fri Oct 25 12:39:48 2013 +0800 ---------------------------------------------------------------------- .../apache/camel/dataformat/xmljson/XmlJsonDataFormat.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/599cf88b/components/camel-xmljson/src/main/java/org/apache/camel/dataformat/xmljson/XmlJsonDataFormat.java ---------------------------------------------------------------------- diff --git a/components/camel-xmljson/src/main/java/org/apache/camel/dataformat/xmljson/XmlJsonDataFormat.java b/components/camel-xmljson/src/main/java/org/apache/camel/dataformat/xmljson/XmlJsonDataFormat.java index 1120d73..f68c60b 100644 --- a/components/camel-xmljson/src/main/java/org/apache/camel/dataformat/xmljson/XmlJsonDataFormat.java +++ b/components/camel-xmljson/src/main/java/org/apache/camel/dataformat/xmljson/XmlJsonDataFormat.java @@ -31,6 +31,7 @@ import net.sf.json.xml.XMLSerializer; import org.apache.camel.Exchange; import org.apache.camel.spi.DataFormat; import org.apache.camel.support.ServiceSupport; +import org.apache.camel.util.IOHelper; /** * A <a href="http://camel.apache.org/data-format.html">data format</a> ({@link DataFormat}) using @@ -136,10 +137,10 @@ public class XmlJsonDataFormat extends ServiceSupport implements DataFormat { public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception { boolean streamTreatment = true; // try to process as an InputStream if it's not a String - Object xml = graph instanceof String ? null : exchange.getContext().getTypeConverter().convertTo(InputStream.class, graph); + Object xml = graph instanceof String ? null : exchange.getContext().getTypeConverter().convertTo(InputStream.class, exchange, graph); // if conversion to InputStream was unfeasible, fall back to String if (xml == null) { - xml = exchange.getContext().getTypeConverter().mandatoryConvertTo(String.class, graph); + xml = exchange.getContext().getTypeConverter().mandatoryConvertTo(String.class, exchange, graph); streamTreatment = false; } @@ -151,7 +152,7 @@ public class XmlJsonDataFormat extends ServiceSupport implements DataFormat { json = serializer.read((String) xml); } - OutputStreamWriter osw = new OutputStreamWriter(stream); + OutputStreamWriter osw = new OutputStreamWriter(stream, IOHelper.getCharsetName(exchange)); json.write(osw); osw.flush(); @@ -169,7 +170,7 @@ public class XmlJsonDataFormat extends ServiceSupport implements DataFormat { if (inBody instanceof JSON) { toConvert = (JSON) inBody; } else { - String jsonString = exchange.getContext().getTypeConverter().convertTo(String.class, inBody); + String jsonString = exchange.getContext().getTypeConverter().convertTo(String.class, exchange, inBody); toConvert = JSONSerializer.toJSON(jsonString); }
