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%2FShard.java;h=357df4ab8d819fbb7c5d46a0ea80ec025aa71200;hp=a9b401706b292f1f390d743b24c4492009d0afdd;hb=HEAD;hpb=844efe1d20cb61e5983532038e5135793fde5863 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java index a9b401706b..1fcaa9d64d 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/Shard.java @@ -40,6 +40,7 @@ import java.util.Map; import java.util.Optional; import java.util.OptionalLong; import java.util.concurrent.TimeUnit; +import java.util.function.Supplier; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.opendaylight.controller.cluster.access.ABIVersion; @@ -114,7 +115,6 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.tree.api.TreeType; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; -import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider; import scala.concurrent.duration.FiniteDuration; /** @@ -369,22 +369,6 @@ public class Shard extends RaftActor { handleRequestAssemblerMessage(message); } else if (message instanceof ConnectClientRequest request) { handleConnectClient(request); - } else if (CreateTransaction.isSerializedType(message)) { - handleCreateTransaction(message); - } else if (message instanceof BatchedModifications request) { - handleBatchedModifications(request); - } else if (message instanceof ForwardedReadyTransaction request) { - handleForwardedReadyTransaction(request); - } else if (message instanceof ReadyLocalTransaction request) { - handleReadyLocalTransaction(request); - } else if (CanCommitTransaction.isSerializedType(message)) { - handleCanCommitTransaction(CanCommitTransaction.fromSerializable(message)); - } else if (CommitTransaction.isSerializedType(message)) { - handleCommitTransaction(CommitTransaction.fromSerializable(message)); - } else if (AbortTransaction.isSerializedType(message)) { - handleAbortTransaction(AbortTransaction.fromSerializable(message)); - } else if (CloseTransactionChain.isSerializedType(message)) { - closeTransactionChain(CloseTransactionChain.fromSerializable(message)); } else if (message instanceof DataTreeChangedReply) { // Ignore reply } else if (message instanceof RegisterDataTreeChangeListener request) { @@ -408,8 +392,6 @@ public class Shard extends RaftActor { sender().tell(store.getDataTree(), self()); } else if (message instanceof ServerRemoved) { context().parent().forward(message, context()); - } else if (ShardTransactionMessageRetrySupport.TIMER_MESSAGE_CLASS.isInstance(message)) { - messageRetrySupport.onTimerMessage(message); } else if (message instanceof DataTreeCohortActorRegistry.CohortRegistryCommand request) { store.processCohortRegistryCommand(getSender(), request); } else if (message instanceof MakeLeaderLocal) { @@ -419,7 +401,28 @@ public class Shard extends RaftActor { } else if (GetKnownClients.INSTANCE.equals(message)) { handleGetKnownClients(); } else if (!responseMessageSlicer.handleMessage(message)) { - super.handleNonRaftCommand(message); + // Ask-based protocol messages + if (CreateTransaction.isSerializedType(message)) { + handleCreateTransaction(message); + } else if (message instanceof BatchedModifications request) { + handleBatchedModifications(request); + } else if (message instanceof ForwardedReadyTransaction request) { + handleForwardedReadyTransaction(request); + } else if (message instanceof ReadyLocalTransaction request) { + handleReadyLocalTransaction(request); + } else if (CanCommitTransaction.isSerializedType(message)) { + handleCanCommitTransaction(CanCommitTransaction.fromSerializable(message)); + } else if (CommitTransaction.isSerializedType(message)) { + handleCommitTransaction(CommitTransaction.fromSerializable(message)); + } else if (AbortTransaction.isSerializedType(message)) { + handleAbortTransaction(AbortTransaction.fromSerializable(message)); + } else if (CloseTransactionChain.isSerializedType(message)) { + closeTransactionChain(CloseTransactionChain.fromSerializable(message)); + } else if (ShardTransactionMessageRetrySupport.TIMER_MESSAGE_CLASS.isInstance(message)) { + messageRetrySupport.onTimerMessage(message); + } else { + super.handleNonRaftCommand(message); + } } } } @@ -952,7 +955,7 @@ public class Shard extends RaftActor { } private void updateSchemaContext(final UpdateSchemaContext message) { - updateSchemaContext(message.getEffectiveModelContext()); + updateSchemaContext(message.modelContext()); } @VisibleForTesting @@ -1165,7 +1168,7 @@ public class Shard extends RaftActor { private ShardIdentifier id; private Map peerAddresses = Collections.emptyMap(); private DatastoreContext datastoreContext; - private EffectiveModelContextProvider schemaContextProvider; + private Supplier<@NonNull EffectiveModelContext> schemaContextProvider; private DatastoreSnapshot.ShardSnapshot restoreFromSnapshot; private DataTree dataTree; @@ -1202,7 +1205,7 @@ public class Shard extends RaftActor { return self(); } - public T schemaContextProvider(final EffectiveModelContextProvider newSchemaContextProvider) { + public T schemaContextProvider(final Supplier<@NonNull EffectiveModelContext> newSchemaContextProvider) { checkSealed(); schemaContextProvider = requireNonNull(newSchemaContextProvider); return self(); @@ -1233,7 +1236,7 @@ public class Shard extends RaftActor { } public EffectiveModelContext getSchemaContext() { - return verifyNotNull(schemaContextProvider.getEffectiveModelContext()); + return verifyNotNull(schemaContextProvider.get()); } public DatastoreSnapshot.ShardSnapshot getRestoreFromSnapshot() {