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%2FShardWriteTransaction.java;h=f900e1383abc15d35c36aa5ce3c5a6cc6c65b3ea;hp=18294a50fa454457aa4535444a2fd7a2eb0140da;hb=HEAD;hpb=ca4da3b99edbc6c52aa888cf9aa748f82ea51efd diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java index 18294a50fa..764361a016 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardWriteTransaction.java @@ -6,12 +6,11 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ - package org.opendaylight.controller.cluster.datastore; import akka.actor.ActorRef; import akka.actor.PoisonPill; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; +import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.datastore.messages.BatchedModifications; import org.opendaylight.controller.cluster.datastore.messages.BatchedModificationsReply; import org.opendaylight.controller.cluster.datastore.messages.DataExists; @@ -20,18 +19,19 @@ import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.cluster.datastore.modification.Modification; /** - * @author: syedbahm - * Date: 8/6/14 + * Actor for a shard write-only transaction. + * + * @author syedbahm */ +@Deprecated(since = "9.0.0", forRemoval = true) public class ShardWriteTransaction extends ShardTransaction { - private int totalBatchedModificationsReceived; private Exception lastBatchedModificationsException; private final ReadWriteShardDataTreeTransaction transaction; - public ShardWriteTransaction(ReadWriteShardDataTreeTransaction transaction, ActorRef shardActor, - ShardStats shardStats, String transactionID) { - super(shardActor, shardStats, transactionID); + public ShardWriteTransaction(final ReadWriteShardDataTreeTransaction transaction, final ActorRef shardActor, + final ShardStats shardStats) { + super(shardActor, shardStats, transaction.getIdentifier()); this.transaction = transaction; } @@ -41,8 +41,7 @@ public class ShardWriteTransaction extends ShardTransaction { } @Override - public void handleReceive(Object message) throws Exception { - + public void handleReceive(final Object message) { if (message instanceof BatchedModifications) { batchedModifications((BatchedModifications)message); } else { @@ -50,7 +49,8 @@ public class ShardWriteTransaction extends ShardTransaction { } } - private void batchedModifications(BatchedModifications batched) { + @SuppressWarnings("checkstyle:IllegalCatch") + private void batchedModifications(final BatchedModifications batched) { if (checkClosed()) { if (batched.isReady()) { getSelf().tell(PoisonPill.getInstance(), getSelf()); @@ -59,23 +59,23 @@ public class ShardWriteTransaction extends ShardTransaction { } try { - for(Modification modification: batched.getModifications()) { + for (Modification modification: batched.getModifications()) { modification.apply(transaction.getSnapshot()); } totalBatchedModificationsReceived++; - if(batched.isReady()) { - if(lastBatchedModificationsException != null) { + if (batched.isReady()) { + if (lastBatchedModificationsException != null) { throw lastBatchedModificationsException; } - if(totalBatchedModificationsReceived != batched.getTotalMessagesSent()) { + if (totalBatchedModificationsReceived != batched.getTotalMessagesSent()) { throw new IllegalStateException(String.format( "The total number of batched messages received %d does not match the number sent %d", totalBatchedModificationsReceived, batched.getTotalMessagesSent())); } - readyTransaction(false, batched.isDoCommitOnReady(), batched.getVersion()); + readyTransaction(batched); } else { getSender().tell(new BatchedModificationsReply(batched.getModifications().size()), getSelf()); } @@ -83,36 +83,36 @@ public class ShardWriteTransaction extends ShardTransaction { lastBatchedModificationsException = e; getSender().tell(new akka.actor.Status.Failure(e), getSelf()); - if(batched.isReady()) { + if (batched.isReady()) { getSelf().tell(PoisonPill.getInstance(), getSelf()); } } } - protected final void dataExists(DataExists message) { + protected final void dataExists(final DataExists message) { super.dataExists(transaction, message); } - protected final void readData(ReadData message) { + protected final void readData(final ReadData message) { super.readData(transaction, message); } private boolean checkClosed() { - if (transaction.isClosed()) { - getSender().tell(new akka.actor.Status.Failure(new IllegalStateException("Transaction is closed, no modifications allowed")), getSelf()); - return true; - } else { - return false; + final boolean ret = transaction.isClosed(); + if (ret) { + getSender().tell(new akka.actor.Status.Failure(new IllegalStateException( + "Transaction is closed, no modifications allowed")), getSelf()); } + return ret; } - private void readyTransaction(boolean returnSerialized, boolean doImmediateCommit, short clientTxVersion) { - String transactionID = getTransactionID(); + private void readyTransaction(final BatchedModifications batched) { + TransactionIdentifier transactionID = getTransactionId(); LOG.debug("readyTransaction : {}", transactionID); - getShardActor().forward(new ForwardedReadyTransaction(transactionID, clientTxVersion, - transaction, doImmediateCommit), getContext()); + getShardActor().forward(new ForwardedReadyTransaction(transactionID, batched.getVersion(), + transaction, batched.isDoCommitOnReady(), batched.getParticipatingShardNames()), getContext()); // The shard will handle the commit from here so we're no longer needed - self-destruct. getSelf().tell(PoisonPill.getInstance(), getSelf());