X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Futils%2FSerializationUtils.java;h=2e3cfd0e3a1f96d62b329c30ed1c34473235d52c;hp=b416b922de75be07c9b1e392dd21757444ddcde9;hb=599f10fc4a52c41583b719582b6ff36a0d53ccae;hpb=d2794d1ff53103a4e6863325e4eaf9e86da78ce1 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/SerializationUtils.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/SerializationUtils.java index b416b922de..2e3cfd0e3a 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/SerializationUtils.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/utils/SerializationUtils.java @@ -8,7 +8,6 @@ package org.opendaylight.controller.cluster.datastore.utils; import com.google.common.base.Preconditions; -import com.google.protobuf.InvalidProtocolBufferException; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInput; @@ -16,13 +15,9 @@ import java.io.DataInputStream; import java.io.DataOutput; import java.io.DataOutputStream; import java.io.IOException; -import org.opendaylight.controller.cluster.datastore.node.NormalizedNodeToNodeCodec; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.InvalidNormalizedNodeStreamException; 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.node.utils.stream.NormalizedNodeInputStreamReader; -import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; @@ -30,18 +25,20 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; * Provides various utility methods for serialization and de-serialization. * * @author Thomas Pantelis + * @deprecated use {@link org.opendaylight.controller.cluster.datastore.node.utils.stream.SerializationUtils} instead */ +@Deprecated public final class SerializationUtils { public static final ThreadLocal REUSABLE_WRITER_TL = new ThreadLocal<>(); - public static final ThreadLocal REUSABLE_READER_TL = new ThreadLocal<>(); + public static final ThreadLocal REUSABLE_READER_TL = new ThreadLocal<>(); - public static interface Applier { + public interface Applier { void apply(T instance, YangInstanceIdentifier path, NormalizedNode node); } private static NormalizedNodeDataOutput streamWriter(DataOutput out) throws IOException { NormalizedNodeDataOutput streamWriter = REUSABLE_WRITER_TL.get(); - if(streamWriter == null) { + if (streamWriter == null) { streamWriter = NormalizedNodeInputOutput.newDataOutput(out); } @@ -49,12 +46,12 @@ public final class SerializationUtils { } private static NormalizedNodeDataInput streamReader(DataInput in) throws IOException { - NormalizedNodeInputStreamReader streamWriter = REUSABLE_READER_TL.get(); - if(streamWriter == null) { - streamWriter = new NormalizedNodeInputStreamReader(in); + NormalizedNodeDataInput streamReader = REUSABLE_READER_TL.get(); + if (streamReader == null) { + streamReader = NormalizedNodeInputOutput.newDataInput(in); } - return streamWriter; + return streamReader; } public static void serializePathAndNode(YangInstanceIdentifier path, NormalizedNode node, @@ -82,17 +79,14 @@ public final class SerializationUtils { } } - public static void serializeNormalizedNode(NormalizedNode node, DataOutput out) { - try { - out.writeBoolean(node != null); - if(node != null) { - NormalizedNodeDataOutput streamWriter = streamWriter(out); - streamWriter.writeNormalizedNode(node); - } - } catch (IOException e) { - throw new IllegalArgumentException(String.format("Error serializing NormalizedNode %s", - node), e); + private static NormalizedNode tryDeserializeNormalizedNode(DataInput in) throws IOException { + boolean present = in.readBoolean(); + if (present) { + NormalizedNodeDataInput streamReader = streamReader(in); + return streamReader.readNormalizedNode(); } + + return null; } public static NormalizedNode deserializeNormalizedNode(DataInput in) { @@ -103,33 +97,25 @@ public final class SerializationUtils { } } - private static NormalizedNode tryDeserializeNormalizedNode(DataInput in) throws IOException { - boolean present = in.readBoolean(); - if(present) { - NormalizedNodeDataInput streamReader = streamReader(in); - return streamReader.readNormalizedNode(); + public static NormalizedNode deserializeNormalizedNode(byte [] bytes) { + try { + return tryDeserializeNormalizedNode(new DataInputStream(new ByteArrayInputStream(bytes))); + } catch (IOException e) { + throw new IllegalArgumentException("Error deserializing NormalizedNode", e); } - - return null; } - public static NormalizedNode deserializeNormalizedNode(byte [] bytes) { - NormalizedNode node = null; + public static void serializeNormalizedNode(NormalizedNode node, DataOutput out) { try { - node = tryDeserializeNormalizedNode(new DataInputStream(new ByteArrayInputStream(bytes))); - } catch(InvalidNormalizedNodeStreamException e) { - // Probably from legacy protobuf serialization - try that. - try { - NormalizedNodeMessages.Node serializedNode = NormalizedNodeMessages.Node.parseFrom(bytes); - node = new NormalizedNodeToNodeCodec(null).decode(serializedNode); - } catch (InvalidProtocolBufferException e2) { - throw new IllegalArgumentException("Error deserializing NormalizedNode", e); + out.writeBoolean(node != null); + if (node != null) { + NormalizedNodeDataOutput streamWriter = streamWriter(out); + streamWriter.writeNormalizedNode(node); } } catch (IOException e) { - throw new IllegalArgumentException("Error deserializing NormalizedNode", e); + throw new IllegalArgumentException(String.format("Error serializing NormalizedNode %s", + node), e); } - - return node; } public static byte [] serializeNormalizedNode(NormalizedNode node) {