import akka.actor.Status.Success;
import akka.cluster.Cluster;
import akka.pattern.Patterns;
-import akka.testkit.JavaTestKit;
import akka.util.Timeout;
-import com.google.common.base.Optional;
import com.google.common.base.Stopwatch;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Iterables;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
+import java.util.Optional;
import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
}
private static DistributedEntityOwnershipService newOwnershipService(final AbstractDataStore datastore) {
- return DistributedEntityOwnershipService.start(datastore.getActorContext(),
+ return DistributedEntityOwnershipService.start(datastore.getActorUtils(),
EntityOwnerSelectionStrategyConfig.newBuilder().build());
}
final DOMEntityOwnershipService follower2EntityOwnershipService =
newOwnershipService(follower2Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
leaderEntityOwnershipService.registerListener(ENTITY_TYPE1, leaderMockListener);
leaderEntityOwnershipService.registerListener(ENTITY_TYPE2, leaderMockListener2);
final DOMEntityOwnershipService follower2EntityOwnershipService =
newOwnershipService(follower2Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
// Register follower1 candidate for entity1 and verify it becomes owner
// Re-enable elections on all remaining followers so one becomes the new leader
- ActorRef follower1Shard = IntegrationTestKit.findLocalShard(follower1Node.configDataStore().getActorContext(),
+ ActorRef follower1Shard = IntegrationTestKit.findLocalShard(follower1Node.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
follower1Shard.tell(DatastoreContext.newBuilderFrom(followerDatastoreContextBuilder.build())
.customRaftPolicyImplementation(null).build(), ActorRef.noSender());
- ActorRef follower2Shard = IntegrationTestKit.findLocalShard(follower2Node.configDataStore().getActorContext(),
+ ActorRef follower2Shard = IntegrationTestKit.findLocalShard(follower2Node.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
follower2Shard.tell(DatastoreContext.newBuilderFrom(followerDatastoreContextBuilder.build())
.customRaftPolicyImplementation(null).build(), ActorRef.noSender());
newOwnershipService(follower3Node.configDataStore());
newOwnershipService(follower4Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
// Register follower1 candidate for entity1 and verify it becomes owner
// Re-enable elections on all remaining followers so one becomes the new leader
- ActorRef follower1Shard = IntegrationTestKit.findLocalShard(follower1Node.configDataStore().getActorContext(),
+ ActorRef follower1Shard = IntegrationTestKit.findLocalShard(follower1Node.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
follower1Shard.tell(DatastoreContext.newBuilderFrom(followerDatastoreContextBuilder.build())
.customRaftPolicyImplementation(null).build(), ActorRef.noSender());
- ActorRef follower2Shard = IntegrationTestKit.findLocalShard(follower2Node.configDataStore().getActorContext(),
+ ActorRef follower2Shard = IntegrationTestKit.findLocalShard(follower2Node.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
follower2Shard.tell(DatastoreContext.newBuilderFrom(followerDatastoreContextBuilder.build())
.customRaftPolicyImplementation(null).build(), ActorRef.noSender());
- ActorRef follower4Shard = IntegrationTestKit.findLocalShard(follower4Node.configDataStore().getActorContext(),
+ ActorRef follower4Shard = IntegrationTestKit.findLocalShard(follower4Node.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
follower4Shard.tell(DatastoreContext.newBuilderFrom(followerDatastoreContextBuilder.build())
.customRaftPolicyImplementation(null).build(), ActorRef.noSender());
final DOMEntityOwnershipService follower2EntityOwnershipService =
newOwnershipService(follower2Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
leaderEntityOwnershipService.registerListener(ENTITY_TYPE1, leaderMockListener);
follower1EntityOwnershipService.registerListener(ENTITY_TYPE1, follower1MockListener);
private static Optional<DOMEntityOwnershipChange> getValueSafely(ArgumentCaptor<DOMEntityOwnershipChange> captor) {
try {
- return Optional.fromNullable(captor.getValue());
+ return Optional.ofNullable(captor.getValue());
} catch (MockitoException e) {
// No value was captured
- return Optional.absent();
+ return Optional.empty();
}
}
AbstractDataStore leaderDistributedDataStore = leaderNode.configDataStore();
final DOMEntityOwnershipService leaderEntityOwnershipService = newOwnershipService(leaderDistributedDataStore);
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
MemberNode follower1Node = MemberNode.builder(memberNodes).akkaConfig("Member2").testName(name)
.moduleShardsConfig(moduleShardsConfig).schemaContext(SCHEMA_CONTEXT).createOperDatastore(false)
// Add replica in follower1
AddShardReplica addReplica = new AddShardReplica(ENTITY_OWNERSHIP_SHARD_NAME);
- follower1DistributedDataStore.getActorContext().getShardManager().tell(addReplica,
+ follower1DistributedDataStore.getActorUtils().getShardManager().tell(addReplica,
follower1Node.kit().getRef());
- Object reply = follower1Node.kit().expectMsgAnyClassOf(JavaTestKit.duration("5 sec"),
+ Object reply = follower1Node.kit().expectMsgAnyClassOf(follower1Node.kit().duration("5 sec"),
Success.class, Failure.class);
if (reply instanceof Failure) {
throw new AssertionError("AddShardReplica failed", ((Failure)reply).cause());
newOwnershipService(follower1Node.configDataStore());
newOwnershipService(follower2Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
// Register leader candidate for entity1 and verify it becomes owner
newOwnershipService(follower1Node.configDataStore());
newOwnershipService(follower2Node.configDataStore());
- leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorContext(), ENTITY_OWNERSHIP_SHARD_NAME);
+ leaderNode.kit().waitUntilLeader(leaderNode.configDataStore().getActorUtils(), ENTITY_OWNERSHIP_SHARD_NAME);
// Register leader candidate for entity1 and verify it becomes owner
newOwnershipService(member5FollowerNode.configDataStore());
newOwnershipService(member1LeaderNode.configDataStore());
- member1LeaderNode.kit().waitUntilLeader(member1LeaderNode.configDataStore().getActorContext(),
+ member1LeaderNode.kit().waitUntilLeader(member1LeaderNode.configDataStore().getActorUtils(),
ENTITY_OWNERSHIP_SHARD_NAME);
// Make member4 and member5 non-voting
- Future<Object> future = Patterns.ask(leaderDistributedDataStore.getActorContext().getShardManager(),
+ Future<Object> future = Patterns.ask(leaderDistributedDataStore.getActorUtils().getShardManager(),
new ChangeShardMembersVotingStatus(ENTITY_OWNERSHIP_SHARD_NAME,
- ImmutableMap.of("member-4", false, "member-5", false)), new Timeout(10, TimeUnit.SECONDS));
+ ImmutableMap.of("member-4", Boolean.FALSE, "member-5", Boolean.FALSE)),
+ new Timeout(10, TimeUnit.SECONDS));
Object response = Await.result(future, FiniteDuration.apply(10, TimeUnit.SECONDS));
if (response instanceof Throwable) {
throw new AssertionError("ChangeShardMembersVotingStatus failed", (Throwable)response);
// Switch member4 and member5 back to voting and member3 non-voting. This should result in member4 and member5
// to become entity owners.
- future = Patterns.ask(leaderDistributedDataStore.getActorContext().getShardManager(),
+ future = Patterns.ask(leaderDistributedDataStore.getActorUtils().getShardManager(),
new ChangeShardMembersVotingStatus(ENTITY_OWNERSHIP_SHARD_NAME,
- ImmutableMap.of("member-3", false, "member-4", true, "member-5", true)),
+ ImmutableMap.of("member-3", Boolean.FALSE, "member-4", Boolean.TRUE, "member-5", Boolean.TRUE)),
new Timeout(10, TimeUnit.SECONDS));
response = Await.result(future, FiniteDuration.apply(10, TimeUnit.SECONDS));
if (response instanceof Throwable) {
private static void verifyGetOwnershipState(final DOMEntityOwnershipService service, final DOMEntity entity,
final EntityOwnershipState expState) {
Optional<EntityOwnershipState> state = service.getOwnershipState(entity);
- assertEquals("getOwnershipState present", true, state.isPresent());
+ assertTrue("getOwnershipState present", state.isPresent());
assertEquals("EntityOwnershipState", expState, state.get());
}
.read(entityPath(entity.getType(), entity.getIdentifier()).node(Candidate.QNAME))
.get(5, TimeUnit.SECONDS);
try {
- assertEquals("Candidates not found for " + entity, true, possible.isPresent());
+ assertTrue("Candidates not found for " + entity, possible.isPresent());
Collection<String> actual = new ArrayList<>();
for (MapEntryNode candidate: ((MapNode)possible.get()).getValue()) {
actual.add(candidate.getChild(CANDIDATE_NAME_NODE_ID).get().getValue().toString());