X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fshardmanager%2FShardManagerTest.java;h=889f1d47e1f8c2c55437d28180e73b684d1629f1;hb=HEAD;hp=762108f1394557eed9e8e0b68b146ff0ed81cdaa;hpb=dcc776a5e749d495a66e8753e123a1ddbd15d9c6;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java index 762108f139..889f1d47e1 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/shardmanager/ShardManagerTest.java @@ -7,6 +7,7 @@ */ package org.opendaylight.controller.cluster.datastore.shardmanager; +import static org.awaitility.Awaitility.await; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -25,6 +26,7 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; import akka.actor.ActorRef; import akka.actor.ActorSystem; import akka.actor.AddressFromURIString; +import akka.actor.PoisonPill; import akka.actor.Props; import akka.actor.Status; import akka.actor.Status.Failure; @@ -45,6 +47,7 @@ import com.google.common.base.Stopwatch; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.collect.Sets; +import com.google.common.util.concurrent.SettableFuture; import com.google.common.util.concurrent.Uninterruptibles; import java.time.Duration; import java.util.AbstractMap; @@ -62,17 +65,22 @@ import java.util.concurrent.TimeoutException; import java.util.function.Consumer; import java.util.function.Function; import java.util.stream.Collectors; +import org.junit.After; import org.junit.AfterClass; +import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.junit.MockitoJUnitRunner; import org.opendaylight.controller.cluster.access.concepts.MemberName; -import org.opendaylight.controller.cluster.datastore.AbstractShardManagerTest; +import org.opendaylight.controller.cluster.databroker.ClientBackedDataStore; +import org.opendaylight.controller.cluster.datastore.AbstractClusterRefActorTest; import org.opendaylight.controller.cluster.datastore.ClusterWrapperImpl; import org.opendaylight.controller.cluster.datastore.DataStoreVersions; import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.DatastoreContextFactory; -import org.opendaylight.controller.cluster.datastore.DistributedDataStore; import org.opendaylight.controller.cluster.datastore.Shard; +import org.opendaylight.controller.cluster.datastore.config.Configuration; import org.opendaylight.controller.cluster.datastore.config.ConfigurationImpl; import org.opendaylight.controller.cluster.datastore.config.EmptyModuleShardConfigProvider; import org.opendaylight.controller.cluster.datastore.config.ModuleShardConfiguration; @@ -91,8 +99,6 @@ import org.opendaylight.controller.cluster.datastore.messages.FindPrimary; import org.opendaylight.controller.cluster.datastore.messages.LocalPrimaryShardFound; import org.opendaylight.controller.cluster.datastore.messages.LocalShardFound; import org.opendaylight.controller.cluster.datastore.messages.LocalShardNotFound; -import org.opendaylight.controller.cluster.datastore.messages.PeerDown; -import org.opendaylight.controller.cluster.datastore.messages.PeerUp; import org.opendaylight.controller.cluster.datastore.messages.PrimaryShardInfo; import org.opendaylight.controller.cluster.datastore.messages.RemotePrimaryShardFound; import org.opendaylight.controller.cluster.datastore.messages.RemoveShardReplica; @@ -109,6 +115,7 @@ import org.opendaylight.controller.cluster.notifications.LeaderStateChanged; import org.opendaylight.controller.cluster.notifications.RegisterRoleChangeListener; import org.opendaylight.controller.cluster.notifications.RoleChangeNotification; import org.opendaylight.controller.cluster.raft.RaftState; +import org.opendaylight.controller.cluster.raft.TestActorFactory; import org.opendaylight.controller.cluster.raft.base.messages.FollowerInitialSyncUpStatus; import org.opendaylight.controller.cluster.raft.base.messages.SwitchBehavior; import org.opendaylight.controller.cluster.raft.client.messages.GetSnapshot; @@ -122,12 +129,14 @@ import org.opendaylight.controller.cluster.raft.messages.ServerChangeReply; import org.opendaylight.controller.cluster.raft.messages.ServerChangeStatus; import org.opendaylight.controller.cluster.raft.messages.ServerRemoved; import org.opendaylight.controller.cluster.raft.policy.DisableElectionsRaftPolicy; +import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; import org.opendaylight.controller.cluster.raft.utils.MessageCollectorActor; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.yangtools.concepts.Registration; +import org.opendaylight.yangtools.yang.common.Empty; import org.opendaylight.yangtools.yang.common.XMLNamespace; -import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree; +import org.opendaylight.yangtools.yang.data.tree.api.DataTree; import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -135,13 +144,25 @@ import scala.concurrent.Await; import scala.concurrent.Future; import scala.concurrent.duration.FiniteDuration; -public class ShardManagerTest extends AbstractShardManagerTest { +@RunWith(MockitoJUnitRunner.StrictStubs.class) +public class ShardManagerTest extends AbstractClusterRefActorTest { private static final Logger LOG = LoggerFactory.getLogger(ShardManagerTest.class); + private static final MemberName MEMBER_1 = MemberName.forName("member-1"); private static final MemberName MEMBER_2 = MemberName.forName("member-2"); private static final MemberName MEMBER_3 = MemberName.forName("member-3"); + private static int ID_COUNTER = 1; + private static ActorRef mockShardActor; + private static ShardIdentifier mockShardName; + private static SettableFuture ready; private static EffectiveModelContext TEST_SCHEMA_CONTEXT; + private final String shardMrgIDSuffix = "config" + ID_COUNTER++; + private final TestActorFactory actorFactory = new TestActorFactory(getSystem()); + private final DatastoreContext.Builder datastoreContextBuilder = DatastoreContext.newBuilder() + .dataStoreName(shardMrgIDSuffix).shardInitializationTimeout(600, TimeUnit.MILLISECONDS) + .shardHeartbeatIntervalInMillis(100).shardElectionTimeoutFactor(6); + private final String shardMgrID = ShardManagerIdentifier.builder().type(shardMrgIDSuffix).build().toString(); @BeforeClass @@ -154,6 +175,50 @@ public class ShardManagerTest extends AbstractShardManagerTest { TEST_SCHEMA_CONTEXT = null; } + @Before + public void setUp() { + ready = SettableFuture.create(); + + InMemoryJournal.clear(); + InMemorySnapshotStore.clear(); + + if (mockShardActor == null) { + mockShardName = ShardIdentifier.create(Shard.DEFAULT_NAME, MEMBER_1, "config"); + mockShardActor = getSystem().actorOf(MessageCollectorActor.props(), mockShardName.toString()); + } + + MessageCollectorActor.clearMessages(mockShardActor); + } + + @After + public void tearDown() { + InMemoryJournal.clear(); + InMemorySnapshotStore.clear(); + + mockShardActor.tell(PoisonPill.getInstance(), ActorRef.noSender()); + await().atMost(Duration.ofSeconds(10)).until(mockShardActor::isTerminated); + mockShardActor = null; + + actorFactory.close(); + } + + private TestShardManager.Builder newTestShardMgrBuilder() { + return TestShardManager.builder(datastoreContextBuilder) + .distributedDataStore(mock(ClientBackedDataStore.class)); + } + + private TestShardManager.Builder newTestShardMgrBuilder(final Configuration config) { + return newTestShardMgrBuilder().configuration(config); + } + + private Props newShardMgrProps() { + return newShardMgrProps(new MockConfiguration()); + } + + private Props newShardMgrProps(final Configuration config) { + return newTestShardMgrBuilder(config).readinessFuture(ready).props(); + } + private ActorSystem newActorSystem(final String config) { return newActorSystem("cluster-test", config); } @@ -167,10 +232,6 @@ public class ShardManagerTest extends AbstractShardManagerTest { return system.actorOf(MessageCollectorActor.props(), name); } - private Props newShardMgrProps() { - return newShardMgrProps(new MockConfiguration()); - } - private static DatastoreContextFactory newDatastoreContextFactory(final DatastoreContext datastoreContext) { DatastoreContextFactory mockFactory = mock(DatastoreContextFactory.class); doReturn(datastoreContext).when(mockFactory).getBaseDatastoreContext(); @@ -183,8 +244,9 @@ public class ShardManagerTest extends AbstractShardManagerTest { } private TestShardManager.Builder newTestShardMgrBuilderWithMockShardActor(final ActorRef shardActor) { - return TestShardManager.builder(datastoreContextBuilder).shardActor(shardActor) - .distributedDataStore(mock(DistributedDataStore.class)); + return TestShardManager.builder(datastoreContextBuilder) + .shardActor(shardActor) + .distributedDataStore(mock(ClientBackedDataStore.class)); } @@ -362,7 +424,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); DataTree mockDataTree = mock(DataTree.class); shardManager.tell(new ShardLeaderStateChanged(memberId, memberId, mockDataTree, @@ -391,7 +453,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); String memberId2 = "member-2-shard-default-" + shardMrgIDSuffix; String memberId1 = "member-1-shard-default-" + shardMrgIDSuffix; @@ -415,7 +477,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); String memberId2 = "member-2-shard-default-" + shardMrgIDSuffix; MockClusterWrapper.sendMemberUp(shardManager, "member-2", kit.getRef().path().toString()); @@ -453,7 +515,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new FindPrimary(Shard.DEFAULT_NAME, false), kit.getRef()); @@ -467,7 +529,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); String memberId = "member-1-shard-default-" + shardMrgIDSuffix; shardManager.tell( @@ -510,7 +572,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { kit.expectNoMessage(Duration.ofMillis(150)); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); kit.expectNoMessage(Duration.ofMillis(150)); @@ -547,7 +609,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { kit.expectMsgClass(Duration.ofSeconds(2), NotInitializedException.class); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); kit.expectNoMessage(Duration.ofMillis(200)); @@ -561,7 +623,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new RoleChangeNotification("member-1-shard-default-" + shardMrgIDSuffix, null, RaftState.Candidate.name()), mockShardActor); @@ -579,7 +641,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new RoleChangeNotification("member-1-shard-default-" + shardMrgIDSuffix, null, RaftState.IsolatedLeader.name()), mockShardActor); @@ -597,7 +659,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new FindPrimary(Shard.DEFAULT_NAME, true), kit.getRef()); @@ -642,7 +704,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager1.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); shardManager2.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager2.tell(new ActorInitialized(), mockShardActor2); + shardManager2.tell(new ActorInitialized(mockShardActor2), ActorRef.noSender()); String memberId2 = "member-2-shard-astronauts-" + shardMrgIDSuffix; short leaderVersion = DataStoreVersions.CURRENT_VERSION - 1; @@ -710,8 +772,8 @@ public class ShardManagerTest extends AbstractShardManagerTest { final TestKit kit = new TestKit(system1); shardManager1.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); shardManager2.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager1.tell(new ActorInitialized(), mockShardActor1); - shardManager2.tell(new ActorInitialized(), mockShardActor2); + shardManager1.tell(new ActorInitialized(mockShardActor1), ActorRef.noSender()); + shardManager2.tell(new ActorInitialized(mockShardActor1), ActorRef.noSender()); String memberId2 = "member-2-shard-default-" + shardMrgIDSuffix; String memberId1 = "member-1-shard-default-" + shardMrgIDSuffix; @@ -737,16 +799,11 @@ public class ShardManagerTest extends AbstractShardManagerTest { kit.getRef()); shardManager1.underlyingActor().waitForUnreachableMember(); - - PeerDown peerDown = MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerDown.class); - assertEquals("getMemberName", MEMBER_2, peerDown.getMemberName()); MessageCollectorActor.clearMessages(mockShardActor1); shardManager1.tell(MockClusterWrapper.createMemberRemoved("member-2", "akka://cluster-test@127.0.0.1:2558"), kit.getRef()); - MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerDown.class); - shardManager1.tell(new FindPrimary("default", true), kit.getRef()); kit.expectMsgClass(Duration.ofSeconds(5), NoShardLeaderException.class); @@ -756,10 +813,6 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager1.underlyingActor().waitForReachableMember(); - PeerUp peerUp = MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerUp.class); - assertEquals("getMemberName", MEMBER_2, peerUp.getMemberName()); - MessageCollectorActor.clearMessages(mockShardActor1); - shardManager1.tell(new FindPrimary("default", true), kit.getRef()); RemotePrimaryShardFound found1 = kit.expectMsgClass(Duration.ofSeconds(5), RemotePrimaryShardFound.class); @@ -769,8 +822,6 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager1.tell(MockClusterWrapper.createMemberUp("member-2", "akka://cluster-test@127.0.0.1:2558"), kit.getRef()); - MessageCollectorActor.expectFirstMatching(mockShardActor1, PeerUp.class); - // Test FindPrimary wait succeeds after reachable member event. shardManager1.tell(MockClusterWrapper.createUnreachableMember("member-2", @@ -827,8 +878,8 @@ public class ShardManagerTest extends AbstractShardManagerTest { final TestKit kit = new TestKit(system1); shardManager1.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); shardManager2.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager1.tell(new ActorInitialized(), mockShardActor1); - shardManager2.tell(new ActorInitialized(), mockShardActor2); + shardManager1.tell(new ActorInitialized(mockShardActor1), ActorRef.noSender()); + shardManager2.tell(new ActorInitialized(mockShardActor2), ActorRef.noSender()); String memberId2 = "member-2-shard-default-" + shardMrgIDSuffix; String memberId1 = "member-1-shard-default-" + shardMrgIDSuffix; @@ -923,8 +974,8 @@ public class ShardManagerTest extends AbstractShardManagerTest { final TestKit kit256 = new TestKit(system256); shardManager256.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit256.getRef()); shardManager2.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit256.getRef()); - shardManager256.tell(new ActorInitialized(), mockShardActor256); - shardManager2.tell(new ActorInitialized(), mockShardActor2); + shardManager256.tell(new ActorInitialized(mockShardActor256), ActorRef.noSender()); + shardManager2.tell(new ActorInitialized(mockShardActor2), ActorRef.noSender()); String memberId256 = "member-256-shard-default-" + shardMrgIDSuffix; String memberId2 = "member-2-shard-default-" + shardMrgIDSuffix; @@ -998,7 +1049,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new FindLocalShard(Shard.DEFAULT_NAME, false), kit.getRef()); @@ -1032,7 +1083,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { Future future = Patterns.ask(shardManager, new FindLocalShard(Shard.DEFAULT_NAME, true), new Timeout(5, TimeUnit.SECONDS)); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); Object resp = Await.result(future, kit.duration("5 seconds")); assertTrue("Expected: LocalShardFound, Actual: " + resp, resp instanceof LocalShardFound); @@ -1204,7 +1255,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new SwitchShardBehavior(mockShardName, RaftState.Leader, 1000), kit.getRef()); @@ -1480,7 +1531,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { newReplicaShardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); leaderShardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - leaderShardManager.tell(new ActorInitialized(), mockShardLeaderActor); + leaderShardManager.tell(new ActorInitialized(mockShardLeaderActor), ActorRef.noSender()); short leaderVersion = DataStoreVersions.CURRENT_VERSION - 1; leaderShardManager.tell( @@ -1531,7 +1582,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { .createTestActor(newPropsShardMgrWithMockShardActor(), shardMgrID); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); String leaderId = "leader-member-shard-default-" + shardMrgIDSuffix; AddServerReply addServerReply = new AddServerReply(ServerChangeStatus.ALREADY_EXISTS, null); @@ -1589,7 +1640,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); shardManager.tell(new ShardLeaderStateChanged(memberId, memberId, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION), kit.getRef()); shardManager.tell( @@ -1704,7 +1755,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { ActorRef shardManager = getSystem().actorOf(newPropsShardMgrWithMockShardActor(respondActor)); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), respondActor); + shardManager.tell(new ActorInitialized(respondActor), ActorRef.noSender()); shardManager.tell(new ShardLeaderStateChanged(memberId, memberId, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION), kit.getRef()); shardManager.tell( @@ -1776,8 +1827,8 @@ public class ShardManagerTest extends AbstractShardManagerTest { newReplicaShardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); leaderShardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - leaderShardManager.tell(new ActorInitialized(), mockShardLeaderActor); - newReplicaShardManager.tell(new ActorInitialized(), mockShardLeaderActor); + leaderShardManager.tell(new ActorInitialized(mockShardLeaderActor), ActorRef.noSender()); + newReplicaShardManager.tell(new ActorInitialized(mockShardLeaderActor), ActorRef.noSender()); short leaderVersion = DataStoreVersions.CURRENT_VERSION - 1; leaderShardManager.tell( @@ -1898,7 +1949,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { shardManager.underlyingActor().waitForRecoveryComplete(); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), shard); + shardManager.tell(new ActorInitialized(shard), ActorRef.noSender()); waitForShardInitialized(shardManager, "people", kit); waitForShardInitialized(shardManager, "default", kit); @@ -1967,8 +2018,8 @@ public class ShardManagerTest extends AbstractShardManagerTest { .addShardActor("shard1", shard1).addShardActor("shard2", shard2).props()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), shard1); - shardManager.tell(new ActorInitialized(), shard2); + shardManager.tell(new ActorInitialized(shard1), ActorRef.noSender()); + shardManager.tell(new ActorInitialized(shard2), ActorRef.noSender()); FiniteDuration duration = FiniteDuration.create(5, TimeUnit.SECONDS); Future stopFuture = Patterns.gracefulStop(shardManager, duration, Shutdown.INSTANCE); @@ -2004,7 +2055,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { ActorRef shardManager = getSystem().actorOf(newPropsShardMgrWithMockShardActor(respondActor)); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), respondActor); + shardManager.tell(new ActorInitialized(respondActor), ActorRef.noSender()); shardManager.tell(new ShardLeaderStateChanged(memberId, memberId, mock(DataTree.class), DataStoreVersions.CURRENT_VERSION), kit.getRef()); shardManager.tell( @@ -2036,7 +2087,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { ActorRef shardManager = getSystem().actorOf(newPropsShardMgrWithMockShardActor(respondActor)); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), respondActor); + shardManager.tell(new ActorInitialized(respondActor), ActorRef.noSender()); shardManager.tell(new RoleChangeNotification(memberId, null, RaftState.Follower.name()), respondActor); shardManager.tell( @@ -2059,7 +2110,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { final ActorRef shardManager = actorFactory.createActor(newPropsShardMgrWithMockShardActor()); shardManager.tell(new UpdateSchemaContext(TEST_SCHEMA_CONTEXT), kit.getRef()); - shardManager.tell(new ActorInitialized(), mockShardActor); + shardManager.tell(new ActorInitialized(mockShardActor), ActorRef.noSender()); final Consumer mockCallback = mock(Consumer.class); shardManager.tell(new RegisterForShardAvailabilityChanges(mockCallback), kit.getRef()); @@ -2215,7 +2266,7 @@ public class ShardManagerTest extends AbstractShardManagerTest { } Builder shardActor(final ActorRef newShardActor) { - this.shardActor = newShardActor; + shardActor = newShardActor; return this; }