Remove clientTxVersion from ShardTransaction 96/35096/5
authorTom Pantelis <tpanteli@brocade.com>
Fri, 19 Feb 2016 11:59:21 +0000 (06:59 -0500)
committerGerrit Code Review <gerrit@opendaylight.org>
Tue, 23 Feb 2016 00:46:39 +0000 (00:46 +0000)
With the removal of the pre-Lithium transaction messages,
ShardTransaction et al no longer need the clientTxVersion passed on
creation so this field was removed. When readying a tx, the version is
obtained from the BatchedModifications.

Change-Id: I96835f51f3665d205f93f6d98fd9497be5159510
Signed-off-by: Tom Pantelis <tpanteli@brocade.com>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardReadWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardSnapshotCohort.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFactory.java
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionFailureTest.java
opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/ShardTransactionTest.java

index b63cb862acd8a35d23b4c21425ec76a7d1d2df5f..1c0a5b5dec5cc87e9ef8181b6e85f374388bf1db 100644 (file)
@@ -533,11 +533,10 @@ public class Shard extends RaftActor {
     }
 
     private ActorRef createTypedTransactionActor(int transactionType,
-            ShardTransactionIdentifier transactionId, String transactionChainId,
-            short clientVersion ) {
+            ShardTransactionIdentifier transactionId, String transactionChainId) {
 
         return transactionActorFactory.newShardTransaction(TransactionType.fromInt(transactionType),
-                transactionId, transactionChainId, clientVersion);
+                transactionId, transactionChainId);
     }
 
     private void createTransaction(CreateTransaction createTransaction) {
@@ -548,8 +547,7 @@ public class Shard extends RaftActor {
             }
 
             ActorRef transactionActor = createTransaction(createTransaction.getTransactionType(),
-                createTransaction.getTransactionId(), createTransaction.getTransactionChainId(),
-                createTransaction.getVersion());
+                createTransaction.getTransactionId(), createTransaction.getTransactionChainId());
 
             getSender().tell(new CreateTransactionReply(Serialization.serializedActorPath(transactionActor),
                     createTransaction.getTransactionId(), createTransaction.getVersion()).toSerializable(), getSelf());
@@ -559,7 +557,7 @@ public class Shard extends RaftActor {
     }
 
     private ActorRef createTransaction(int transactionType, String remoteTransactionId,
-            String transactionChainId, short clientVersion) {
+            String transactionChainId) {
 
 
         ShardTransactionIdentifier transactionId = new ShardTransactionIdentifier(remoteTransactionId);
@@ -569,7 +567,7 @@ public class Shard extends RaftActor {
         }
 
         ActorRef transactionActor = createTypedTransactionActor(transactionType, transactionId,
-                transactionChainId, clientVersion);
+                transactionChainId);
 
         return transactionActor;
     }
index 4bde37c202c1c52215affad7f5134be3814fd08c..6b40d9be49c0e360daae6aa7b49dafd85da6eace 100644 (file)
@@ -30,8 +30,8 @@ public class ShardReadTransaction extends ShardTransaction {
     private final AbstractShardDataTreeTransaction<?> transaction;
 
     public ShardReadTransaction(AbstractShardDataTreeTransaction<?> transaction, ActorRef shardActor,
-            ShardStats shardStats, String transactionID, short clientTxVersion) {
-        super(shardActor, shardStats, transactionID, clientTxVersion);
+            ShardStats shardStats, String transactionID) {
+        super(shardActor, shardStats, transactionID);
         this.transaction = transaction;
     }
 
index 90607dea0f3e97bcc6806cdcbdd4bac0ccd1caa2..515b448f7b1ebf7f3f4981487c14f980a8eb4268 100644 (file)
@@ -19,8 +19,8 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadData;
  */
 public class ShardReadWriteTransaction extends ShardWriteTransaction {
     public ShardReadWriteTransaction(ReadWriteShardDataTreeTransaction transaction, ActorRef shardActor,
-            ShardStats shardStats, String transactionID, short clientTxVersion) {
-        super(transaction, shardActor, shardStats, transactionID, clientTxVersion);
+            ShardStats shardStats, String transactionID) {
+        super(transaction, shardActor, shardStats, transactionID);
     }
 
     @Override
index c4ac727cb3b59fa3efa77b2ef3ccf7427c2a81a7..30299c7bb236fc8c49c27517cd8a03b8a39dd727 100644 (file)
@@ -7,8 +7,8 @@
  */
 package org.opendaylight.controller.cluster.datastore;
 
-import com.google.common.base.Preconditions;
 import akka.actor.ActorRef;
+import com.google.common.base.Preconditions;
 import java.util.concurrent.ExecutionException;
 import org.opendaylight.controller.cluster.datastore.identifiers.ShardTransactionIdentifier;
 import org.opendaylight.controller.cluster.datastore.messages.CreateSnapshot;
@@ -51,7 +51,7 @@ class ShardSnapshotCohort implements RaftActorSnapshotCohort {
                 "createSnapshot" + ++createSnapshotTransactionCounter);
 
         ActorRef createSnapshotTransaction = transactionActorFactory.newShardTransaction(
-                TransactionType.READ_ONLY, transactionID, "", DataStoreVersions.CURRENT_VERSION);
+                TransactionType.READ_ONLY, transactionID, "");
 
         createSnapshotTransaction.tell(CreateSnapshot.INSTANCE, actorRef);
     }
index 82770a20bd4c87ea04a65728b54a89631c9b9b70..ebec5a101491690f891605fd7908a1dac7aac0c3 100644 (file)
@@ -44,21 +44,18 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering
     private final ActorRef shardActor;
     private final ShardStats shardStats;
     private final String transactionID;
-    private final short clientTxVersion;
 
-    protected ShardTransaction(ActorRef shardActor, ShardStats shardStats, String transactionID,
-            short clientTxVersion) {
+    protected ShardTransaction(ActorRef shardActor, ShardStats shardStats, String transactionID) {
         super("shard-tx"); //actor name override used for metering. This does not change the "real" actor name
         this.shardActor = shardActor;
         this.shardStats = shardStats;
         this.transactionID = Preconditions.checkNotNull(transactionID);
-        this.clientTxVersion = clientTxVersion;
     }
 
     public static Props props(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, ActorRef shardActor,
-            DatastoreContext datastoreContext, ShardStats shardStats, String transactionID, short txnClientVersion) {
+            DatastoreContext datastoreContext, ShardStats shardStats, String transactionID) {
         return Props.create(new ShardTransactionCreator(type, transaction, shardActor,
-           datastoreContext, shardStats, transactionID, txnClientVersion));
+           datastoreContext, shardStats, transactionID));
     }
 
     protected abstract AbstractShardDataTreeTransaction<?> getDOMStoreTransaction();
@@ -71,10 +68,6 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering
         return transactionID;
     }
 
-    protected short getClientTxVersion() {
-        return clientTxVersion;
-    }
-
     @Override
     public void handleReceive(Object message) throws Exception {
         if (CloseTransaction.isSerializedType(message)) {
@@ -142,17 +135,15 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering
         final DatastoreContext datastoreContext;
         final ShardStats shardStats;
         final String transactionID;
-        final short txnClientVersion;
         final TransactionType type;
 
         ShardTransactionCreator(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, ActorRef shardActor,
-                DatastoreContext datastoreContext, ShardStats shardStats, String transactionID, short txnClientVersion) {
+                DatastoreContext datastoreContext, ShardStats shardStats, String transactionID) {
             this.transaction = Preconditions.checkNotNull(transaction);
             this.shardActor = shardActor;
             this.shardStats = shardStats;
             this.datastoreContext = datastoreContext;
             this.transactionID = Preconditions.checkNotNull(transactionID);
-            this.txnClientVersion = txnClientVersion;
             this.type = type;
         }
 
@@ -162,15 +153,15 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering
             switch (type) {
             case READ_ONLY:
                 tx = new ShardReadTransaction(transaction, shardActor,
-                    shardStats, transactionID, txnClientVersion);
+                    shardStats, transactionID);
                 break;
             case READ_WRITE:
                 tx = new ShardReadWriteTransaction((ReadWriteShardDataTreeTransaction)transaction,
-                    shardActor, shardStats, transactionID, txnClientVersion);
+                    shardActor, shardStats, transactionID);
                 break;
             case WRITE_ONLY:
                 tx = new ShardWriteTransaction((ReadWriteShardDataTreeTransaction)transaction,
-                    shardActor, shardStats, transactionID, txnClientVersion);
+                    shardActor, shardStats, transactionID);
                 break;
             default:
                 throw new IllegalArgumentException("Unhandled transaction type " + type);
index 887f656205182564f5e28a7027ce8a4b337c23e5..76838dd2f83dc4bec45730e741dc5b8b47ad1686 100644 (file)
@@ -38,7 +38,7 @@ class ShardTransactionActorFactory {
     }
 
     ActorRef newShardTransaction(TransactionType type, ShardTransactionIdentifier transactionID,
-            String transactionChainID, short clientVersion) {
+            String transactionChainID) {
         final AbstractShardDataTreeTransaction<?> transaction;
         switch (type) {
         case READ_ONLY:
@@ -58,7 +58,7 @@ class ShardTransactionActorFactory {
         }
 
         return actorContext.actorOf(ShardTransaction.props(type, transaction, shardActor, datastoreContext, shardMBean,
-                transactionID.getRemoteTransactionId(), clientVersion).withDispatcher(txnDispatcherPath),
+                transactionID.getRemoteTransactionId()).withDispatcher(txnDispatcherPath),
                 transactionID.toString());
     }
 }
index 1a50d9b06f1b62f93c488d19c9d57c686ca76b3a..07f9c90fa2e42baf47677d4f33f8449377d7bf7f 100644 (file)
@@ -30,8 +30,8 @@ public class ShardWriteTransaction extends ShardTransaction {
     private final ReadWriteShardDataTreeTransaction transaction;
 
     public ShardWriteTransaction(ReadWriteShardDataTreeTransaction transaction, ActorRef shardActor,
-            ShardStats shardStats, String transactionID, short clientTxVersion) {
-        super(shardActor, shardStats, transactionID, clientTxVersion);
+            ShardStats shardStats, String transactionID) {
+        super(shardActor, shardStats, transactionID);
         this.transaction = transaction;
     }
 
@@ -75,7 +75,7 @@ public class ShardWriteTransaction extends ShardTransaction {
                             totalBatchedModificationsReceived, batched.getTotalMessagesSent()));
                 }
 
-                readyTransaction(false, batched.isDoCommitOnReady());
+                readyTransaction(false, batched.isDoCommitOnReady(), batched.getVersion());
             } else {
                 getSender().tell(new BatchedModificationsReply(batched.getModifications().size()), getSelf());
             }
@@ -106,12 +106,12 @@ public class ShardWriteTransaction extends ShardTransaction {
         }
     }
 
-    private void readyTransaction(boolean returnSerialized, boolean doImmediateCommit) {
+    private void readyTransaction(boolean returnSerialized, boolean doImmediateCommit, short clientTxVersion) {
         String transactionID = getTransactionID();
 
         LOG.debug("readyTransaction : {}", transactionID);
 
-        getShardActor().forward(new ForwardedReadyTransaction(transactionID, getClientTxVersion(),
+        getShardActor().forward(new ForwardedReadyTransaction(transactionID, clientTxVersion,
                 transaction, returnSerialized, doImmediateCommit), getContext());
 
         // The shard will handle the commit from here so we're no longer needed - self-destruct.
index ae4426e35b8281f4c88f1ec6a4b162da67be9ba3..77301f1de62ae66aa2c95657a7b28927745bd670 100644 (file)
@@ -60,7 +60,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest {
 
         final ActorRef shard = createShard();
         final Props props = ShardTransaction.props(RO, store.newReadOnlyTransaction("test-txn", null), shard,
-                datastoreContext, shardStats, "txn", DataStoreVersions.CURRENT_VERSION);
+                datastoreContext, shardStats, "txn");
 
         final TestActorRef<ShardTransaction> subject = TestActorRef.create(getSystem(), props,
                 "testNegativeReadWithReadOnlyTransactionClosed");
@@ -82,7 +82,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest {
 
         final ActorRef shard = createShard();
         final Props props = ShardTransaction.props(RW, store.newReadWriteTransaction("test-txn", null), shard,
-                datastoreContext, shardStats, "txn", DataStoreVersions.CURRENT_VERSION);
+                datastoreContext, shardStats, "txn");
 
         final TestActorRef<ShardTransaction> subject = TestActorRef.create(getSystem(), props,
                 "testNegativeReadWithReadWriteTransactionClosed");
@@ -103,7 +103,7 @@ public class ShardTransactionFailureTest extends AbstractActorTest {
 
         final ActorRef shard = createShard();
         final Props props = ShardTransaction.props(RW, store.newReadWriteTransaction("test-txn", null), shard,
-                datastoreContext, shardStats, "txn", DataStoreVersions.CURRENT_VERSION);
+                datastoreContext, shardStats, "txn");
 
         final TestActorRef<ShardTransaction> subject = TestActorRef.create(getSystem(), props,
                 "testNegativeExistsWithReadWriteTransactionClosed");
index 73c81fe9b7b2a42181c6a045b1bb5402b8347f3f..e0c9ace76001ee289c8ae4266590fd7088bb5f45 100644 (file)
@@ -80,21 +80,12 @@ public class ShardTransactionTest extends AbstractActorTest {
     }
 
     private ActorRef newTransactionActor(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, String name) {
-        return newTransactionActor(type, transaction, name, DataStoreVersions.CURRENT_VERSION);
-    }
-
-    private ActorRef newTransactionActor(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, String name, short version) {
-        return newTransactionActor(type, transaction, null, name, version);
+        return newTransactionActor(type, transaction, null, name);
     }
 
     private ActorRef newTransactionActor(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, ActorRef shard, String name) {
-        return newTransactionActor(type, transaction, null, name, DataStoreVersions.CURRENT_VERSION);
-    }
-
-    private ActorRef newTransactionActor(TransactionType type, AbstractShardDataTreeTransaction<?> transaction, ActorRef shard, String name,
-            short version) {
         Props props = ShardTransaction.props(type, transaction, shard != null ? shard : createShard(),
-                datastoreContext, shardStats, "txn", version);
+                datastoreContext, shardStats, "txn");
         return getSystem().actorOf(props, name);
     }
 
@@ -426,7 +417,7 @@ public class ShardTransactionTest extends AbstractActorTest {
     public void testNegativePerformingWriteOperationOnReadTransaction() throws Exception {
         final ActorRef shard = createShard();
         final Props props = ShardTransaction.props(TransactionType.READ_ONLY, readOnlyTransaction(), shard,
-                datastoreContext, shardStats, "txn", DataStoreVersions.CURRENT_VERSION);
+                datastoreContext, shardStats, "txn");
         final TestActorRef<ShardTransaction> transaction = TestActorRef.apply(props,getSystem());
 
         transaction.receive(new BatchedModifications("tx1", DataStoreVersions.CURRENT_VERSION, null),