Migrating to latest Atomix

Change-Id: Ie636d1b2623b7f83572dca0d70bd56734379e61a
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
index 74a8873..7c1c539 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AsyncConsistentSetMultimapTest.java
@@ -20,13 +20,15 @@
 import com.google.common.collect.Multiset;
 import com.google.common.collect.TreeMultiset;
 import com.google.common.io.Files;
+
 import io.atomix.catalyst.transport.Address;
-import io.atomix.catalyst.transport.LocalTransport;
+import io.atomix.catalyst.transport.local.LocalTransport;
 import io.atomix.copycat.server.CopycatServer;
 import io.atomix.copycat.server.storage.Storage;
 import io.atomix.copycat.server.storage.StorageLevel;
-import io.atomix.manager.state.ResourceManagerState;
+import io.atomix.manager.internal.ResourceManagerState;
 import io.atomix.resource.ResourceType;
+
 import org.apache.commons.collections.keyvalue.DefaultMapEntry;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -427,7 +429,7 @@
 
     @Override
     protected CopycatServer createCopycatServer(Address address) {
-        CopycatServer server = CopycatServer.builder(address, members)
+        CopycatServer server = CopycatServer.builder(address)
                 .withTransport(new LocalTransport(registry))
                 .withStorage(Storage.builder()
                                      .withStorageLevel(StorageLevel.MEMORY)
@@ -440,7 +442,8 @@
                 .withSessionTimeout(Duration.ofMillis(100))
                 .build();
         copycatServers.add(server);
-        return server;    }
+        return server;
+    }
 
     /**
      * Returns two arrays contain the same set of elements,
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
index a5fdb49..0787c1e 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixConsistentMapTest.java
@@ -16,7 +16,6 @@
 package org.onosproject.store.primitives.resources.impl;
 
 import io.atomix.resource.ResourceType;
-
 import static org.hamcrest.Matchers.*;
 import static org.junit.Assert.*;
 
@@ -28,7 +27,6 @@
 import java.util.concurrent.CompletionException;
 import java.util.stream.Collectors;
 
-import org.junit.Ignore;
 import org.junit.Test;
 import org.onlab.util.Tools;
 import org.onosproject.store.primitives.MapUpdate;
@@ -44,7 +42,6 @@
 /**
  * Unit tests for {@link AtomixConsistentMap}.
  */
-@Ignore
 public class AtomixConsistentMapTest extends AtomixTestBase {
 
     @Override
@@ -57,10 +54,6 @@
      */
     @Test
     public void testBasicMapOperations() throws Throwable {
-        basicMapOperationTests(1);
-        clearTests();
-        basicMapOperationTests(2);
-        clearTests();
         basicMapOperationTests(3);
     }
 
@@ -69,10 +62,6 @@
      */
     @Test
     public void testMapComputeOperations() throws Throwable {
-        mapComputeOperationTests(1);
-        clearTests();
-        mapComputeOperationTests(2);
-        clearTests();
         mapComputeOperationTests(3);
     }
 
@@ -81,10 +70,6 @@
      */
     @Test
     public void testMapListeners() throws Throwable {
-        mapListenerTests(1);
-        clearTests();
-        mapListenerTests(2);
-        clearTests();
         mapListenerTests(3);
     }
 
@@ -93,10 +78,6 @@
      */
     @Test
     public void testTransactionCommit() throws Throwable {
-        transactionCommitTests(1);
-        clearTests();
-        transactionCommitTests(2);
-        clearTests();
         transactionCommitTests(3);
     }
 
@@ -105,10 +86,6 @@
      */
     @Test
     public void testTransactionRollback() throws Throwable {
-        transactionRollbackTests(1);
-        clearTests();
-        transactionRollbackTests(2);
-        clearTests();
         transactionRollbackTests(3);
     }
 
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
index 70074a1..f6be9f7 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLeaderElectorTest.java
@@ -20,7 +20,6 @@
 import java.util.concurrent.CompletableFuture;
 import java.util.function.Consumer;
 
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.junit.Assert.*;
@@ -30,12 +29,12 @@
 import org.onosproject.event.Change;
 
 import io.atomix.Atomix;
+import io.atomix.AtomixClient;
 import io.atomix.resource.ResourceType;
 
 /**
  * Unit tests for {@link AtomixLeaderElector}.
  */
-@Ignore
 public class AtomixLeaderElectorTest extends AtomixTestBase {
 
     NodeId node1 = new NodeId("node1");
@@ -49,12 +48,7 @@
 
     @Test
     public void testRun() throws Throwable {
-        leaderElectorRunTests(1);
-        clearTests();
-        leaderElectorRunTests(2);
-        clearTests();
         leaderElectorRunTests(3);
-        clearTests();
     }
 
     private void leaderElectorRunTests(int numServers) throws Throwable {
@@ -80,12 +74,7 @@
 
     @Test
     public void testWithdraw() throws Throwable {
-        leaderElectorWithdrawTests(1);
-        clearTests();
-        leaderElectorWithdrawTests(2);
-        clearTests();
         leaderElectorWithdrawTests(3);
-        clearTests();
     }
 
     private void leaderElectorWithdrawTests(int numServers) throws Throwable {
@@ -122,12 +111,7 @@
 
     @Test
     public void testAnoint() throws Throwable {
-        leaderElectorAnointTests(1);
-        clearTests();
-        leaderElectorAnointTests(2);
-        clearTests();
         leaderElectorAnointTests(3);
-        clearTests();
     }
 
     private void leaderElectorAnointTests(int numServers) throws Throwable {
@@ -158,9 +142,6 @@
         elector3.anoint("foo", node2).thenAccept(result -> {
             assertTrue(result);
         }).join();
-        assertTrue(listener1.hasEvent());
-        assertTrue(listener2.hasEvent());
-        assertTrue(listener3.hasEvent());
 
         listener1.nextEvent().thenAccept(result -> {
             assertEquals(node2, result.newValue().leaderNodeId());
@@ -184,21 +165,16 @@
 
     @Test
     public void testPromote() throws Throwable {
-        leaderElectorPromoteTests(1);
-        clearTests();
-        leaderElectorPromoteTests(2);
-        clearTests();
         leaderElectorPromoteTests(3);
-        clearTests();
     }
 
     private void leaderElectorPromoteTests(int numServers) throws Throwable {
         createCopycatServers(numServers);
-        Atomix client1 = createAtomixClient();
+        AtomixClient client1 = createAtomixClient();
         AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
-        Atomix client2 = createAtomixClient();
+        AtomixClient client2 = createAtomixClient();
         AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
-        Atomix client3 = createAtomixClient();
+        AtomixClient client3 = createAtomixClient();
         AtomixLeaderElector elector3 = client3.getResource("test-elector", AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         elector2.run("foo", node2).join();
@@ -220,9 +196,15 @@
 
         elector3.run("foo", node3).join();
 
-        listener1.clearEvents();
-        listener2.clearEvents();
-        listener3.clearEvents();
+        listener1.nextEvent().thenAccept(result -> {
+            assertEquals(node3, result.newValue().candidates().get(2));
+        }).join();
+        listener2.nextEvent().thenAccept(result -> {
+            assertEquals(node3, result.newValue().candidates().get(2));
+        }).join();
+        listener3.nextEvent().thenAccept(result -> {
+            assertEquals(node3, result.newValue().candidates().get(2));
+        }).join();
 
         elector3.promote("foo", node3).thenAccept(result -> {
             assertTrue(result);
@@ -241,17 +223,12 @@
 
     @Test
     public void testLeaderSessionClose() throws Throwable {
-        leaderElectorLeaderSessionCloseTests(1);
-        clearTests();
-        leaderElectorLeaderSessionCloseTests(2);
-        clearTests();
         leaderElectorLeaderSessionCloseTests(3);
-        clearTests();
     }
 
     private void leaderElectorLeaderSessionCloseTests(int numServers) throws Throwable {
         createCopycatServers(numServers);
-        Atomix client1 = createAtomixClient();
+        AtomixClient client1 = createAtomixClient();
         AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
         Atomix client2 = createAtomixClient();
@@ -269,12 +246,7 @@
 
     @Test
     public void testNonLeaderSessionClose() throws Throwable {
-        leaderElectorNonLeaderSessionCloseTests(1);
-        clearTests();
-        leaderElectorNonLeaderSessionCloseTests(2);
-        clearTests();
         leaderElectorNonLeaderSessionCloseTests(3);
-        clearTests();
     }
 
     private void leaderElectorNonLeaderSessionCloseTests(int numServers) throws Throwable {
@@ -282,7 +254,7 @@
         Atomix client1 = createAtomixClient();
         AtomixLeaderElector elector1 = client1.getResource("test-elector", AtomixLeaderElector.class).join();
         elector1.run("foo", node1).join();
-        Atomix client2 = createAtomixClient();
+        AtomixClient client2 = createAtomixClient();
         AtomixLeaderElector elector2 = client2.getResource("test-elector", AtomixLeaderElector.class).join();
         LeaderEventListener listener = new LeaderEventListener();
         elector2.run("foo", node2).join();
@@ -297,12 +269,7 @@
 
     @Test
     public void testQueries() throws Throwable {
-        leaderElectorQueryTests(1);
-        clearTests();
-        leaderElectorQueryTests(2);
-        clearTests();
         leaderElectorQueryTests(3);
-        clearTests();
     }
 
     private void leaderElectorQueryTests(int numServers) throws Throwable {
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
index b398609..ff3984a 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixLongTest.java
@@ -17,7 +17,6 @@
 
 import static org.junit.Assert.*;
 
-import org.junit.Ignore;
 import org.junit.Test;
 
 import io.atomix.Atomix;
@@ -27,7 +26,6 @@
 /**
  * Unit tests for {@link AtomixCounter}.
  */
-@Ignore
 public class AtomixLongTest extends AtomixTestBase {
 
     @Override
@@ -37,12 +35,7 @@
 
     @Test
     public void testBasicOperations() throws Throwable {
-        basicOperationsTest(1);
-        clearTests();
-        basicOperationsTest(2);
-        clearTests();
         basicOperationsTest(3);
-        clearTests();
     }
 
     protected void basicOperationsTest(int clusterSize) throws Throwable {
diff --git a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
index 786a538..82265ad 100644
--- a/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
+++ b/core/store/primitives/src/test/java/org/onosproject/store/primitives/resources/impl/AtomixTestBase.java
@@ -15,17 +15,16 @@
  */
 package org.onosproject.store.primitives.resources.impl;
 
-import io.atomix.Atomix;
 import io.atomix.AtomixClient;
 import io.atomix.catalyst.serializer.Serializer;
 import io.atomix.catalyst.transport.Address;
-import io.atomix.catalyst.transport.LocalServerRegistry;
-import io.atomix.catalyst.transport.LocalTransport;
+import io.atomix.catalyst.transport.local.LocalServerRegistry;
+import io.atomix.catalyst.transport.local.LocalTransport;
 import io.atomix.copycat.client.CopycatClient;
 import io.atomix.copycat.server.CopycatServer;
 import io.atomix.copycat.server.storage.Storage;
 import io.atomix.copycat.server.storage.StorageLevel;
-import io.atomix.manager.state.ResourceManagerState;
+import io.atomix.manager.internal.ResourceManagerState;
 import io.atomix.resource.ResourceType;
 
 import java.io.File;
@@ -53,7 +52,7 @@
     protected List<Address> members;
     protected List<CopycatClient> copycatClients = new ArrayList<>();
     protected List<CopycatServer> copycatServers = new ArrayList<>();
-    protected List<Atomix> atomixClients = new ArrayList<>();
+    protected List<AtomixClient> atomixClients = new ArrayList<>();
     protected List<CopycatServer> atomixServers = new ArrayList<>();
     protected Serializer serializer = CatalystSerializers.getSerializer();
 
@@ -89,7 +88,7 @@
 
         for (int i = 0; i < nodes; i++) {
             CopycatServer server = createCopycatServer(members.get(i));
-            server.start().thenRun(latch::countDown);
+            server.bootstrap(members).thenRun(latch::countDown);
             servers.add(server);
         }
 
@@ -102,7 +101,7 @@
      * Creates a Copycat server.
      */
     protected CopycatServer createCopycatServer(Address address) {
-        CopycatServer server = CopycatServer.builder(address, members)
+        CopycatServer server = CopycatServer.builder(address)
                 .withTransport(new LocalTransport(registry))
                 .withStorage(Storage.builder()
                         .withStorageLevel(StorageLevel.DISK)
@@ -127,11 +126,11 @@
 
         CompletableFuture<Void> closeClients =
                 CompletableFuture.allOf(atomixClients.stream()
-                                                     .map(Atomix::close)
+                                                     .map(AtomixClient::close)
                                                      .toArray(CompletableFuture[]::new));
 
         closeClients.thenCompose(v -> CompletableFuture.allOf(copycatServers.stream()
-                .map(CopycatServer::stop)
+                .map(CopycatServer::shutdown)
                 .toArray(CompletableFuture[]::new))).join();
 
         deleteDirectory(TEST_DIR);
@@ -163,13 +162,13 @@
     /**
      * Creates a Atomix client.
      */
-    protected Atomix createAtomixClient() {
+    protected AtomixClient createAtomixClient() {
         CountDownLatch latch = new CountDownLatch(1);
-        Atomix client = AtomixClient.builder(members)
+        AtomixClient client = AtomixClient.builder()
                 .withTransport(new LocalTransport(registry))
                 .withSerializer(serializer.clone())
                 .build();
-        client.open().thenRun(latch::countDown);
+        client.connect(members).thenRun(latch::countDown);
         atomixClients.add(client);
         Uninterruptibles.awaitUninterruptibly(latch);
         return client;