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);
         }
 

Reply via email to