Use ContainerNode in RuntimeRpc
[netconf.git] / plugins / netconf-server-mdsal / src / main / java / org / opendaylight / netconf / server / mdsal / operations / RuntimeRpc.java
index 992cddd5b44da1e6a36a7ca4fa20a3ce7848ca19..17d359fb6d27c4426a6e2eef64b83c1028fd6e3d 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.netconf.server.mdsal.operations;
 
 import java.io.IOException;
-import java.net.URISyntaxException;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.ExecutionException;
@@ -37,7 +36,6 @@ import org.opendaylight.yangtools.yang.common.ErrorTag;
 import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.XMLNamespace;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
@@ -54,7 +52,6 @@ import org.w3c.dom.Attr;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
 
 public class RuntimeRpc extends AbstractSingletonNetconfOperation {
     private static final Logger LOG = LoggerFactory.getLogger(RuntimeRpc.class);
@@ -157,7 +154,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation {
             throw DocumentedException.wrap(e);
         }
         if (result.value() == null) {
-            return XmlUtil.createElement(document, XmlNetconfConstants.OK, Optional.of(NamespaceURN.BASE));
+            return document.createElementNS(NamespaceURN.BASE, XmlNetconfConstants.OK);
         }
         return transformNormalizedNode(document, result.value(),
                 Absolute.of(rpcDefinition.getQName(), rpcDefinition.getOutput().getQName()));
@@ -172,8 +169,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation {
         final Map<String, Attr> attributes = requestElement.getAttributes();
 
         final Element response = handle(document, operationElement, subsequentOperation);
-        final Element rpcReply = XmlUtil.createElement(document, RpcReplyMessage.ELEMENT_NAME,
-                Optional.of(NamespaceURN.BASE));
+        final Element rpcReply = document.createElementNS(NamespaceURN.BASE, RpcReplyMessage.ELEMENT_NAME);
 
         if (XmlElement.fromDomElement(response).hasNamespace()) {
             rpcReply.appendChild(response);
@@ -195,7 +191,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation {
         return document;
     }
 
-    private Element transformNormalizedNode(final Document document, final NormalizedNode data,
+    private Element transformNormalizedNode(final Document document, final ContainerNode data,
                                             final Absolute rpcOutputPath) {
         final DOMResult result = new DOMResult(document.createElement(RpcReplyMessage.ELEMENT_NAME));
 
@@ -207,7 +203,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation {
         final SchemaOrderedNormalizedNodeWriter nnWriter = new SchemaOrderedNormalizedNodeWriter(nnStreamWriter,
                 schemaContext.getCurrentContext(), rpcOutputPath);
 
-        writeRootElement(xmlWriter, nnWriter, (ContainerNode) data);
+        writeRootElement(xmlWriter, nnWriter, data);
         try {
             nnStreamWriter.close();
             xmlWriter.close();
@@ -256,7 +252,7 @@ public class RuntimeRpc extends AbstractSingletonNetconfOperation {
 
         try {
             xmlParser.traverse(new DOMSource(element.getDomElement()));
-        } catch (final XMLStreamException | URISyntaxException | IOException | SAXException ex) {
+        } catch (final XMLStreamException | IOException ex) {
             throw new NetconfDocumentedException("Error parsing input: " + ex.getMessage(), ex,
                 ErrorType.PROTOCOL, ErrorTag.MALFORMED_MESSAGE, ErrorSeverity.ERROR);
         }