From c4065f3a269be3d76f001c6ed198dda9a02be60e Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 20 May 2017 13:26:08 +0200 Subject: [PATCH] Migrate to yang-data-codec-xml The codecs in yang-data-impl are going away, use their new place. Also optimize serialization by sharing XMLOutputFactory, as it is thread-safe after having been configured. Change-Id: If6d3b348fa8568e4e84199d4c23ec910c9fc6343 Signed-off-by: Robert Varga --- .../md-sal/sal-distributed-datastore/pom.xml | 4 ++++ .../datastore/utils/NormalizedNodeXMLOutput.java | 13 +++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/pom.xml b/opendaylight/md-sal/sal-distributed-datastore/pom.xml index ccb42d93a0..2f9381b2c2 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/pom.xml +++ b/opendaylight/md-sal/sal-distributed-datastore/pom.xml @@ -202,6 +202,10 @@ org.opendaylight.yangtools yang-data-impl + + org.opendaylight.yangtools + yang-data-codec-xml + org.apache.commons commons-lang3 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeXMLOutput.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeXMLOutput.java index dc8c77b432..49a0f47a41 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeXMLOutput.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/NormalizedNodeXMLOutput.java @@ -18,7 +18,7 @@ import javax.xml.stream.XMLStreamWriter; 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.api.schema.stream.NormalizedNodeWriter; -import org.opendaylight.yangtools.yang.data.impl.codec.xml.XMLStreamNormalizedNodeStreamWriter; +import org.opendaylight.yangtools.yang.data.codec.xml.XMLStreamNormalizedNodeStreamWriter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,15 +29,20 @@ import org.slf4j.LoggerFactory; */ public final class NormalizedNodeXMLOutput { private static final Logger LOG = LoggerFactory.getLogger(NormalizedNodeXMLOutput.class); + private static final XMLOutputFactory XOF; + + static { + final XMLOutputFactory f = XMLOutputFactory.newFactory(); + f.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); + XOF = f; + } private NormalizedNodeXMLOutput() { } public static void toStream(OutputStream outStream, NormalizedNode node) throws XMLStreamException, IOException { - XMLOutputFactory xmlFactory = XMLOutputFactory.newFactory(); - xmlFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true); - XMLStreamWriter xmlWriter = xmlFactory.createXMLStreamWriter(outStream); + XMLStreamWriter xmlWriter = XOF.createXMLStreamWriter(outStream); IndentingXMLStreamWriter indenting = new IndentingXMLStreamWriter(xmlWriter); try (NormalizedNodeStreamWriter streamWriter = XMLStreamNormalizedNodeStreamWriter.createSchemaless( -- 2.36.6