Index: src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java
===================================================================
--- src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java (revision 611136)
+++ src/main/java/org/apache/jackrabbit/webdav/WebdavResponseImpl.java (working copy)
@@ -27,8 +27,6 @@
import org.apache.jackrabbit.webdav.xml.DomUtil;
import org.apache.jackrabbit.webdav.header.CodedUrlHeader;
import org.apache.jackrabbit.webdav.header.Header;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
@@ -37,6 +35,12 @@
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -151,12 +155,14 @@
try {
Document doc = DomUtil.BUILDER_FACTORY.newDocumentBuilder().newDocument();
doc.appendChild(serializable.toXml(doc));
-
- OutputFormat format = new OutputFormat("xml", "UTF-8", false);
- XMLSerializer serializer = new XMLSerializer(out, format);
- serializer.setNamespaces(true);
- serializer.asDOMSerializer().serialize(doc);
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+ transformer.setOutputProperty(OutputKeys.INDENT, "no");
+ transformer.transform(new DOMSource(doc), new StreamResult(out));
+
byte[] bytes = out.toByteArray();
httpResponse.setContentType("text/xml; charset=UTF-8");
httpResponse.setContentLength(bytes.length);
@@ -165,6 +171,12 @@
} catch (ParserConfigurationException e) {
log.error(e.getMessage());
throw new IOException(e.getMessage());
+ } catch (TransformerException e) {
+ log.error("XML serialization failed", e);
+ IOException exception =
+ new IOException("XML serialization failed");
+ exception.initCause(e);
+ throw exception;
}
}
}
Index: src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java
===================================================================
--- src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java (revision 611136)
+++ src/main/java/org/apache/jackrabbit/webdav/client/methods/XmlRequestEntity.java (working copy)
@@ -20,14 +20,19 @@
import org.slf4j.LoggerFactory;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
import org.w3c.dom.Document;
import java.io.OutputStream;
import java.io.IOException;
import java.io.ByteArrayOutputStream;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
/**
* XmlRequestEntity...
*/
@@ -40,10 +45,23 @@
public XmlRequestEntity(Document xmlDocument) throws IOException {
super();
ByteArrayOutputStream out = new ByteArrayOutputStream();
- OutputFormat format = new OutputFormat("xml", "UTF-8", false);
- XMLSerializer serializer = new XMLSerializer(out, format);
- serializer.setNamespaces(true);
- serializer.asDOMSerializer().serialize(xmlDocument);
+
+ try {
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTransformer();
+ transformer.setOutputProperty(OutputKeys.METHOD, "xml");
+ transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+ transformer.setOutputProperty(OutputKeys.INDENT, "no");
+ transformer.transform(
+ new DOMSource(xmlDocument), new StreamResult(out));
+ } catch (TransformerException e) {
+ log.error("XML serialization failed", e);
+ IOException exception =
+ new IOException("XML serialization failed");
+ exception.initCause(e);
+ throw exception;
+ }
+
delegatee = new StringRequestEntity(out.toString(), "text/xml", "UTF-8");
}
Index: pom.xml
===================================================================
--- pom.xml (revision 611136)
+++ pom.xml (working copy)
@@ -70,10 +70,6 @@
commons-collections
- xerces
- xercesImpl
-
-
javax.servlet
servlet-api
provided