X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fcds-access-api%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Faccess%2Fcommands%2FReadTransactionSuccessProxyV1.java;h=357c3d977c3bfea2b4345f1f74d2394e02ce3aad;hb=refs%2Fchanges%2F25%2F86425%2F6;hp=ed45695d1078d768f7bd6e5c0d8e0cab36087e11;hpb=9b4f21460c6dcb10c381df631d064d05de16546c;p=controller.git diff --git a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java index ed45695d10..357c3d977c 100644 --- a/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java +++ b/opendaylight/md-sal/cds-access-api/src/main/java/org/opendaylight/controller/cluster/access/commands/ReadTransactionSuccessProxyV1.java @@ -7,14 +7,15 @@ */ package org.opendaylight.controller.cluster.access.commands; -import com.google.common.base.Optional; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectOutput; +import java.util.Optional; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeDataOutput; -import org.opendaylight.controller.cluster.datastore.node.utils.stream.NormalizedNodeInputOutput; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataInput; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeDataOutput; +import org.opendaylight.yangtools.yang.data.codec.binfmt.NormalizedNodeStreamVersion; /** * Externalizable proxy for use with {@link ReadTransactionSuccess}. It implements the initial (Boron) serialization @@ -24,8 +25,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; */ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProxy { private static final long serialVersionUID = 1L; + private Optional> data; + private transient NormalizedNodeStreamVersion streamVersion; + // checkstyle flags the public modifier as redundant however it is explicitly needed for Java serialization to + // be able to create instances via reflection. + @SuppressWarnings("checkstyle:RedundantModifier") public ReadTransactionSuccessProxyV1() { // For Externalizable } @@ -33,6 +39,7 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx ReadTransactionSuccessProxyV1(final ReadTransactionSuccess request) { super(request); this.data = request.getData(); + this.streamVersion = request.getVersion().getStreamVersion(); } @Override @@ -41,14 +48,12 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx if (data.isPresent()) { out.writeBoolean(true); - try (NormalizedNodeDataOutput nnout = NormalizedNodeInputOutput.newDataOutput(out)) { + try (NormalizedNodeDataOutput nnout = streamVersion.newDataOutput(out)) { nnout.writeNormalizedNode(data.get()); } } else { out.writeBoolean(false); } - - out.writeObject(data); } @Override @@ -56,9 +61,9 @@ final class ReadTransactionSuccessProxyV1 extends AbstractTransactionSuccessProx super.readExternal(in); if (in.readBoolean()) { - data = Optional.of(NormalizedNodeInputOutput.newDataInput(in).readNormalizedNode()); + data = Optional.of(NormalizedNodeDataInput.newDataInput(in).readNormalizedNode()); } else { - data = Optional.absent(); + data = Optional.empty(); } }