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%2Fmessages%2FReadyLocalTransaction.java;h=9556087601fe013ea914d4eb5a65713ebbe22678;hp=6d952f9a4a324e05cbfa2b2d5bc87ff49e1d0a14;hb=4d1709660b7af992d4c382a2a38debb5c7d64fb9;hpb=0c2015c7fd5eeae79280c815b4836218929608e1 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java index 6d952f9a4a..9556087601 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/messages/ReadyLocalTransaction.java @@ -8,25 +8,33 @@ package org.opendaylight.controller.cluster.datastore.messages; import com.google.common.base.Preconditions; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; +import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; /** * Message notifying the shard leader to apply modifications which have been * prepared locally against its DataTree. This message is not directly serializable, - * simply because the leader and sender need to be on the same system. + * simply because the leader and sender need to be on the same system. When it needs + * to be sent out to a remote system, it needs to be intercepted by {@link ReadyLocalTransactionSerializer} + * and turned into {@link BatchedModifications}. */ public final class ReadyLocalTransaction { private final DataTreeModification modification; - private final String transactionID; + private final TransactionIdentifier transactionID; private final boolean doCommitOnReady; - public ReadyLocalTransaction(final String transactionID, DataTreeModification modification, boolean doCommitOnReady) { + // The version of the remote system used only when needing to convert to BatchedModifications. + private short remoteVersion = DataStoreVersions.CURRENT_VERSION; + + public ReadyLocalTransaction(final TransactionIdentifier transactionID, final DataTreeModification modification, + final boolean doCommitOnReady) { this.transactionID = Preconditions.checkNotNull(transactionID); this.modification = Preconditions.checkNotNull(modification); this.doCommitOnReady = doCommitOnReady; } - public String getTransactionID() { + public TransactionIdentifier getTransactionID() { return transactionID; } @@ -37,4 +45,12 @@ public final class ReadyLocalTransaction { public boolean isDoCommitOnReady() { return doCommitOnReady; } + + public short getRemoteVersion() { + return remoteVersion; + } + + public void setRemoteVersion(short remoteVersion) { + this.remoteVersion = remoteVersion; + } }