You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ff...@apache.org on 2016/05/12 02:42:38 UTC
camel git commit: [CAMEL-9960]create ReaderInputStream align encoding
with Exchange
Repository: camel
Updated Branches:
refs/heads/master 82bd0baab -> 767a98b47
[CAMEL-9960]create ReaderInputStream align encoding with Exchange
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/767a98b4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/767a98b4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/767a98b4
Branch: refs/heads/master
Commit: 767a98b47aba44c7392dbb8b7f3c5f556e40682b
Parents: 82bd0ba
Author: Freeman Fang <fr...@gmail.com>
Authored: Thu May 12 10:42:14 2016 +0800
Committer: Freeman Fang <fr...@gmail.com>
Committed: Thu May 12 10:42:14 2016 +0800
----------------------------------------------------------------------
.../apache/camel/component/cxf/DefaultCxfBinding.java | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/767a98b4/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
index 13f035b..aad23d5 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/DefaultCxfBinding.java
@@ -165,8 +165,9 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
camelExchange.getOut().getHeaders().putAll(camelExchange.getIn().getHeaders());
// propagate body
+ String encoding = (String)camelExchange.getProperty(Exchange.CHARSET_NAME);
camelExchange.getOut().setBody(DefaultCxfBinding.getContentFromCxf(cxfMessage,
- camelExchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class)));
+ camelExchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class), encoding));
// propagate response context
if (responseContext != null && responseContext.size() > 0) {
@@ -277,8 +278,9 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
setCharsetWithContentType(camelExchange);
// set body
+ String encoding = (String)camelExchange.getProperty(Exchange.CHARSET_NAME);
Object body = DefaultCxfBinding.getContentFromCxf(cxfMessage,
- camelExchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class));
+ camelExchange.getProperty(CxfConstants.DATA_FORMAT_PROPERTY, DataFormat.class), encoding);
if (body != null) {
camelExchange.getIn().setBody(body);
}
@@ -708,7 +710,7 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
}
}
- protected static Object getContentFromCxf(Message message, DataFormat dataFormat) {
+ protected static Object getContentFromCxf(Message message, DataFormat dataFormat, String encoding) {
Set<Class<?>> contentFormats = message.getContentFormats();
Object answer = null;
if (contentFormats != null) {
@@ -738,7 +740,11 @@ public class DefaultCxfBinding implements CxfBinding, HeaderFilterStrategyAware
if (answer == null) {
answer = message.getContent(Reader.class);
if (answer != null) {
- answer = new ReaderInputStream((Reader)answer);
+ if (encoding == null) {
+ encoding = "UTF-8";
+ }
+ LOG.trace("file encoding is = {}", encoding);
+ answer = new ReaderInputStream((Reader)answer, Charset.forName(encoding));
}
}