Author: gnodet
Date: Fri Dec 29 10:45:10 2006
New Revision: 491075
URL: http://svn.apache.org/viewvc?view=rev&rev=491075
Log:
SM-784: No support for xml message encodings such as ISO-8859-1
Modified:
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/SourceTransformer.java
Modified:
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/SourceTransformer.java
URL:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/SourceTransformer.java?view=diff&rev=491075&r1=491074&r2=491075
==============================================================================
---
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/SourceTransformer.java
(original)
+++
incubator/servicemix/trunk/core/servicemix-core/src/main/java/org/apache/servicemix/jbi/jaxp/SourceTransformer.java
Fri Dec 29 10:45:10 2006
@@ -28,6 +28,7 @@
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
@@ -56,11 +57,12 @@
*/
public class SourceTransformer {
public static final String CONTENT_DOCUMENT_PROPERTY =
"org.apache.servicemix.content.document";
+ public static final String DEFAULT_CHARSET_PROPERTY =
"org.apache.servicemix.default.charset";
private DocumentBuilderFactory documentBuilderFactory;
private TransformerFactory transformerFactory;
- public static final String defaultCharEncodingName = "UTF-8";
+ public static String defaultCharset =
System.getProperty(DEFAULT_CHARSET_PROPERTY, "UTF-8");
public SourceTransformer() {
}
@@ -81,6 +83,7 @@
if (transformer == null) {
throw new TransformerException("Could not create a transformer -
JAXP is misconfigured!");
}
+ transformer.setOutputProperty(OutputKeys.ENCODING, defaultCharset);
transformer.transform(source, result);
}
@@ -214,17 +217,15 @@
DocumentBuilder builder = createDocumentBuilder();
String systemId = source.getSystemId();
Document document = null;
- InputStream inputStream = source.getInputStream();
- if (inputStream != null) {
- InputSource inputsource = new InputSource(inputStream);
- inputsource.setSystemId(systemId);
- inputsource.setEncoding(defaultCharEncodingName);
- document = builder.parse(inputsource);
- }
- else {
- Reader reader = source.getReader();
- if (reader != null) {
- document = builder.parse(new InputSource(reader));
+ Reader reader = source.getReader();
+ if (reader != null) {
+ document = builder.parse(new InputSource(reader));
+ } else {
+ InputStream inputStream = source.getInputStream();
+ if (inputStream != null) {
+ InputSource inputsource = new InputSource(inputStream);
+ inputsource.setSystemId(systemId);
+ document = builder.parse(inputsource);
}
else {
throw new IOException("No input stream or reader available");