zookeeper-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From an...@apache.org
Subject [27/51] [partial] zookeeper git commit: ZOOKEEPER-3032: MAVEN MIGRATION - branch-3.5 - zookeeper-server
Date Wed, 24 Oct 2018 09:31:22 GMT
http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/StatTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StatTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/StatTest.java
deleted file mode 100644
index f4c01aa..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StatTest.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import java.io.IOException;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.data.Stat;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class StatTest extends ClientBase {
-    private ZooKeeper zk;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-
-        zk = createClient();
-    }
-
-    @Override
-    public void tearDown() throws Exception {
-        super.tearDown();
-
-        zk.close();
-    }
-
-    /**
-     * Create a new Stat, fill in dummy values trying to catch Assert.failure
-     * to copy in client or server code.
-     *
-     * @return a new stat with dummy values
-     */
-    private Stat newStat() {
-        Stat stat = new Stat();
-
-        stat.setAversion(100);
-        stat.setCtime(100);
-        stat.setCversion(100);
-        stat.setCzxid(100);
-        stat.setDataLength(100);
-        stat.setEphemeralOwner(100);
-        stat.setMtime(100);
-        stat.setMzxid(100);
-        stat.setNumChildren(100);
-        stat.setPzxid(100);
-        stat.setVersion(100);
-
-        return stat;
-    }
-
-    @Test
-    public void testBasic()
-        throws IOException, KeeperException, InterruptedException
-    {
-        String name = "/foo";
-        zk.create(name, name.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-
-        Stat stat;
-
-        stat = newStat();
-        zk.getData(name, false, stat);
-
-        Assert.assertEquals(stat.getCzxid(), stat.getMzxid());
-        Assert.assertEquals(stat.getCzxid(), stat.getPzxid());
-        Assert.assertEquals(stat.getCtime(), stat.getMtime());
-        Assert.assertEquals(0, stat.getCversion());
-        Assert.assertEquals(0, stat.getVersion());
-        Assert.assertEquals(0, stat.getAversion());
-        Assert.assertEquals(0, stat.getEphemeralOwner());
-        Assert.assertEquals(name.length(), stat.getDataLength());
-        Assert.assertEquals(0, stat.getNumChildren());
-    }
-
-    @Test
-    public void testChild()
-        throws IOException, KeeperException, InterruptedException
-    {
-        String name = "/foo";
-        zk.create(name, name.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-
-        String childname = name + "/bar";
-        zk.create(childname, childname.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                CreateMode.EPHEMERAL);
-
-        Stat stat;
-
-        stat = newStat();
-        zk.getData(name, false, stat);
-
-        Assert.assertEquals(stat.getCzxid(), stat.getMzxid());
-        Assert.assertEquals(stat.getCzxid() + 1, stat.getPzxid());
-        Assert.assertEquals(stat.getCtime(), stat.getMtime());
-        Assert.assertEquals(1, stat.getCversion());
-        Assert.assertEquals(0, stat.getVersion());
-        Assert.assertEquals(0, stat.getAversion());
-        Assert.assertEquals(0, stat.getEphemeralOwner());
-        Assert.assertEquals(name.length(), stat.getDataLength());
-        Assert.assertEquals(1, stat.getNumChildren());
-
-        stat = newStat();
-        zk.getData(childname, false, stat);
-
-        Assert.assertEquals(stat.getCzxid(), stat.getMzxid());
-        Assert.assertEquals(stat.getCzxid(), stat.getPzxid());
-        Assert.assertEquals(stat.getCtime(), stat.getMtime());
-        Assert.assertEquals(0, stat.getCversion());
-        Assert.assertEquals(0, stat.getVersion());
-        Assert.assertEquals(0, stat.getAversion());
-        Assert.assertEquals(zk.getSessionId(), stat.getEphemeralOwner());
-        Assert.assertEquals(childname.length(), stat.getDataLength());
-        Assert.assertEquals(0, stat.getNumChildren());
-    }
-
-    @Test
-    public void testChildren()
-        throws IOException, KeeperException, InterruptedException
-    {
-        String name = "/foo";
-        zk.create(name, name.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-
-        for(int i = 0; i < 10; i++) {
-            String childname = name + "/bar" + i;
-            zk.create(childname, childname.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                    CreateMode.EPHEMERAL);
-
-            Stat stat;
-
-            stat = newStat();
-            zk.getData(name, false, stat);
-
-            Assert.assertEquals(stat.getCzxid(), stat.getMzxid());
-            Assert.assertEquals(stat.getCzxid() + i + 1, stat.getPzxid());
-            Assert.assertEquals(stat.getCtime(), stat.getMtime());
-            Assert.assertEquals(i + 1, stat.getCversion());
-            Assert.assertEquals(0, stat.getVersion());
-            Assert.assertEquals(0, stat.getAversion());
-            Assert.assertEquals(0, stat.getEphemeralOwner());
-            Assert.assertEquals(name.length(), stat.getDataLength());
-            Assert.assertEquals(i + 1, stat.getNumChildren());
-        }
-    }
-
-    @Test
-    public void testDataSizeChange()
-        throws IOException, KeeperException, InterruptedException
-    {
-        String name = "/foo";
-        zk.create(name, name.getBytes(), Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-
-        Stat stat;
-
-        stat = newStat();
-        zk.getData(name, false, stat);
-
-        Assert.assertEquals(stat.getCzxid(), stat.getMzxid());
-        Assert.assertEquals(stat.getCzxid(), stat.getPzxid());
-        Assert.assertEquals(stat.getCtime(), stat.getMtime());
-        Assert.assertEquals(0, stat.getCversion());
-        Assert.assertEquals(0, stat.getVersion());
-        Assert.assertEquals(0, stat.getAversion());
-        Assert.assertEquals(0, stat.getEphemeralOwner());
-        Assert.assertEquals(name.length(), stat.getDataLength());
-        Assert.assertEquals(0, stat.getNumChildren());
-
-        zk.setData(name, (name + name).getBytes(), -1);
-
-        stat = newStat();
-        zk.getData(name, false, stat);
-
-        Assert.assertNotSame(stat.getCzxid(), stat.getMzxid());
-        Assert.assertEquals(stat.getCzxid(), stat.getPzxid());
-        Assert.assertNotSame(stat.getCtime(), stat.getMtime());
-        Assert.assertEquals(0, stat.getCversion());
-        Assert.assertEquals(1, stat.getVersion());
-        Assert.assertEquals(0, stat.getAversion());
-        Assert.assertEquals(0, stat.getEphemeralOwner());
-        Assert.assertEquals(name.length() * 2, stat.getDataLength());
-        Assert.assertEquals(0, stat.getNumChildren());
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
deleted file mode 100644
index 998d6e5..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StaticHostProviderTest.java
+++ /dev/null
@@ -1,932 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import org.apache.zookeeper.ZKTestCase;
-import org.apache.zookeeper.client.HostProvider;
-import org.apache.zookeeper.client.StaticHostProvider;
-import org.apache.zookeeper.common.Time;
-import org.junit.Test;
-
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Random;
-
-import static org.hamcrest.CoreMatchers.anyOf;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.hasItems;
-import static org.hamcrest.CoreMatchers.instanceOf;
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-public class StaticHostProviderTest extends ZKTestCase {
-    private Random r = new Random(1);
-
-    @Test
-    public void testNextGoesRound() {
-        HostProvider hostProvider = getHostProvider((byte) 2);
-        InetSocketAddress first = hostProvider.next(0);
-        assertTrue(first != null);
-        hostProvider.next(0);
-        assertEquals(first, hostProvider.next(0));
-    }
-
-    @Test
-    public void testNextGoesRoundAndSleeps() {
-        byte size = 2;
-        HostProvider hostProvider = getHostProvider(size);
-        while (size > 0) {
-            hostProvider.next(0);
-            --size;
-        }
-        long start = Time.currentElapsedTime();
-        hostProvider.next(1000);
-        long stop = Time.currentElapsedTime();
-        assertTrue(900 <= stop - start);
-    }
-
-    @Test
-    public void testNextDoesNotSleepForZero() {
-        byte size = 2;
-        HostProvider hostProvider = getHostProvider(size);
-        while (size > 0) {
-            hostProvider.next(0);
-            --size;
-        }
-        long start = Time.currentElapsedTime();
-        hostProvider.next(0);
-        long stop = Time.currentElapsedTime();
-        assertTrue(5 > stop - start);
-    }
-
-    @Test(expected = IllegalArgumentException.class)
-    public void testEmptyServerAddressesList() {
-        HostProvider hp = new StaticHostProvider(new ArrayList<>());
-    }
-
-    @Test
-    public void testInvalidHostAddresses() {
-        // Arrange
-        final List<InetSocketAddress> invalidAddresses = new ArrayList<>();
-        InetSocketAddress unresolved = InetSocketAddress.createUnresolved("a", 1234);
-        invalidAddresses.add(unresolved);
-        StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
-            @Override
-            public InetAddress[] getAllByName(String name) throws UnknownHostException {
-                throw new UnknownHostException();
-            }
-        };
-        StaticHostProvider sp = new StaticHostProvider(invalidAddresses, resolver);
-
-        // Act & Assert
-        InetSocketAddress n1 = sp.next(0);
-        assertTrue("Provider should return unresolved address is host is unresolvable", n1.isUnresolved());
-        assertSame("Provider should return original address is host is unresolvable", unresolved, n1);
-    }
-
-    @Test
-    public void testTwoConsequitiveCallsToNextReturnDifferentElement() {
-        HostProvider hostProvider = getHostProvider((byte) 2);
-        assertNotSame(hostProvider.next(0), hostProvider.next(0));
-    }
-
-    @Test
-    public void testOnConnectDoesNotReset() {
-        HostProvider hostProvider = getHostProvider((byte) 2);
-        InetSocketAddress first = hostProvider.next(0);
-        hostProvider.onConnected();
-        InetSocketAddress second = hostProvider.next(0);
-        assertNotSame(first, second);
-    }
-
-    /* Reconfig tests with IP addresses */
-
-    private final double slackPercent = 10;
-    private final int numClients = 10000;
-
-    @Test
-    public void testUpdateClientMigrateOrNot() throws UnknownHostException {
-        HostProvider hostProvider = getHostProvider((byte) 4); // 10.10.10.4:1238, 10.10.10.3:1237, 10.10.10.2:1236, 10.10.10.1:1235
-        Collection<InetSocketAddress> newList = getServerAddresses((byte) 3); // 10.10.10.3:1237, 10.10.10.2:1236, 10.10.10.1:1235
-
-        InetSocketAddress myServer = new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, 3}), 1237);
-
-        // Number of machines becomes smaller, my server is in the new cluster
-        boolean disconnectRequired = hostProvider.updateServerList(newList, myServer);
-        assertFalse(disconnectRequired);
-        hostProvider.onConnected();
-        
-        // Number of machines stayed the same, my server is in the new cluster
-        disconnectRequired = hostProvider.updateServerList(newList, myServer);
-        assertFalse(disconnectRequired);
-        hostProvider.onConnected();
-
-        // Number of machines became smaller, my server is not in the new
-        // cluster
-        newList = getServerAddresses((byte) 2); // 10.10.10.2:1236, 10.10.10.1:1235
-        disconnectRequired = hostProvider.updateServerList(newList, myServer);
-        assertTrue(disconnectRequired);
-        hostProvider.onConnected();
-
-        // Number of machines stayed the same, my server is not in the new
-        // cluster
-        disconnectRequired = hostProvider.updateServerList(newList, myServer);
-        assertTrue(disconnectRequired);
-        hostProvider.onConnected();
-
-        // Number of machines increased, my server is not in the new cluster
-        newList = new ArrayList<InetSocketAddress>(3);
-        for (byte i = 4; i > 1; i--) { // 10.10.10.4:1238, 10.10.10.3:1237, 10.10.10.2:1236
-            newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
-        }
-        myServer = new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, 1}), 1235);
-        disconnectRequired = hostProvider.updateServerList(newList, myServer);
-        assertTrue(disconnectRequired);
-        hostProvider.onConnected();
-
-        // Number of machines increased, my server is in the new cluster
-        // Here whether to move or not depends on the difference of cluster
-        // sizes
-        // With probability 1 - |old|/|new} the client disconnects
-        // In the test below 1-9/10 = 1/10 chance of disconnecting
-        HostProvider[] hostProviderArray = new HostProvider[numClients];
-        newList = getServerAddresses((byte) 10);
-        int numDisconnects = 0;
-        for (int i = 0; i < numClients; i++) {
-            hostProviderArray[i] = getHostProvider((byte) 9);
-            disconnectRequired = hostProviderArray[i].updateServerList(newList, myServer);
-            if (disconnectRequired)
-                numDisconnects++;
-        }
-        hostProvider.onConnected();
-
-        // should be numClients/10 in expectation, we test that its numClients/10 +- slackPercent
-        assertTrue(numDisconnects < upperboundCPS(numClients, 10));
-    }
-
-    @Test
-    public void testUpdateMigrationGoesRound() throws UnknownHostException {
-        HostProvider hostProvider = getHostProvider((byte) 4);
-        // old list (just the ports): 1238, 1237, 1236, 1235
-        Collection<InetSocketAddress> newList = new ArrayList<InetSocketAddress>(10);
-        for (byte i = 12; i > 2; i--) { // 1246, 1245, 1244, 1243, 1242, 1241,
-                                       // 1240, 1239, 1238, 1237
-            newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
-        }
-
-        // servers from the old list that appear in the new list
-        Collection<InetSocketAddress> oldStaying = new ArrayList<InetSocketAddress>(2);
-        for (byte i = 4; i > 2; i--) { // 1238, 1237
-            oldStaying.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
-        }
-
-        // servers in the new list that are not in the old list
-        Collection<InetSocketAddress> newComing = new ArrayList<InetSocketAddress>(10);
-        for (byte i = 12; i > 4; i--) {// 1246, 1245, 1244, 1243, 1242, 1241, 1240, 1139
-            newComing.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
-        }
-
-        // Number of machines increases, my server is not in the new cluster
-        // load on old servers must be decreased, so must connect to one of the
-        // new servers
-        // i.e., pNew = 1.
-
-        boolean disconnectRequired = hostProvider.updateServerList(newList, new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, 1}), 1235));
-        assertTrue(disconnectRequired);
-
-        // This means reconfigMode = true, and nextHostInReconfigMode will be
-        // called from next
-        // Since pNew = 1 we should first try the new servers
-        ArrayList<InetSocketAddress> seen = new ArrayList<InetSocketAddress>();
-        for (int i = 0; i < newComing.size(); i++) {
-            InetSocketAddress addr = hostProvider.next(0);
-            assertTrue(newComing.contains(addr));
-            assertTrue(!seen.contains(addr));
-            seen.add(addr);
-        }
-
-        // Next the old servers
-        seen.clear();
-        for (int i = 0; i < oldStaying.size(); i++) {
-            InetSocketAddress addr = hostProvider.next(0);
-            assertTrue(oldStaying.contains(addr));
-            assertTrue(!seen.contains(addr));
-            seen.add(addr);
-        }
-
-        // And now it goes back to normal next() so it should be everything
-        // together like in testNextGoesRound()
-        InetSocketAddress first = hostProvider.next(0);
-        assertTrue(first != null);
-        for (int i = 0; i < newList.size() - 1; i++) {
-            hostProvider.next(0);
-        }
-
-        assertEquals(first, hostProvider.next(0));
-        hostProvider.onConnected();
-    }
-
-    @Test
-    public void testUpdateLoadBalancing() throws UnknownHostException {
-        // Start with 9 servers and 10000 clients
-        boolean disconnectRequired;
-        HostProvider[] hostProviderArray = new HostProvider[numClients];
-        InetSocketAddress[] curHostForEachClient = new InetSocketAddress[numClients];
-        int[] numClientsPerHost = new int[9];
-
-        // initialization
-        for (int i = 0; i < numClients; i++) {
-            hostProviderArray[i] = getHostProvider((byte) 9);
-            curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 9; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 9));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 9));
-            numClientsPerHost[i] = 0; // prepare for next test
-        }
-
-        // remove host number 8 (the last one in a list of 9 hosts)
-        Collection<InetSocketAddress> newList = getServerAddresses((byte) 8);
-
-        for (int i = 0; i < numClients; i++) {
-            disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]);
-            if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 8; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 8));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 8));
-            numClientsPerHost[i] = 0; // prepare for next test
-        }
-        assertTrue(numClientsPerHost[8] == 0);
-
-        // remove hosts number 6 and 7 (the currently last two in the list)
-        newList = getServerAddresses((byte) 6);
-
-        for (int i = 0; i < numClients; i++) {
-            disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]);
-            if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 6; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 6));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 6));
-            numClientsPerHost[i] = 0; // prepare for next test
-        }
-        assertTrue(numClientsPerHost[6] == 0);
-        assertTrue(numClientsPerHost[7] == 0);
-        assertTrue(numClientsPerHost[8] == 0);
-
-        // remove host number 0 (the first one in the current list)
-        // and add back hosts 6, 7 and 8
-        newList = new ArrayList<InetSocketAddress>(8);
-        for (byte i = 9; i > 1; i--) {
-            newList.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, i}), 1234 + i));
-        }
-
-        for (int i = 0; i < numClients; i++) {
-            disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]);
-            if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        assertTrue(numClientsPerHost[0] == 0);
-
-        for (int i = 1; i < 9; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 8));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 8));
-            numClientsPerHost[i] = 0; // prepare for next test
-        }
-
-        // add back host number 0
-        newList = getServerAddresses((byte) 9);
-
-        for (int i = 0; i < numClients; i++) {
-            disconnectRequired = hostProviderArray[i].updateServerList(newList, curHostForEachClient[i]);
-            if (disconnectRequired) curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 9; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 9));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 9));
-        }
-    }
-
-    @Test
-    public void testNoCurrentHostDuringNormalMode() throws UnknownHostException {
-        // Start with 9 servers and 10000 clients
-        boolean disconnectRequired;
-        StaticHostProvider[] hostProviderArray = new StaticHostProvider[numClients];
-        InetSocketAddress[] curHostForEachClient = new InetSocketAddress[numClients];
-        int[] numClientsPerHost = new int[9];
-
-        // initialization
-        for (int i = 0; i < numClients; i++) {
-            hostProviderArray[i] = getHostProvider((byte) 9);
-            if (i >= (numClients / 2)) {
-                curHostForEachClient[i] = hostProviderArray[i].next(0);
-            } else {
-                // its supposed to be the first server on serverList.
-                // we'll set it later, see below (*)
-                curHostForEachClient[i] = null;
-            }
-        }
-
-        // remove hosts 7 and 8 (the last two in a list of 9 hosts)
-        Collection<InetSocketAddress> newList = getServerAddresses((byte) 7);
-
-        for (int i = 0; i < numClients; i++) {
-            // tests the case currentHost == null && lastIndex == -1
-            // calls next for clients with index < numClients/2
-            disconnectRequired = hostProviderArray[i].updateServerList(newList,
-                    curHostForEachClient[i]);
-            if (disconnectRequired)
-                curHostForEachClient[i] = hostProviderArray[i].next(0);
-            else if (curHostForEachClient[i] == null) {
-                // (*) setting it to what it should be
-                curHostForEachClient[i] = hostProviderArray[i]
-                        .getServerAtIndex(0);
-            }
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            // sets lastIndex, resets reconfigMode
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 7; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 7));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 7));
-            numClientsPerHost[i] = 0; // prepare for next test
-        }
-        assertTrue(numClientsPerHost[7] == 0);
-        assertTrue(numClientsPerHost[8] == 0);
-
-        // add back server 7
-        newList = getServerAddresses((byte) 8);
-
-        for (int i = 0; i < numClients; i++) {
-            InetSocketAddress myServer = (i < (numClients / 2)) ? null
-                    : curHostForEachClient[i];
-            // tests the case currentHost == null && lastIndex >= 0
-            disconnectRequired = hostProviderArray[i].updateServerList(newList,
-                    myServer);
-            if (disconnectRequired)
-                curHostForEachClient[i] = hostProviderArray[i].next(0);
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 8; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 8));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 8));
-        }
-    }
-
-    @Test
-    public void testReconfigDuringReconfigMode() throws UnknownHostException {
-        // Start with 9 servers and 10000 clients
-        boolean disconnectRequired;
-        StaticHostProvider[] hostProviderArray = new StaticHostProvider[numClients];
-        InetSocketAddress[] curHostForEachClient = new InetSocketAddress[numClients];
-        int[] numClientsPerHost = new int[9];
-
-        // initialization
-        for (int i = 0; i < numClients; i++) {
-            hostProviderArray[i] = getHostProvider((byte) 9);
-            curHostForEachClient[i] = hostProviderArray[i].next(0);
-        }
-
-        // remove hosts 7 and 8 (the last two in a list of 9 hosts)
-        Collection<InetSocketAddress> newList = getServerAddresses((byte) 7);
-
-        for (int i = 0; i < numClients; i++) {
-            // sets reconfigMode
-            hostProviderArray[i].updateServerList(newList,
-                    curHostForEachClient[i]);
-        }
-
-        // add back servers 7 and 8 while still in reconfigMode (we didn't call
-        // next)
-        newList = getServerAddresses((byte) 9);
-
-        for (int i = 0; i < numClients; i++) {
-            InetSocketAddress myServer = (i < (numClients / 2)) ? null
-                    : curHostForEachClient[i];
-            // for i < (numClients/2) this tests the case currentHost == null &&
-            // reconfigMode = true
-            // for i >= (numClients/2) this tests the case currentHost!=null &&
-            // reconfigMode = true
-            disconnectRequired = hostProviderArray[i].updateServerList(newList,
-                    myServer);
-            if (disconnectRequired)
-                curHostForEachClient[i] = hostProviderArray[i].next(0);
-            else {
-                // currentIndex was set by the call to updateServerList, which
-                // called next
-                curHostForEachClient[i] = hostProviderArray[i]
-                        .getServerAtCurrentIndex();
-            }
-            numClientsPerHost[curHostForEachClient[i].getPort() - 1235]++;
-            hostProviderArray[i].onConnected();
-        }
-
-        for (int i = 0; i < 9; i++) {
-            assertTrue(numClientsPerHost[i] <= upperboundCPS(numClients, 9));
-            assertTrue(numClientsPerHost[i] >= lowerboundCPS(numClients, 9));
-        }
-    }
-
-    private StaticHostProvider getHostProvider(byte size) {
-        return new StaticHostProvider(getServerAddresses(size), r.nextLong());
-    }
-
-    private Collection<InetSocketAddress> getServerAddresses(byte size)   {
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(
-                size);
-        while (size > 0) {
-            try {
-                list.add(new InetSocketAddress(InetAddress.getByAddress(new byte[]{10, 10, 10, size}), 1234 + size));
-            } catch (UnknownHostException e) {
-                // TODO Auto-generated catch block
-                e.printStackTrace();
-            }
-            --size;
-        }
-        return list;
-    }
-
-    /* Reconfig test with unresolved hostnames */
-
-    /**
-     * Number of machines becomes smaller, my server is in the new cluster
-     */
-    @Test
-    public void testUpdateServerList_UnresolvedHostnames_NoDisconnection1() {
-        // Arrange
-        // [testhost-4.testdomain.com:1238, testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(4);
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        Collection<InetSocketAddress> newList = getUnresolvedHostnames(3);
-        InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237);
-
-        // Act
-        boolean disconnectRequired = hostProvider.updateServerList(newList, myServer);
-
-        // Assert
-        assertFalse(disconnectRequired);
-        hostProvider.onConnected();
-    }
-
-    /**
-     * Number of machines stayed the same, my server is in the new cluster
-     */
-    @Test
-    public void testUpdateServerList_UnresolvedHostnames_NoDisconnection2() {
-        // Arrange
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3);
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        Collection<InetSocketAddress> newList = getUnresolvedHostnames(3);
-        InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237);
-
-        // Act
-        boolean disconnectRequired = hostProvider.updateServerList(newList, myServer);
-
-        // Assert
-        assertFalse(disconnectRequired);
-        hostProvider.onConnected();
-    }
-
-    /**
-     * Number of machines became smaller, my server is not in the new cluster
-     */
-    @Test
-    public void testUpdateServerList_UnresolvedHostnames_Disconnection1() {
-        // Arrange
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3);
-        // [testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        Collection<InetSocketAddress> newList = getUnresolvedHostnames(2);
-        InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-3.testdomain.com", 1237);
-
-        // Act
-        boolean disconnectRequired = hostProvider.updateServerList(newList, myServer);
-
-        // Assert
-        assertTrue(disconnectRequired);
-        hostProvider.onConnected();
-    }
-
-    /**
-     * Number of machines stayed the same, my server is not in the new cluster
-     */
-    @Test
-    public void testUpdateServerList_UnresolvedHostnames_Disconnection2() {
-        // Arrange
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        HostProvider hostProvider = getHostProviderWithUnresolvedHostnames(3);
-        // [testhost-3.testdomain.com:1237, testhost-2.testdomain.com:1236, testhost-1.testdomain.com:1235]
-        Collection<InetSocketAddress> newList = getUnresolvedHostnames(3);
-        InetSocketAddress myServer = InetSocketAddress.createUnresolved("testhost-4.testdomain.com", 1237);
-
-        // Act
-        boolean disconnectRequired = hostProvider.updateServerList(newList, myServer);
-
-        // Assert
-        assertTrue(disconnectRequired);
-        hostProvider.onConnected();
-    }
-
-    @Test
-    public void testUpdateServerList_ResolvedWithUnResolvedAddress_ForceDisconnect() {
-        // Arrange
-        // Create a HostProvider with a list of unresolved server address(es)
-        List<InetSocketAddress> addresses = Collections.singletonList(
-                InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235)
-        );
-        HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver());
-        InetSocketAddress currentHost = hostProvider.next(100);
-        assertThat("CurrentHost is which the client is currently connecting to, it should be resolved",
-                currentHost.isUnresolved(), is(false));
-
-        // Act
-        InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235);
-        assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true));
-        boolean disconnect = hostProvider.updateServerList(new ArrayList<>(
-            Collections.singletonList(replaceHost)),
-            currentHost
-        );
-
-        // Assert
-        assertThat(disconnect, is(false));
-    }
-
-    @Test
-    public void testUpdateServerList_ResolvedWithResolvedAddress_NoDisconnect() throws UnknownHostException {
-        // Arrange
-        // Create a HostProvider with a list of unresolved server address(es)
-        List<InetSocketAddress> addresses = Collections.singletonList(
-                InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235)
-        );
-        HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver());
-        InetSocketAddress currentHost = hostProvider.next(100);
-        assertThat("CurrentHost is which the client is currently connecting to, it should be resolved",
-                currentHost.isUnresolved(), is(false));
-
-        // Act
-        InetSocketAddress replaceHost =
-                new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(),
-                        currentHost.getAddress().getAddress()), currentHost.getPort());
-        assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false));
-        boolean disconnect = hostProvider.updateServerList(new ArrayList<>(
-            Collections.singletonList(replaceHost)),
-            currentHost
-        );
-
-        // Assert
-        assertThat(disconnect, equalTo(false));
-    }
-
-    @Test
-    public void testUpdateServerList_UnResolvedWithUnResolvedAddress_ForceDisconnect() {
-        // Arrange
-        // Create a HostProvider with a list of unresolved server address(es)
-        List<InetSocketAddress> addresses = Collections.singletonList(
-                InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235)
-        );
-        HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver());
-        InetSocketAddress currentHost = hostProvider.next(100);
-        assertThat("CurrentHost is not resolvable in this test case",
-                currentHost.isUnresolved(), is(true));
-
-        // Act
-        InetSocketAddress replaceHost = InetSocketAddress.createUnresolved("testhost-1.resolvable.zk", 1235);
-        assertThat("Replace host must be unresolved in this test case", replaceHost.isUnresolved(), is(true));
-        boolean disconnect = hostProvider.updateServerList(new ArrayList<>(
-                        Collections.singletonList(replaceHost)),
-                currentHost
-        );
-
-        // Assert
-        assertThat(disconnect, is(true));
-    }
-
-    @Test
-    public void testUpdateServerList_UnResolvedWithResolvedAddress_ForceDisconnect() throws UnknownHostException {
-        // Arrange
-        // Create a HostProvider with a list of unresolved server address(es)
-        List<InetSocketAddress> addresses = Collections.singletonList(
-                InetSocketAddress.createUnresolved("testhost-1.zookeepertest.zk", 1235)
-        );
-        HostProvider hostProvider = new StaticHostProvider(addresses, new TestResolver());
-        InetSocketAddress currentHost = hostProvider.next(100);
-        assertThat("CurrentHost not resolvable in this test case",
-                currentHost.isUnresolved(), is(true));
-
-        // Act
-        byte[] addr = new byte[] { 10, 0, 0, 1 };
-        InetSocketAddress replaceHost =
-                new InetSocketAddress(InetAddress.getByAddress(currentHost.getHostString(), addr),
-                        currentHost.getPort());
-        assertThat("Replace host must be resolved in this test case", replaceHost.isUnresolved(), is(false));
-        boolean disconnect = hostProvider.updateServerList(new ArrayList<>(
-                        Collections.singletonList(replaceHost)),
-                currentHost
-        );
-
-        // Assert
-        assertThat(disconnect, equalTo(false));
-    }
-
-    private class TestResolver implements StaticHostProvider.Resolver {
-        private byte counter = 1;
-
-        @Override
-        public InetAddress[] getAllByName(String name) throws UnknownHostException {
-            if (name.contains("resolvable")) {
-                byte[] addr = new byte[] { 10, 0, 0, (byte)(counter++ % 10) };
-                return new InetAddress[] { InetAddress.getByAddress(name, addr) };
-            }
-            throw new UnknownHostException();
-        }
-    }
-
-    private double lowerboundCPS(int numClients, int numServers) {
-        return (1 - slackPercent/100.0) * numClients / numServers;
-    }
-
-    private double upperboundCPS(int numClients, int numServers) {
-        return (1 + slackPercent/100.0) * numClients / numServers;
-    }
-
-    /* DNS resolution tests */
-
-    @Test
-    public void testLiteralIPNoReverseNS() {
-        byte size = 30;
-        HostProvider hostProvider = getHostProviderUnresolved(size);
-        for (int i = 0; i < size; i++) {
-            InetSocketAddress next = hostProvider.next(0);
-            assertThat(next, instanceOf(InetSocketAddress.class));
-            assertFalse(next.isUnresolved());
-            assertTrue(next.toString().startsWith("/"));
-            // Do NOT trigger the reverse name service lookup.
-            String hostname = next.getHostString();
-            // In this case, the hostname equals literal IP address.
-            assertEquals(next.getAddress().getHostAddress(), hostname);
-        }
-    }
-
-    @Test
-    public void testReResolvingSingle() throws UnknownHostException {
-        // Arrange
-        byte size = 1;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
-
-        // Test a hostname that resolves to a single address
-        list.add(InetSocketAddress.createUnresolved("issues.apache.org", 1234));
-
-        final InetAddress issuesApacheOrg = mock(InetAddress.class);
-        when(issuesApacheOrg.getHostAddress()).thenReturn("192.168.1.1");
-        when(issuesApacheOrg.toString()).thenReturn("issues.apache.org");
-        when(issuesApacheOrg.getHostName()).thenReturn("issues.apache.org");
-
-        StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
-            @Override
-            public InetAddress[] getAllByName(String name) {
-                return new InetAddress[] {
-                        issuesApacheOrg
-                };
-            }
-        };
-        StaticHostProvider.Resolver spyResolver = spy(resolver);
-
-        // Act
-        StaticHostProvider hostProvider = new StaticHostProvider(list, spyResolver);
-        for (int i = 0; i < 10; i++) {
-            InetSocketAddress next = hostProvider.next(0);
-            assertEquals(issuesApacheOrg, next.getAddress());
-        }
-
-        // Assert
-        // Resolver called 10 times, because we shouldn't cache the resolved addresses
-        verify(spyResolver, times(10)).getAllByName("issues.apache.org"); // resolution occurred
-    }
-
-    @Test
-    public void testReResolvingMultiple() throws UnknownHostException {
-        // Arrange
-        byte size = 1;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
-
-        // Test a hostname that resolves to multiple addresses
-        list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
-
-        final InetAddress apacheOrg1 = mock(InetAddress.class);
-        when(apacheOrg1.getHostAddress()).thenReturn("192.168.1.1");
-        when(apacheOrg1.toString()).thenReturn("www.apache.org");
-        when(apacheOrg1.getHostName()).thenReturn("www.apache.org");
-
-        final InetAddress apacheOrg2 = mock(InetAddress.class);
-        when(apacheOrg2.getHostAddress()).thenReturn("192.168.1.2");
-        when(apacheOrg2.toString()).thenReturn("www.apache.org");
-        when(apacheOrg2.getHostName()).thenReturn("www.apache.org");
-
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
-        resolvedAddresses.add(apacheOrg1);
-        resolvedAddresses.add(apacheOrg2);
-        StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
-            @Override
-            public InetAddress[] getAllByName(String name) {
-                return resolvedAddresses.toArray(new InetAddress[resolvedAddresses.size()]);
-            }
-        };
-        StaticHostProvider.Resolver spyResolver = spy(resolver);
-
-        // Act & Assert
-        StaticHostProvider hostProvider = new StaticHostProvider(list, spyResolver);
-        assertEquals(1, hostProvider.size()); // single address not extracted
-
-        for (int i = 0; i < 10; i++) {
-            InetSocketAddress next = hostProvider.next(0);
-            assertThat("Bad IP address returned", next.getAddress().getHostAddress(), anyOf(equalTo(apacheOrg1.getHostAddress()), equalTo(apacheOrg2.getHostAddress())));
-            assertEquals(1, hostProvider.size()); // resolve() call keeps the size of provider
-        }
-        // Resolver called 10 times, because we shouldn't cache the resolved addresses
-        verify(spyResolver, times(10)).getAllByName("www.apache.org"); // resolution occurred
-    }
-
-    @Test
-    public void testReResolveMultipleOneFailing() throws UnknownHostException {
-        // Arrange
-        final List<InetSocketAddress> list = new ArrayList<InetSocketAddress>();
-        list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
-        final List<String> ipList = new ArrayList<String>();
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
-        for (int i = 0; i < 3; i++) {
-            ipList.add(String.format("192.168.1.%d", i+1));
-            final InetAddress apacheOrg = mock(InetAddress.class);
-            when(apacheOrg.getHostAddress()).thenReturn(String.format("192.168.1.%d", i+1));
-            when(apacheOrg.toString()).thenReturn(String.format("192.168.1.%d", i+1));
-            when(apacheOrg.getHostName()).thenReturn("www.apache.org");
-            resolvedAddresses.add(apacheOrg);
-        }
-
-        StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
-            @Override
-            public InetAddress[] getAllByName(String name) {
-                return resolvedAddresses.toArray(new InetAddress[resolvedAddresses.size()]);
-            }
-        };
-        StaticHostProvider.Resolver spyResolver = spy(resolver);
-        StaticHostProvider hostProvider = new StaticHostProvider(list, spyResolver);
-
-        // Act & Assert
-        InetSocketAddress resolvedFirst = hostProvider.next(0);
-        assertFalse("HostProvider should return resolved addresses", resolvedFirst.isUnresolved());
-        assertThat("Bad IP address returned", ipList, hasItems(resolvedFirst.getAddress().getHostAddress()));
-
-        hostProvider.onConnected(); // first address worked
-
-        InetSocketAddress resolvedSecond = hostProvider.next(0);
-        assertFalse("HostProvider should return resolved addresses", resolvedSecond.isUnresolved());
-        assertThat("Bad IP address returned", ipList, hasItems(resolvedSecond.getAddress().getHostAddress()));
-
-        // Second address doesn't work, so we don't call onConnected() this time
-        // StaticHostProvider should try to re-resolve the address in this case
-
-        InetSocketAddress resolvedThird = hostProvider.next(0);
-        assertFalse("HostProvider should return resolved addresses", resolvedThird.isUnresolved());
-        assertThat("Bad IP address returned", ipList, hasItems(resolvedThird.getAddress().getHostAddress()));
-
-        verify(spyResolver, times(3)).getAllByName("www.apache.org");  // resolution occured every time
-    }
-
-    @Test
-    public void testEmptyResolution() throws UnknownHostException {
-        // Arrange
-        final List<InetSocketAddress> list = new ArrayList<InetSocketAddress>();
-        list.add(InetSocketAddress.createUnresolved("www.apache.org", 1234));
-        list.add(InetSocketAddress.createUnresolved("www.google.com", 1234));
-        final List<InetAddress> resolvedAddresses = new ArrayList<InetAddress>();
-
-        final InetAddress apacheOrg1 = mock(InetAddress.class);
-        when(apacheOrg1.getHostAddress()).thenReturn("192.168.1.1");
-        when(apacheOrg1.toString()).thenReturn("www.apache.org");
-        when(apacheOrg1.getHostName()).thenReturn("www.apache.org");
-
-        resolvedAddresses.add(apacheOrg1);
-
-        StaticHostProvider.Resolver resolver = new StaticHostProvider.Resolver() {
-            @Override
-            public InetAddress[] getAllByName(String name) {
-                if ("www.apache.org".equalsIgnoreCase(name)) {
-                    return resolvedAddresses.toArray(new InetAddress[resolvedAddresses.size()]);
-                } else {
-                    return new InetAddress[0];
-                }
-            }
-        };
-        StaticHostProvider.Resolver spyResolver = spy(resolver);
-        StaticHostProvider hostProvider = new StaticHostProvider(list, spyResolver);
-
-        // Act & Assert
-        for (int i = 0; i < 10; i++) {
-            InetSocketAddress resolved = hostProvider.next(0);
-            hostProvider.onConnected();
-            if (resolved.getHostName().equals("www.google.com")) {
-                assertTrue("HostProvider should return unresolved address if host is unresolvable", resolved.isUnresolved());
-            } else {
-                assertFalse("HostProvider should return resolved addresses", resolved.isUnresolved());
-                assertEquals("192.168.1.1", resolved.getAddress().getHostAddress());
-            }
-        }
-
-        verify(spyResolver, times(5)).getAllByName("www.apache.org");
-        verify(spyResolver, times(5)).getAllByName("www.google.com");
-    }
-
-    @Test
-    public void testReResolvingLocalhost() {
-        byte size = 2;
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
-
-        // Test a hostname that resolves to multiple addresses
-        list.add(InetSocketAddress.createUnresolved("localhost", 1234));
-        list.add(InetSocketAddress.createUnresolved("localhost", 1235));
-        StaticHostProvider hostProvider = new StaticHostProvider(list);
-        int sizeBefore = hostProvider.size();
-        InetSocketAddress next = hostProvider.next(0);
-        next = hostProvider.next(0);
-        assertTrue("Different number of addresses in the list: " + hostProvider.size() +
-                " (after), " + sizeBefore + " (before)", hostProvider.size() == sizeBefore);
-    }
-
-    private StaticHostProvider getHostProviderUnresolved(byte size) {
-        return new StaticHostProvider(getUnresolvedServerAddresses(size), r.nextLong());
-    }
-
-    private Collection<InetSocketAddress> getUnresolvedServerAddresses(byte size) {
-        ArrayList<InetSocketAddress> list = new ArrayList<InetSocketAddress>(size);
-        while (size > 0) {
-            list.add(InetSocketAddress.createUnresolved("10.10.10." + size, 1234 + size));
-            --size;
-        }
-        return list;
-    }
-
-    private StaticHostProvider getHostProviderWithUnresolvedHostnames(int size) {
-        return new StaticHostProvider(getUnresolvedHostnames(size), r.nextLong());
-    }
-
-    private Collection<InetSocketAddress> getUnresolvedHostnames(int size) {
-        ArrayList<InetSocketAddress> list = new ArrayList<>(size);
-        while (size > 0) {
-            list.add(InetSocketAddress.createUnresolved(String.format("testhost-%d.testdomain.com", size), 1234 + size));
-            --size;
-        }
-        System.out.println(Arrays.toString(list.toArray()));
-        return list;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/StringUtilTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StringUtilTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/StringUtilTest.java
deleted file mode 100644
index 29d197f..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/StringUtilTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.zookeeper.test;
-
-
-import org.apache.zookeeper.ZKTestCase;
-import org.apache.zookeeper.common.StringUtils;
-import org.junit.Test;
-
-import java.util.Arrays;
-
-import static org.junit.Assert.assertEquals;
-
-public class StringUtilTest extends ZKTestCase {
-
-    @Test
-    public void testStrings() {
-
-        String s1 = "   a  ,   b  , ";
-        assertEquals("[a, b]", StringUtils.split(s1, ",").toString());
-
-        String s2 = "";
-        assertEquals(0, StringUtils.split(s2, ",").size());
-
-        String s3 = "1, , 2";
-        assertEquals("[1, 2]", StringUtils.split(s3, ",").toString());
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/SyncCallTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/SyncCallTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/SyncCallTest.java
deleted file mode 100644
index dc7c9c5..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/SyncCallTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import java.io.IOException;
-import java.util.Date;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.AsyncCallback.Children2Callback;
-import org.apache.zookeeper.AsyncCallback.ChildrenCallback;
-import org.apache.zookeeper.AsyncCallback.Create2Callback;
-import org.apache.zookeeper.AsyncCallback.StringCallback;
-import org.apache.zookeeper.AsyncCallback.VoidCallback;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.data.Stat;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class SyncCallTest extends ClientBase
-    implements ChildrenCallback, Children2Callback,
-               StringCallback, VoidCallback, Create2Callback
-{
-    private CountDownLatch opsCount;
-    
-    List<Integer> results = new LinkedList<Integer>();
-    Integer limit = 100 + 1 + 100 + 100;
-    
-    @Test
-    public void testSync() throws Exception {
-        try {
-            LOG.info("Starting ZK:" + (new Date()).toString());
-            opsCount = new CountDownLatch(limit);
-            ZooKeeper zk = createClient();
-
-            LOG.info("Beginning test:" + (new Date()).toString());
-            for(int i = 0; i < 50; i++)
-                zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE,
-                          CreateMode.PERSISTENT, (StringCallback)this, results);
-
-            for(int i = 50; i < 100; i++) {
-              zk.create("/test" + i, new byte[0], Ids.OPEN_ACL_UNSAFE,
-                        CreateMode.PERSISTENT, (Create2Callback)this, results);
-            }
-            zk.sync("/test", this, results);
-            for(int i = 0; i < 100; i++)
-                zk.delete("/test" + i, 0, this, results);
-            for(int i = 0; i < 100; i++)
-                zk.getChildren("/", new NullWatcher(), (ChildrenCallback)this,
-                        results);
-            for(int i = 0; i < 100; i++)
-                zk.getChildren("/", new NullWatcher(), (Children2Callback)this,
-                        results);
-            LOG.info("Submitted all operations:" + (new Date()).toString());
-            
-            if(!opsCount.await(10000, TimeUnit.MILLISECONDS))
-                Assert.fail("Haven't received all confirmations" + opsCount.getCount());
-
-            for(int i = 0; i < limit ; i++){
-                Assert.assertEquals(0, (int) results.get(i));
-            }
-            
-        } catch (IOException e) {
-            System.out.println(e.toString());
-        } 
-    }
-
-    @SuppressWarnings("unchecked")
-    public void processResult(int rc, String path, Object ctx,
-            List<String> children) { 
-        ((List<Integer>)ctx).add(rc);
-        opsCount.countDown();
-    }
-
-    @SuppressWarnings("unchecked")
-    public void processResult(int rc, String path, Object ctx,
-            List<String> children, Stat stat) { 
-        ((List<Integer>)ctx).add(rc);
-        opsCount.countDown();
-    }
-
-    @SuppressWarnings("unchecked")
-    public void processResult(int rc, String path, Object ctx, String name){
-        ((List<Integer>) ctx).add(rc);
-        opsCount.countDown();
-    
-    }
-
-    @SuppressWarnings("unchecked")
-    public void processResult(int rc, String path, Object ctx){
-        ((List<Integer>) ctx).add(rc);    
-        opsCount.countDown();
-    
-    }
-
-    @Override
-    public void processResult(int rc, String path, Object ctx, String name,
-        Stat stat) {
-      ((List<Integer>) ctx).add(rc);
-      opsCount.countDown();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestHammer.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestHammer.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestHammer.java
deleted file mode 100644
index 3134209..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestHammer.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.AsyncCallback.VoidCallback;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.common.Time;
-
-public class TestHammer implements VoidCallback {
-
-    /**
-     * @param args
-     */
-    static int REPS = 50000;
-    public static void main(String[] args) {
-            long startTime = Time.currentElapsedTime();
-            ZooKeeper zk = null;
-            try {
-                zk = ClientBase.createZKClient(args[0], 10000);
-            } catch (Exception e1) {
-                e1.printStackTrace();
-                throw new RuntimeException(e1);
-            }
-            for(int i = 0; i < REPS; i++) {
-                try {
-                    String name = zk.create("/testFile-", new byte[16], Ids.OPEN_ACL_UNSAFE,
-                        CreateMode.EPHEMERAL_SEQUENTIAL);
-                    zk.delete(name, -1, new TestHammer(), null);
-                } catch(Exception e) {
-                    i--;
-                    e.printStackTrace();
-                }
-            }
-            System.out.println("creates/sec=" + (REPS*1000/(Time.currentElapsedTime()-startTime)));
-    }
-
-    public void processResult(int rc, String path, Object ctx) {
-        // TODO Auto-generated method stub
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestUtils.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestUtils.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestUtils.java
deleted file mode 100644
index 95f02ee..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TestUtils.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.zookeeper.test;
-
-import java.io.File;
-
-import org.junit.Assert;
-
-/**
- * This class contains test utility methods
- */
-public class TestUtils {
-
-    /**
-     * deletes a folder recursively
-     * 
-     * @param file
-     *            folder to be deleted
-     * @param failOnError
-     *            if true file deletion success is ensured
-     */
-    public static boolean deleteFileRecursively(File file,
-            final boolean failOnError) {
-        if (file != null) {
-            if (file.isDirectory()) {
-                File[] files = file.listFiles();
-                int size = files.length;
-                for (int i = 0; i < size; i++) {
-                    File f = files[i];
-                    boolean deleted = deleteFileRecursively(files[i], failOnError);
-                    if(!deleted && failOnError)
-                    {
-                        Assert.fail("file '" + f.getAbsolutePath()+"' deletion failed");
-                    }
-                }
-            }
-            return file.delete();
-        }
-        return true;
-    }
-
-    public static boolean deleteFileRecursively(File file) {
-        return deleteFileRecursively(file, false);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/TruncateTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TruncateTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/TruncateTest.java
deleted file mode 100644
index cae2d9f..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/TruncateTest.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import java.util.HashMap;
-
-import org.apache.jute.Record;
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.KeeperException;
-import org.apache.zookeeper.PortAssignment;
-import org.apache.zookeeper.ZKTestCase;
-import org.apache.zookeeper.ZooDefs;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.Stat;
-import org.apache.zookeeper.server.Request;
-import org.apache.zookeeper.server.ServerCnxnFactory;
-import org.apache.zookeeper.server.ZKDatabase;
-import org.apache.zookeeper.server.ZooKeeperServer;
-import org.apache.zookeeper.server.persistence.FileTxnLog;
-import org.apache.zookeeper.server.persistence.FileTxnSnapLog;
-import org.apache.zookeeper.server.persistence.TxnLog.TxnIterator;
-import org.apache.zookeeper.server.quorum.QuorumPeer;
-import org.apache.zookeeper.server.quorum.QuorumPeer.QuorumServer;
-import org.apache.zookeeper.txn.SetDataTxn;
-import org.apache.zookeeper.txn.TxnHeader;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class TruncateTest extends ZKTestCase {
-	private static final Logger LOG = LoggerFactory.getLogger(TruncateTest.class);
-    File dataDir1, dataDir2, dataDir3;
-    
-    @Before
-    public void setUp() throws IOException {
-        dataDir1 = ClientBase.createTmpDir();
-        dataDir2 = ClientBase.createTmpDir();
-        dataDir3 = ClientBase.createTmpDir();
-    }
-    
-    @After
-    public void tearDown() {
-        ClientBase.recursiveDelete(dataDir1);
-        ClientBase.recursiveDelete(dataDir2);
-        ClientBase.recursiveDelete(dataDir3);
-    }
-    
-    @Test
-    public void testTruncationStreamReset() throws Exception {
-        File tmpdir = ClientBase.createTmpDir();
-        FileTxnSnapLog snaplog = new FileTxnSnapLog(tmpdir, tmpdir);
-        ZKDatabase zkdb = new ZKDatabase(snaplog);
-        // make sure to snapshot, so that we have something there when
-        // truncateLog reloads the db
-        snaplog.save(zkdb.getDataTree(), zkdb.getSessionWithTimeOuts());
-
-        for (int i = 1; i <= 100; i++) {
-            append(zkdb, i);
-        }
-
-        zkdb.truncateLog(1);
-
-        append(zkdb, 200);
-
-        zkdb.close();
-
-        // verify that the truncation and subsequent append were processed
-        // correctly
-        FileTxnLog txnlog = new FileTxnLog(new File(tmpdir, "version-2"));
-        TxnIterator iter = txnlog.read(1);
-
-        TxnHeader hdr = iter.getHeader();
-        Record txn = iter.getTxn();
-        Assert.assertEquals(1, hdr.getZxid());
-        Assert.assertTrue(txn instanceof SetDataTxn);
-
-        iter.next();
-
-        hdr = iter.getHeader();
-        txn = iter.getTxn();
-        Assert.assertEquals(200, hdr.getZxid());
-        Assert.assertTrue(txn instanceof SetDataTxn);
-        iter.close();
-        ClientBase.recursiveDelete(tmpdir);
-    }
-    
-    @Test
-    public void testTruncationNullLog() throws Exception {
-        File tmpdir = ClientBase.createTmpDir();
-        FileTxnSnapLog snaplog = new FileTxnSnapLog(tmpdir, tmpdir);
-        ZKDatabase zkdb = new ZKDatabase(snaplog);
-
-        for (int i = 1; i <= 100; i++) {
-            append(zkdb, i);
-        }
-        zkdb.close();
-        File[] logs = snaplog.getDataDir().listFiles();
-        for(int i = 0; i < logs.length; i++) {
-            LOG.debug("Deleting: {}", logs[i].getName());
-            Assert.assertTrue("Failed to delete log file: " + logs[i].getName(), logs[i].delete());
-        }
-        try {
-            zkdb.truncateLog(1);
-            Assert.assertTrue("Should not get here", false);
-        }
-        catch(IOException e) {
-            Assert.assertTrue("Should have received an IOException", true);
-        }
-        catch(NullPointerException npe) {
-            Assert.fail("This should not throw NPE!");
-        }
- 
-        ClientBase.recursiveDelete(tmpdir);
-    }
-
-    private void append(ZKDatabase zkdb, int i) throws IOException {
-        TxnHeader hdr = new TxnHeader(1, 1, i, 1, ZooDefs.OpCode.setData);
-        Record txn = new SetDataTxn("/foo" + i, new byte[0], 1);
-        Request req = new Request(0, 0, 0, hdr, txn, 0);
-
-        zkdb.append(req);
-        zkdb.commit();
-    }
-
-    @Test
-    public void testTruncate() throws Exception {
-        // Prime the server that is going to come in late with 50 txns
-        String hostPort = "127.0.0.1:" + PortAssignment.unique();
-        int maxCnxns = 100;
-        ServerCnxnFactory factory = ClientBase.createNewServerInstance(null,
-                hostPort, maxCnxns);
-        ClientBase.startServerInstance(dataDir1, factory, hostPort, 1);
-        ClientBase.shutdownServerInstance(factory, hostPort);
-
-        // standalone starts with 0 epoch while quorum starts with 1
-        File origfile = new File(new File(dataDir1, "version-2"), "snapshot.0");
-        File newfile = new File(new File(dataDir1, "version-2"), "snapshot.100000000");
-        origfile.renameTo(newfile);
-
-        factory = ClientBase.createNewServerInstance(null, hostPort, maxCnxns);
-        ClientBase.startServerInstance(dataDir1, factory, hostPort, 1);
-
-        ZooKeeper zk = ClientBase.createZKClient(hostPort, 15000);
-        for(int i = 0; i < 50; i++) {
-            zk.create("/" + i, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-        }
-        zk.close();
-        
-        ZKDatabase zkDb;
-        {
-            ZooKeeperServer zs = ClientBase.getServer(factory);
-    
-            zkDb = zs.getZKDatabase();
-        }
-        factory.shutdown();
-        try {
-            zkDb.close();
-        } catch (IOException ie) {
-            LOG.warn("Error closing logs ", ie);
-        }
-        int tickTime = 2000;
-        int initLimit = 3;
-        int syncLimit = 3;
-
-        int port1 = PortAssignment.unique();
-        int port2 = PortAssignment.unique();
-        int port3 = PortAssignment.unique();
-        
-        // Start up two of the quorum and add 10 txns
-        HashMap<Long,QuorumServer> peers = new HashMap<Long,QuorumServer>();
-        peers.put(Long.valueOf(1), new QuorumServer(1,
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", port1)));
-        peers.put(Long.valueOf(2), new QuorumServer(2,
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", port2)));
-        peers.put(Long.valueOf(3), new QuorumServer(3,
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", PortAssignment.unique()),
-                       new InetSocketAddress("127.0.0.1", port3)));
-
-        QuorumPeer s2 = new QuorumPeer(peers, dataDir2, dataDir2, port2, 0, 2, tickTime, initLimit, syncLimit);
-        s2.start();
-        QuorumPeer s3 = new QuorumPeer(peers, dataDir3, dataDir3, port3, 0, 3, tickTime, initLimit, syncLimit);
-        s3.start();
-        zk = ClientBase.createZKClient("127.0.0.1:" + port2, 15000);
-
-        for(int i = 0; i < 10; i++) {
-            zk.create("/" + i, new byte[0], ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-        }
-        zk.close();
-        final ZooKeeper zk2 = ClientBase.createZKClient("127.0.0.1:" + port2, 15000);
-        zk2.getData("/9", false, new Stat());
-        try {
-            zk2.getData("/10", false, new Stat());
-            Assert.fail("Should have gotten an error");
-        } catch(KeeperException.NoNodeException e) {
-            // this is what we want
-        }
-        QuorumPeer s1 = new QuorumPeer(peers, dataDir1, dataDir1, port1, 0, 1, tickTime, initLimit, syncLimit);
-        s1.start();
-        ZooKeeper zk1 = ClientBase.createZKClient("127.0.0.1:" + port1, 15000);
-        zk1.getData("/9", false, new Stat());
-        try {
-            // /10 wont work because the session expiration
-            // will match the zxid for /10 and so we wont
-            // actually truncate the zxid for /10 creation
-            // due to an artifact of switching the xid of the standalone
-            // /11 is the last entry in the log for the xid
-            // as a result /12 is the first of the truncated znodes to check for
-            zk1.getData("/12", false, new Stat());
-            Assert.fail("Should have gotten an error");
-        } catch(KeeperException.NoNodeException e) {
-            // this is what we want
-        }
-        zk1.close();
-        QuorumBase.shutdown(s1);
-        QuorumBase.shutdown(s2);
-        QuorumBase.shutdown(s3);
-    }
-}

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
deleted file mode 100644
index a760463..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchEventWhenAutoResetTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import java.io.IOException;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.ZooDefs;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.Watcher.Event.EventType;
-import org.apache.zookeeper.test.ClientBase.CountdownWatcher;
-import org.apache.zookeeper.ZKTestCase;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-public class WatchEventWhenAutoResetTest extends ZKTestCase {
-    protected static final Logger LOG = LoggerFactory
-            .getLogger(WatchEventWhenAutoResetTest.class);
-
-    // waiting time for expected condition
-    private static final int TIMEOUT = 30000;
-
-    static public class EventsWatcher extends CountdownWatcher {
-        private LinkedBlockingQueue<WatchedEvent> dataEvents = new LinkedBlockingQueue<WatchedEvent>();
-
-        @Override
-        public void process(WatchedEvent event) {
-            super.process(event);
-            try {
-                if (event.getType() != Event.EventType.None) {
-                    dataEvents.put(event);
-                }
-            } catch (InterruptedException e) {
-                LOG.warn("ignoring interrupt during EventsWatcher process");
-            }
-        }
-
-        public void assertEvent(long timeout, EventType eventType) {
-            try {
-                WatchedEvent event = dataEvents.poll(timeout,
-                        TimeUnit.MILLISECONDS);
-                Assert.assertNotNull("do not receive a " + eventType, event);
-                Assert.assertEquals(eventType, event.getType());
-            } catch (InterruptedException e) {
-                LOG.warn("ignoring interrupt during EventsWatcher assertEvent");
-            }
-        }
-    }
-
-    private ZooKeeper createClient(QuorumUtil qu, int id, EventsWatcher watcher)
-            throws IOException {
-        String hostPort = "127.0.0.1:" + qu.getPeer(id).clientPort;
-        ZooKeeper zk = new ZooKeeper(hostPort, TIMEOUT, watcher);
-        try {
-            watcher.waitForConnected(TIMEOUT);
-        } catch (InterruptedException e) {
-            // ignoring the interrupt
-        } catch (TimeoutException e) {
-            Assert.fail("can not connect to " + hostPort);
-        }
-        return zk;
-    }
-
-    private ZooKeeper createClient(QuorumUtil qu, int id) throws IOException {
-        return createClient(qu, id, new EventsWatcher());
-    }
-
-    @Before
-    public void setUp() {
-        System.setProperty("zookeeper.admin.enableServer", "false");
-    }
-
-    @Test
-    public void testNodeDataChanged() throws Exception {
-        QuorumUtil qu = new QuorumUtil(1);
-        qu.startAll();
-
-        EventsWatcher watcher = new EventsWatcher();
-        ZooKeeper zk1 = createClient(qu, 1, watcher);
-        ZooKeeper zk2 = createClient(qu, 2);
-
-        String path = "/test-changed";
-
-        zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        zk1.getData(path, watcher, null);
-        qu.shutdown(1);
-        zk2.delete(path, -1);
-        zk2.create(path, new byte[2], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT);
-        watcher.assertEvent(TIMEOUT, EventType.NodeDataChanged);
-
-        zk1.exists(path, watcher);
-        qu.shutdown(1);
-        zk2.delete(path, -1);
-        zk2.create(path, new byte[2], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeDataChanged);
-
-        qu.shutdownAll();
-    }
-
-    @Test
-    public void testNodeCreated() throws Exception {
-        QuorumUtil qu = new QuorumUtil(1);
-        qu.startAll();
-
-        EventsWatcher watcher = new EventsWatcher();
-        ZooKeeper zk1 = createClient(qu, 1, watcher);
-        ZooKeeper zk2 = createClient(qu, 2);
-
-        String path = "/test1-created";
-
-        zk1.exists(path, watcher);
-        qu.shutdown(1);
-        zk2.create(path, new byte[2], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeCreated);
-
-        qu.shutdownAll();
-    }
-
-    @Test
-    public void testNodeDeleted() throws Exception {
-        QuorumUtil qu = new QuorumUtil(1);
-        qu.startAll();
-
-        EventsWatcher watcher = new EventsWatcher();
-        ZooKeeper zk1 = createClient(qu, 1, watcher);
-        ZooKeeper zk2 = createClient(qu, 2);
-
-        String path = "/test-deleted";
-
-        zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        zk1.getData(path, watcher, null);
-        qu.shutdown(1);
-        zk2.delete(path, -1);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeDeleted);
-
-        zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        zk1.exists(path, watcher);
-        qu.shutdown(1);
-        zk2.delete(path, -1);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeDeleted);
-
-        zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        zk1.getChildren(path, watcher);
-        qu.shutdown(1);
-        zk2.delete(path, -1);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeDeleted);
-
-        qu.shutdownAll();
-    }
-
-    @Test
-    public void testNodeChildrenChanged() throws Exception {
-        QuorumUtil qu = new QuorumUtil(1);
-        qu.startAll();
-
-        EventsWatcher watcher = new EventsWatcher();
-        ZooKeeper zk1 = createClient(qu, 1, watcher);
-        ZooKeeper zk2 = createClient(qu, 2);
-
-        String path = "/test-children-changed";
-
-        zk1.create(path, new byte[1], ZooDefs.Ids.OPEN_ACL_UNSAFE,
-                CreateMode.PERSISTENT);
-        zk1.getChildren(path, watcher);
-        qu.shutdown(1);
-        zk2.create(path + "/children-1", new byte[2],
-                ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-        qu.start(1);
-        watcher.waitForConnected(TIMEOUT * 1000L);
-        watcher.assertEvent(TIMEOUT, EventType.NodeChildrenChanged);
-
-        qu.shutdownAll();
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/zookeeper/blob/43d71c2e/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java
----------------------------------------------------------------------
diff --git a/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java b/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java
deleted file mode 100644
index 75ec3dd..0000000
--- a/zookeeper-common/src/test/java/org/apache/zookeeper/test/WatchedEventTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.zookeeper.test;
-
-import java.util.EnumSet;
-
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.ZKTestCase;
-import org.apache.zookeeper.Watcher.Event.EventType;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.proto.WatcherEvent;
-import org.junit.Assert;
-import org.junit.Test;
-
-public class WatchedEventTest extends ZKTestCase {
-
-    @Test
-    public void testCreatingWatchedEvent() {
-        // EventWatch is a simple, immutable type, so all we need to do
-       // is make sure we can create all possible combinations of values.
-
-        EnumSet<EventType> allTypes = EnumSet.allOf(EventType.class);
-       EnumSet<KeeperState> allStates = EnumSet.allOf(KeeperState.class);
-       WatchedEvent we;
-
-        for(EventType et : allTypes) {
-           for(KeeperState ks : allStates) {
-               we = new WatchedEvent(et, ks, "blah");
-               Assert.assertEquals(et, we.getType());
-               Assert.assertEquals(ks, we.getState());
-               Assert.assertEquals("blah", we.getPath());
-           }
-        }
-    }
-
-    @Test
-    public void testCreatingWatchedEventFromWrapper() {
-        // Make sure we can handle any type of correct wrapper
-
-        EnumSet<EventType> allTypes = EnumSet.allOf(EventType.class);
-       EnumSet<KeeperState> allStates = EnumSet.allOf(KeeperState.class);
-       WatchedEvent we;
-       WatcherEvent wep;
-
-        for(EventType et : allTypes) {
-           for(KeeperState ks : allStates) {
-               wep = new WatcherEvent(et.getIntValue(), ks.getIntValue(), "blah");
-               we = new WatchedEvent(wep);
-               Assert.assertEquals(et, we.getType());
-               Assert.assertEquals(ks, we.getState());
-               Assert.assertEquals("blah", we.getPath());
-           }
-        }
-    }
-
-    @Test
-    public void testCreatingWatchedEventFromInvalidWrapper() {
-        // Make sure we can't convert from an invalid wrapper
-
-       try {
-           WatcherEvent wep = new WatcherEvent(-2342, -252352, "foo");
-           new WatchedEvent(wep);
-           Assert.fail("Was able to create WatchedEvent from bad wrapper");
-       } catch (RuntimeException re) {
-           // we're good
-       }
-    }
-
-   @Test
-   public void testConvertingToEventWrapper() {
-       WatchedEvent we = new WatchedEvent(EventType.NodeCreated, KeeperState.Expired, "blah");
-       WatcherEvent wew = we.getWrapper();
-
-       Assert.assertEquals(EventType.NodeCreated.getIntValue(), wew.getType());
-       Assert.assertEquals(KeeperState.Expired.getIntValue(), wew.getState());
-       Assert.assertEquals("blah", wew.getPath());
-   }
-}


Mime
View raw message