From 4f326302b5dcb41b1da291a0240e2b8808a63893 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20de=20Talhou=C3=ABt?= Date: Fri, 21 Oct 2016 16:26:02 -0400 Subject: [PATCH] Use SerializationUtils to (de)serialize NormalizedNode and YangInstanceIdentifier MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Controller CDS implementation provide utility method for this, we can re-use them, as it appears it's keeping a ThreadLocal holding NormalizedNodeDataOutput instance Change-Id: Ia106f33d04f937ac8dacf89cb6837a157eee8ae1 Signed-off-by: Alexis de Talhouët --- netconf/netconf-topology-singleton/pom.xml | 11 +++++++++ .../messages/NormalizedNodeMessage.java | 24 +++++++------------ 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/netconf/netconf-topology-singleton/pom.xml b/netconf/netconf-topology-singleton/pom.xml index 34db91e610..e247fb5071 100644 --- a/netconf/netconf-topology-singleton/pom.xml +++ b/netconf/netconf-topology-singleton/pom.xml @@ -33,6 +33,13 @@ pom import + + org.opendaylight.controller + mdsal-artifacts + 1.5.0-SNAPSHOT + pom + import + @@ -71,6 +78,10 @@ akka-testkit_2.11 test + + org.opendaylight.controller + sal-distributed-datastore + \ No newline at end of file diff --git a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/NormalizedNodeMessage.java b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/NormalizedNodeMessage.java index 48a86749f0..b4ede5bdbf 100644 --- a/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/NormalizedNodeMessage.java +++ b/netconf/netconf-topology-singleton/src/main/java/org/opendaylight/netconf/topology/singleton/messages/NormalizedNodeMessage.java @@ -12,13 +12,9 @@ import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataInput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput; +import org.opendaylight.controller.cluster.datastore.utils.SerializationUtils; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; 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; /** * Message which holds node data, prepared to sending between remote hosts with serialization. @@ -48,20 +44,16 @@ public class NormalizedNodeMessage implements Externalizable { @Override public void writeExternal(final ObjectOutput out) throws IOException { - final NormalizedNodeDataOutput dataOutput = NormalizedNodeInputOutput.newDataOutput(out); - final NormalizedNodeWriter normalizedNodeWriter = - NormalizedNodeWriter.forStreamWriter((NormalizedNodeStreamWriter) dataOutput); - - dataOutput.writeYangInstanceIdentifier(identifier); - - normalizedNodeWriter.write(node); + SerializationUtils.serializePathAndNode(getIdentifier(), node, out); } @Override public void readExternal(final ObjectInput in) throws IOException, ClassNotFoundException { - final NormalizedNodeDataInput dataInput = NormalizedNodeInputOutput.newDataInput(in); - - identifier = dataInput.readYangInstanceIdentifier(); - node = dataInput.readNormalizedNode(); + SerializationUtils.deserializePathAndNode(in, this, APPLIER); } + + private static final SerializationUtils.Applier APPLIER = (instance, path, node) -> { + instance.identifier = path; + instance.node = node; + }; } -- 2.36.6