]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - runtime/org.argeo.slc.detached/src/main/java/org/argeo/slc/detached/DetachedXmlConverterCompat.java
Update license header
[gpl/argeo-slc.git] / runtime / org.argeo.slc.detached / src / main / java / org / argeo / slc / detached / DetachedXmlConverterCompat.java
index 7ad49fadaad5ba1ad161345a2292f17a746d4dec..d7f6394fb0e586226b2f5d0e7142d0128e650c34 100644 (file)
@@ -1,6 +1,23 @@
+/*
+ * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *         http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.argeo.slc.detached;
 
 import java.io.StringReader;
+import java.io.StringWriter;
 import java.util.Enumeration;
 import java.util.Properties;
 
@@ -10,18 +27,24 @@ import javax.xml.transform.Transformer;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 
-/** For compatibility with old JDKs (pre 1.5). Use Spring base one when possible. */
+/**
+ * For compatibility with old JDKs (pre 1.5). Use Spring base one when possible.
+ */
 public class DetachedXmlConverterCompat implements DetachedXmlConverter {
        public final static String SLC_DETACHED_NAMESPACE_URI = "http://argeo.org/projects/slc/schemas/detached";
-       // private final static Log log = LogFactory
-       // .getLog(DetachedXmlConverterCompat.class);
+       private final static Log log = LogFactory
+                       .getLog(DetachedXmlConverterCompat.class);
 
        private final Transformer copy;
 
@@ -53,9 +76,23 @@ public class DetachedXmlConverterCompat implements DetachedXmlConverter {
                } catch (TransformerException e) {
                        throw new DetachedException("Could not copy xml source", e);
                }
+
+               if (log.isTraceEnabled()) {
+                       try {
+                               DOMSource domSource = new DOMSource(result.getNode());
+                               StringWriter stringWriter = new StringWriter();
+                               StreamResult streamResult = new StreamResult(stringWriter);
+                               copy.transform(domSource, streamResult);
+                               log.trace("Unmarshall communication:\n"
+                                               + stringWriter.toString());
+                               IOUtils.closeQuietly(stringWriter);
+                       } catch (TransformerException e) {
+                               log.warn("Could not log xml source", e);
+                       }
+               }
                Element root = (Element) ((Document) result.getNode())
                                .getDocumentElement();
-               
+
                // Create objects
                String requestType = root.getLocalName();
                if (requestType.equals("detached-request")) {