X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardTransaction.java;h=44393a14f1c1ff1daae4a14d808a36225133d689;hb=HEAD;hp=87dd5e3e2638fff856352b2f012523ad83631c82;hpb=7011afc1380ca25ad3de4cc8865f12fe3f5e09cf;p=controller.git 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 87dd5e3e26..3b3462884f 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,19 +5,18 @@ * 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.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; @@ -30,6 +29,7 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; /** * The ShardTransaction Actor represents a remote transaction that delegates all actions to DOMDataReadWriteTransaction. */ +@Deprecated(since = "9.0.0", forRemoval = true) public abstract class ShardTransaction extends AbstractUntypedActorWithMetering { private final ActorRef shardActor; private final ShardStats shardStats; @@ -41,12 +41,13 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering super("shard-tx"); this.shardActor = shardActor; this.shardStats = shardStats; - this.transactionId = Preconditions.checkNotNull(transactionId); + this.transactionId = requireNonNull(transactionId); } public static Props props(final TransactionType type, final AbstractShardDataTreeTransaction transaction, final ActorRef shardActor, final DatastoreContext datastoreContext, final ShardStats shardStats) { - return Props.create(new ShardTransactionCreator(type, transaction, shardActor, datastoreContext, shardStats)); + return Props.create(ShardTransaction.class, + new ShardTransactionCreator(type, transaction, shardActor, datastoreContext, shardStats)); } protected abstract AbstractShardDataTreeTransaction getDOMStoreTransaction(); @@ -119,7 +120,7 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering @SuppressFBWarnings(value = "SE_BAD_FIELD", justification = "Some fields are not Serializable but we don't " + "create remote instances of this actor and thus don't need it to be Serializable.") private static class ShardTransactionCreator implements Creator { - + @java.io.Serial private static final long serialVersionUID = 1L; final AbstractShardDataTreeTransaction transaction; @@ -130,7 +131,7 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering ShardTransactionCreator(final TransactionType type, final AbstractShardDataTreeTransaction transaction, final ActorRef shardActor, final DatastoreContext datastoreContext, final ShardStats shardStats) { - this.transaction = Preconditions.checkNotNull(transaction); + this.transaction = requireNonNull(transaction); this.shardActor = shardActor; this.shardStats = shardStats; this.datastoreContext = datastoreContext; @@ -139,23 +140,14 @@ public abstract class ShardTransaction extends AbstractUntypedActorWithMetering @Override public ShardTransaction create() { - final ShardTransaction tx; - switch (type) { - case READ_ONLY: - tx = new ShardReadTransaction(transaction, shardActor, shardStats); - break; - case READ_WRITE: - tx = new ShardReadWriteTransaction((ReadWriteShardDataTreeTransaction)transaction, shardActor, - shardStats); - break; - case WRITE_ONLY: - tx = new ShardWriteTransaction((ReadWriteShardDataTreeTransaction)transaction, shardActor, - shardStats); - break; - default: - throw new IllegalArgumentException("Unhandled transaction type " + type); - } - + final var tx = switch (type) { + case READ_ONLY -> new ShardReadTransaction(transaction, shardActor, shardStats); + case READ_WRITE -> new ShardReadWriteTransaction((ReadWriteShardDataTreeTransaction) transaction, + shardActor, shardStats); + case WRITE_ONLY -> new ShardWriteTransaction((ReadWriteShardDataTreeTransaction) transaction, + shardActor, shardStats); + default -> throw new IllegalArgumentException("Unhandled transaction type " + type); + }; tx.getContext().setReceiveTimeout(datastoreContext.getShardTransactionIdleTimeout()); return tx; }