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