+/*
+ * Copyright (C) 2007-2012 Mathieu Baudier
+ *
+ * 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;
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;
} 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")) {
.setRef(root.getElementsByTagNameNS(
SLC_DETACHED_NAMESPACE_URI, "ref").item(0)
.getTextContent());
- request.setPath(root.getElementsByTagNameNS(
- SLC_DETACHED_NAMESPACE_URI, "path").item(0)
- .getTextContent());
Element propertiesElement = (Element) root.getElementsByTagNameNS(
SLC_DETACHED_NAMESPACE_URI, "properties").item(0);
NodeList propElements = propertiesElement.getElementsByTagNameNS(
"uuid").item(0).getTextContent());
request.setRef(node.getElementsByTagNameNS(SLC_DETACHED_NAMESPACE_URI,
"ref").item(0).getTextContent());
- request.setPath(node.getElementsByTagNameNS(SLC_DETACHED_NAMESPACE_URI,
- "path").item(0).getTextContent());
Element propertiesElement = (Element) node.getElementsByTagNameNS(
SLC_DETACHED_NAMESPACE_URI, "properties").item(0);
NodeList propElements = propertiesElement.getElementsByTagNameNS(