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%2FShardTransaction.java;h=44393a14f1c1ff1daae4a14d808a36225133d689;hp=e3fbb82ee805b610d0d02c782ff47f5b55da5c3f;hb=817d0efe25becd8d457550b11bf985298e169954;hpb=057b787289f7b909d7013c22ac73a1c91c860af8 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java index e3fbb82ee8..44393a14f1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardTransaction.java @@ -5,29 +5,26 @@ * 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 static java.util.Objects.requireNonNull; + import akka.actor.ActorRef; import akka.actor.PoisonPill; import akka.actor.Props; import akka.actor.ReceiveTimeout; import akka.japi.Creator; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; import edu.umd.cs.findbugs.annotations.SuppressFBWarnings; import org.opendaylight.controller.cluster.access.concepts.TransactionIdentifier; import org.opendaylight.controller.cluster.common.actor.AbstractUntypedActorWithMetering; -import org.opendaylight.controller.cluster.datastore.jmx.mbeans.shard.ShardStats; import org.opendaylight.controller.cluster.datastore.messages.CloseTransaction; import org.opendaylight.controller.cluster.datastore.messages.CloseTransactionReply; import org.opendaylight.controller.cluster.datastore.messages.DataExists; import org.opendaylight.controller.cluster.datastore.messages.DataExistsReply; import org.opendaylight.controller.cluster.datastore.messages.ReadData; import org.opendaylight.controller.cluster.datastore.messages.ReadDataReply; -import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException; +import org.opendaylight.mdsal.common.api.ReadFailedException; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; /** * The ShardTransaction Actor represents a remote transaction that delegates all actions to DOMDataReadWriteTransaction. @@ -37,16 +34,19 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering private final ShardStats shardStats; private final TransactionIdentifier transactionId; - protected ShardTransaction(ActorRef shardActor, ShardStats shardStats, TransactionIdentifier transactionId) { - super("shard-tx"); //actor name override used for metering. This does not change the "real" actor name + protected ShardTransaction(final ActorRef shardActor, final ShardStats shardStats, + final TransactionIdentifier transactionId) { + // actor name override used for metering. This does not change the "real" actor name + super("shard-tx"); this.shardActor = shardActor; this.shardStats = shardStats; - this.transactionId = Preconditions.checkNotNull(transactionId); + this.transactionId = requireNonNull(transactionId); } - public static Props props(TransactionType type, AbstractShardDataTreeTransaction transaction, - ActorRef shardActor, DatastoreContext datastoreContext, ShardStats shardStats) { - return Props.create(new ShardTransactionCreator(type, transaction, shardActor, datastoreContext, shardStats)); + public static Props props(final TransactionType type, final AbstractShardDataTreeTransaction transaction, + final ActorRef shardActor, final DatastoreContext datastoreContext, final ShardStats shardStats) { + return Props.create(ShardTransaction.class, + new ShardTransactionCreator(type, transaction, shardActor, datastoreContext, shardStats)); } protected abstract AbstractShardDataTreeTransaction getDOMStoreTransaction(); @@ -60,7 +60,7 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering } @Override - public void handleReceive(Object message) { + public void handleReceive(final Object message) { if (CloseTransaction.isSerializedType(message)) { closeTransaction(true); } else if (message instanceof ReceiveTimeout) { @@ -75,8 +75,8 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering return true; } - private void closeTransaction(boolean sendReply) { - getDOMStoreTransaction().abort(); + private void closeTransaction(final boolean sendReply) { + getDOMStoreTransaction().abortFromTransactionActor(); if (sendReply && returnCloseTransactionReply()) { getSender().tell(new CloseTransactionReply(), getSelf()); @@ -85,7 +85,7 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering getSelf().tell(PoisonPill.getInstance(), getSelf()); } - private boolean checkClosed(AbstractShardDataTreeTransaction transaction) { + private boolean checkClosed(final AbstractShardDataTreeTransaction transaction) { final boolean ret = transaction.isClosed(); if (ret) { shardStats.incrementFailedReadTransactionsCount(); @@ -95,18 +95,18 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering return ret; } - protected void readData(AbstractShardDataTreeTransaction transaction, ReadData message) { + protected void readData(final AbstractShardDataTreeTransaction transaction, final ReadData message) { if (checkClosed(transaction)) { return; } final YangInstanceIdentifier path = message.getPath(); - Optional> optional = transaction.getSnapshot().readNode(path); - ReadDataReply readDataReply = new ReadDataReply(optional.orNull(), message.getVersion()); + ReadDataReply readDataReply = new ReadDataReply(transaction.getSnapshot().readNode(path).orElse(null), + message.getVersion()); sender().tell(readDataReply.toSerializable(), self()); } - protected void dataExists(AbstractShardDataTreeTransaction transaction, DataExists message) { + protected void dataExists(final AbstractShardDataTreeTransaction transaction, final DataExists message) { if (checkClosed(transaction)) { return; } @@ -128,9 +128,9 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering final ShardStats shardStats; final TransactionType type; - ShardTransactionCreator(TransactionType type, AbstractShardDataTreeTransaction transaction, - ActorRef shardActor, DatastoreContext datastoreContext, ShardStats shardStats) { - this.transaction = Preconditions.checkNotNull(transaction); + ShardTransactionCreator(final TransactionType type, final AbstractShardDataTreeTransaction transaction, + final ActorRef shardActor, final DatastoreContext datastoreContext, final ShardStats shardStats) { + this.transaction = requireNonNull(transaction); this.shardActor = shardActor; this.shardStats = shardStats; this.datastoreContext = datastoreContext; @@ -138,7 +138,7 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering } @Override - public ShardTransaction create() throws Exception { + public ShardTransaction create() { final ShardTransaction tx; switch (type) { case READ_ONLY: