X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2Fstream%2FAbstractNormalizedNodeDataOutput.java;h=3dc8f1c591d37e18027cc1d886c5f6b9b5acafd4;hp=5512f3171601d96f1710e8048f3c19993369d0bc;hb=2cf4749c41aa32c6b77064fc1ae0e231adc4a5f4;hpb=0fab6c716548e89938c1a8493dc25991c006aa10 diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/AbstractNormalizedNodeDataOutput.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/AbstractNormalizedNodeDataOutput.java index 5512f31716..3dc8f1c591 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/AbstractNormalizedNodeDataOutput.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/stream/AbstractNormalizedNodeDataOutput.java @@ -11,10 +11,16 @@ import com.google.common.base.Preconditions; import java.io.DataOutput; import java.io.IOException; import java.io.OutputStream; +import java.io.StringWriter; import java.nio.charset.StandardCharsets; import java.util.Collection; import java.util.Map; import java.util.Set; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.TransformerFactoryConfigurationError; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier; @@ -273,11 +279,17 @@ abstract class AbstractNormalizedNodeDataOutput implements NormalizedNodeDataOut @Override public void anyxmlNode(final NodeIdentifier name, final Object value) throws IOException, IllegalArgumentException { Preconditions.checkNotNull(name, "Node identifier should not be null"); - LOG.debug("Writing a new xml node"); + LOG.debug("Writing any xml node"); startNode(name.getNodeType(), NodeTypes.ANY_XML_NODE); - writeObject(value); + try { + StreamResult xmlOutput = new StreamResult(new StringWriter()); + TransformerFactory.newInstance().newTransformer().transform((DOMSource)value, xmlOutput); + writeObject(xmlOutput.getWriter().toString()); + } catch (TransformerException | TransformerFactoryConfigurationError e) { + throw new IOException("Error writing anyXml", e); + } } @Override