You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2008/05/22 14:53:24 UTC
svn commit: r659095 - in /jackrabbit/trunk:
jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/
jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/
jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/
Author: jukka
Date: Thu May 22 05:53:23 2008
New Revision: 659095
URL: http://svn.apache.org/viewvc?rev=659095&view=rev
Log:
JCR-1621: Use application/xml as the XML media type
- Just ensure that the encoding is always UTF-8 for now
- Use "text/xml; charset=UTF-8" in jackrabbit-webdav
Modified:
jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java
jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java
jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java
Modified: jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java?rev=659095&r1=659094&r2=659095&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java (original)
+++ jackrabbit/trunk/jackrabbit-jcr-commons/src/main/java/org/apache/jackrabbit/commons/xml/SerializingContentHandler.java Thu May 22 05:53:23 2008
@@ -24,7 +24,9 @@
import java.util.List;
import java.util.Map;
+import javax.xml.transform.OutputKeys;
import javax.xml.transform.Result;
+import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
@@ -55,6 +57,14 @@
*/
public class SerializingContentHandler extends DefaultContentHandler {
+ /**
+ * The character encoding used for serialization (UTF-8).
+ * The encoding is fixed to make the text/xml content type safer to use.
+ *
+ * @see https://issues.apache.org/jira/browse/JCR-1621
+ */
+ public static final String ENCODING = "UTF-8";
+
/** The URI for xml namespaces */
private static final String XML = "http://www.w3.org/XML/1998/namespace";
@@ -98,6 +108,14 @@
TransformerHandler handler = factory.newTransformerHandler();
handler.setResult(result);
+ // Specify the output properties to avoid surprises especially in
+ // character encoding or the output method (might be html for some
+ // documents!)
+ Transformer transformer = handler.getTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.ENCODING, ENCODING);
+ transformer.setOutputProperty(OutputKeys.INDENT, "no");
+
// Test whether the NamespaceAsAttributes wrapper is needed
StringWriter writer = new StringWriter();
TransformerHandler probe = factory.newTransformerHandler();
Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java?rev=659095&r1=659094&r2=659095&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java (original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java Thu May 22 05:53:23 2008
@@ -165,8 +165,9 @@
transformer.transform(
new DOMSource(doc), new SAXResult(handler));
- // TODO: application/xml?
- httpResponse.setContentType("text/xml");
+ // TODO: Should this be application/xml? See JCR-1621
+ httpResponse.setContentType(
+ "text/xml; charset=" + SerializingContentHandler.ENCODING);
httpResponse.setContentLength(out.size());
out.writeTo(httpResponse.getOutputStream());
} catch (ParserConfigurationException e) {
Modified: jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java?rev=659095&r1=659094&r2=659095&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java (original)
+++ jackrabbit/trunk/jackrabbit-webdav/src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java Thu May 22 05:53:23 2008
@@ -65,7 +65,8 @@
}
public String getContentType() {
- return "text/xml"; // TODO: Shouldn't this be application/xml?
+ // TODO: Shouldn't this be application/xml? See JCR-1621
+ return "text/xml; charset=" + SerializingContentHandler.ENCODING;
}
public void writeRequest(OutputStream out) throws IOException {