X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fsharding%2FDistributedShardedDOMDataTreeTest.java;h=602e2cc4077099728827640d3575a7ee15938a90;hp=3e224a97156ed4eeb5f0a6adbdaf67cf6e9f3dff;hb=a35607c5040d0fd561529fde3032c9f49393deeb;hpb=20a32e6459fd1e27e7669bf1ebc7742b96787b94 diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeTest.java index 3e224a9715..602e2cc407 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/sharding/DistributedShardedDOMDataTreeTest.java @@ -11,8 +11,8 @@ package org.opendaylight.controller.cluster.sharding; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; -import static org.mockito.Matchers.anyCollection; -import static org.mockito.Matchers.anyMap; +import static org.mockito.ArgumentMatchers.anyCollection; +import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -28,16 +28,17 @@ import akka.actor.Address; import akka.actor.AddressFromURIString; import akka.actor.Props; import akka.cluster.Cluster; -import akka.testkit.JavaTestKit; -import com.google.common.base.Optional; +import akka.testkit.javadsl.TestKit; import com.google.common.collect.Lists; -import com.google.common.util.concurrent.CheckedFuture; +import com.google.common.util.concurrent.FluentFuture; +import com.google.common.util.concurrent.ListenableFuture; import com.typesafe.config.ConfigFactory; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletionStage; import java.util.concurrent.TimeUnit; @@ -61,17 +62,15 @@ import org.opendaylight.controller.cluster.datastore.DatastoreContext; import org.opendaylight.controller.cluster.datastore.DatastoreContext.Builder; import org.opendaylight.controller.cluster.datastore.DistributedDataStore; import org.opendaylight.controller.cluster.datastore.IntegrationTestKit; -import org.opendaylight.controller.cluster.datastore.utils.ActorContext; +import org.opendaylight.controller.cluster.datastore.utils.ActorUtils; import org.opendaylight.controller.cluster.datastore.utils.ClusterUtils; import org.opendaylight.controller.cluster.dom.api.CDSDataTreeProducer; import org.opendaylight.controller.cluster.dom.api.CDSShardAccess; import org.opendaylight.controller.cluster.raft.utils.InMemoryJournal; import org.opendaylight.controller.cluster.raft.utils.InMemorySnapshotStore; -import org.opendaylight.controller.cluster.sharding.DistributedShardFactory.DistributedShardRegistration; import org.opendaylight.controller.md.cluster.datastore.model.SchemaContextHelper; import org.opendaylight.controller.md.cluster.datastore.model.TestModel; import org.opendaylight.mdsal.common.api.LogicalDatastoreType; -import org.opendaylight.mdsal.common.api.TransactionCommitFailedException; import org.opendaylight.mdsal.dom.api.DOMDataTreeCursorAwareTransaction; import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; import org.opendaylight.mdsal.dom.api.DOMDataTreeListener; @@ -94,6 +93,7 @@ import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMa import org.slf4j.Logger; import org.slf4j.LoggerFactory; +@Deprecated(forRemoval = true) public class DistributedShardedDOMDataTreeTest extends AbstractTest { private static final Logger LOG = LoggerFactory.getLogger(DistributedShardedDOMDataTreeRemotingTest.class); @@ -118,8 +118,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { DatastoreContext.newBuilder() .shardHeartbeatIntervalInMillis(100) .shardElectionTimeoutFactor(2) - .logicalStoreType( - org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.CONFIGURATION); + .logicalStoreType(LogicalDatastoreType.CONFIGURATION); private DistributedDataStore leaderDistributedDataStore; private DistributedDataStore operDistributedDatastore; @@ -149,7 +148,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { } @After - public void tearDown() throws Exception { + public void tearDown() { if (leaderDistributedDataStore != null) { leaderDistributedDataStore.close(); } @@ -158,7 +157,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { operDistributedDatastore.close(); } - JavaTestKit.shutdownActorSystem(leaderSystem); + TestKit.shutdownActorSystem(leaderSystem); InMemoryJournal.clear(); InMemorySnapshotStore.clear(); @@ -188,14 +187,14 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { initEmptyDatastores(); final DOMDataTreeIdentifier configRoot = - new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.EMPTY); + new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.empty()); final DOMDataTreeProducer producer = leaderShardFactory.createProducer(Collections.singleton(configRoot)); final DOMDataTreeCursorAwareTransaction tx = producer.createTransaction(true); final DOMDataTreeWriteCursor cursor = tx.createCursor(new DOMDataTreeIdentifier( - LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.EMPTY)); + LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.empty())); Assert.assertNotNull(cursor); final ContainerNode test = @@ -205,7 +204,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { cursor.write(test.getIdentifier(), test); cursor.close(); - tx.submit().checkedGet(); + tx.commit().get(); } @Test @@ -216,7 +215,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { leaderShardFactory.createDistributedShard(TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier())); final DOMDataTreeProducer producer = leaderShardFactory.createProducer(Collections.singleton(TEST_ID)); @@ -235,7 +234,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { cursor.close(); LOG.debug("Got to pre submit"); - tx.submit().checkedGet(); + tx.commit().get(); final DOMDataTreeListener mockedDataTreeListener = mock(DOMDataTreeListener.class); doNothing().when(mockedDataTreeListener).onDataTreeChanged(anyCollection(), anyMap()); @@ -247,7 +246,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { captorForSubtrees.capture()); final List> capturedValue = captorForChanges.getAllValues(); - final java.util.Optional> dataAfter = + final Optional> dataAfter = capturedValue.get(0).iterator().next().getRootNode().getDataAfter(); final NormalizedNode expected = ImmutableContainerNodeBuilder.create() @@ -259,10 +258,10 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { final String shardName = ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier()); LOG.debug("Creating distributed datastore client for shard {}", shardName); - final ActorContext actorContext = leaderDistributedDataStore.getActorContext(); + final ActorUtils actorUtils = leaderDistributedDataStore.getActorUtils(); final Props distributedDataStoreClientProps = - SimpleDataStoreClientActor.props(actorContext.getCurrentMemberName(), - "Shard-" + shardName, actorContext, shardName); + SimpleDataStoreClientActor.props(actorUtils.getCurrentMemberName(), "Shard-" + shardName, actorUtils, + shardName); final ActorRef clientActor = leaderSystem.actorOf(distributedDataStoreClientProps); final DataStoreClient distributedDataStoreClient = SimpleDataStoreClientActor @@ -270,11 +269,9 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { final ClientLocalHistory localHistory = distributedDataStoreClient.createLocalHistory(); final ClientTransaction tx2 = localHistory.createTransaction(); - final CheckedFuture>, - org.opendaylight.mdsal.common.api.ReadFailedException> read = - tx2.read(YangInstanceIdentifier.EMPTY); + final FluentFuture>> read = tx2.read(YangInstanceIdentifier.empty()); - final Optional> optional = read.checkedGet(); + final Optional> optional = read.get(); tx2.abort(); localHistory.close(); @@ -290,13 +287,13 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { leaderShardFactory.createDistributedShard(TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TEST_ID.getRootIdentifier())); LOG.warn("Got after waiting for nonleader"); - final ActorRef leaderShardManager = leaderDistributedDataStore.getActorContext().getShardManager(); + final ActorRef leaderShardManager = leaderDistributedDataStore.getActorUtils().getShardManager(); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); final YangInstanceIdentifier oid1 = getOuterListIdFor(0); @@ -306,7 +303,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { leaderShardFactory.createDistributedShard(outerListPath, Lists.newArrayList(AbstractTest.MEMBER_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(outerListPath.getRootIdentifier())); final DOMDataTreeProducer shardProducer = leaderShardFactory.createProducer( @@ -324,9 +321,9 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { cursor.write(new NodeIdentifier(TestModel.INNER_LIST_QNAME), innerList); cursor.close(); - tx.submit().checkedGet(); + tx.commit().get(); - final ArrayList> futures = new ArrayList<>(); + final ArrayList> futures = new ArrayList<>(); for (int i = 0; i < 1000; i++) { final Collection innerListMapEntries = createInnerListMapEntries(1000, "run-" + i); for (final MapEntryNode innerListMapEntry : innerListMapEntries) { @@ -336,11 +333,11 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { oid1.node(new NodeIdentifier(TestModel.INNER_LIST_QNAME)))); cursor1.write(innerListMapEntry.getIdentifier(), innerListMapEntry); cursor1.close(); - futures.add(tx1.submit()); + futures.add(tx1.commit()); } } - futures.get(futures.size() - 1).checkedGet(); + futures.get(futures.size() - 1).get(); final DOMDataTreeListener mockedDataTreeListener = mock(DOMDataTreeListener.class); doNothing().when(mockedDataTreeListener).onDataTreeChanged(anyCollection(), anyMap()); @@ -387,7 +384,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { } final DOMDataTreeIdentifier rootId = - new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.EMPTY); + new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.empty()); final DOMDataTreeProducer producer = leaderShardFactory.createProducer(Collections.singletonList( rootId)); @@ -409,7 +406,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { cursor.write(testNode.getIdentifier(), testNode); cursor.close(); - transaction.submit().checkedGet(); + transaction.commit().get(); final DOMDataTreeListener mockedDataTreeListener = mock(DOMDataTreeListener.class); doNothing().when(mockedDataTreeListener).onDataTreeChanged(anyCollection(), anyMap()); @@ -424,7 +421,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { cursor.write(wholeList.getIdentifier(), wholeList); cursor.close(); - transaction.submit().checkedGet(); + transaction.commit().get(); leaderShardFactory.registerListener(mockedDataTreeListener, Collections.singletonList(TEST_ID), true, Collections.emptyList()); @@ -466,15 +463,15 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - assertNotNull(findLocalShard(leaderDistributedDataStore.getActorContext(), + assertNotNull(findLocalShard(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); waitOnAsyncTask(reg1.close(), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - waitUntilShardIsDown(leaderDistributedDataStore.getActorContext(), + waitUntilShardIsDown(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); } } @@ -487,15 +484,15 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { TEST_ID, Lists.newArrayList(AbstractTest.MEMBER_NAME)), DistributedShardedDOMDataTree.SHARD_FUTURE_TIMEOUT_DURATION); - leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorContext(), + leaderTestKit.waitUntilLeader(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH)); - assertNotNull(findLocalShard(leaderDistributedDataStore.getActorContext(), + assertNotNull(findLocalShard(leaderDistributedDataStore.getActorUtils(), ClusterUtils.getCleanShardName(TestModel.TEST_PATH))); final DOMDataTreeIdentifier configRoot = - new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.EMPTY); + new DOMDataTreeIdentifier(LogicalDatastoreType.CONFIGURATION, YangInstanceIdentifier.empty()); final DOMDataTreeProducer producer = leaderShardFactory.createProducer(Collections.singleton(configRoot)); assertTrue(producer instanceof CDSDataTreeProducer); @@ -517,7 +514,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { final Collection ret = new ArrayList<>(); for (int i = 0; i < amount; i++) { ret.add(ImmutableNodes.mapEntryBuilder() - .withNodeIdentifier(new NodeIdentifierWithPredicates(TestModel.OUTER_LIST_QNAME, + .withNodeIdentifier(NodeIdentifierWithPredicates.of(TestModel.OUTER_LIST_QNAME, QName.create(TestModel.OUTER_LIST_QNAME, "id"), i)) .withChild(ImmutableNodes .leafNode(QName.create(TestModel.OUTER_LIST_QNAME, "id"), i)) @@ -537,7 +534,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { final Collection ret = new ArrayList<>(); for (int i = 0; i < amount; i++) { ret.add(ImmutableNodes.mapEntryBuilder() - .withNodeIdentifier(new NodeIdentifierWithPredicates(TestModel.INNER_LIST_QNAME, + .withNodeIdentifier(NodeIdentifierWithPredicates.of(TestModel.INNER_LIST_QNAME, QName.create(TestModel.INNER_LIST_QNAME, "name"), Integer.toString(i))) .withChild(ImmutableNodes .leafNode(QName.create(TestModel.INNER_LIST_QNAME, "value"), valuePrefix + "-" + i)) @@ -548,7 +545,7 @@ public class DistributedShardedDOMDataTreeTest extends AbstractTest { } private static YangInstanceIdentifier getOuterListIdFor(final int id) { - return TestModel.OUTER_LIST_PATH.node(new NodeIdentifierWithPredicates( + return TestModel.OUTER_LIST_PATH.node(NodeIdentifierWithPredicates.of( TestModel.OUTER_LIST_QNAME, QName.create(TestModel.OUTER_LIST_QNAME, "id"), id)); } }