You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by zz...@apache.org on 2014/07/22 20:40:25 UTC

[7/9] [HELIX-475] Remove code duplication for Zk tests

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
index 59e1b27..eef3826 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestAutoRebalancePartitionLimit.java
@@ -59,10 +59,10 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
     System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis()));
 
     String namespace = "/" + CLUSTER_NAME;
-    if (_gZkClient.exists(namespace)) {
-      _gZkClient.deleteRecursive(namespace);
+    if (_zkclient.exists(namespace)) {
+      _zkclient.deleteRecursive(namespace);
     }
-    _setupTool = new ClusterSetup(_gZkClient);
+    _setupTool = new ClusterSetup(_zkclient);
 
     // setup storage cluster
     _setupTool.addCluster(CLUSTER_NAME, true);
@@ -70,26 +70,26 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
     _setupTool.addResourceToCluster(CLUSTER_NAME, TEST_DB, 100, "OnlineOffline",
         RebalanceMode.FULL_AUTO + "", 0, 25);
     for (int i = 0; i < NODE_NR; i++) {
-      String storageNodeName = PARTICIPANT_PREFIX + "_" + (START_PORT + i);
+      String storageNodeName = "localhost_" + (START_PORT + i);
       _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName);
     }
     _setupTool.rebalanceStorageCluster(CLUSTER_NAME, TEST_DB, 1);
 
     // start controller
-    String controllerName = CONTROLLER_PREFIX + "_0";
-    _controller = new ClusterControllerManager(ZK_ADDR, CLUSTER_NAME, controllerName);
+    String controllerName = "controller_0";
+    _controller = new ClusterControllerManager(_zkaddr, CLUSTER_NAME, controllerName);
     _controller.syncStart();
 
     HelixManager manager = _controller; // _startCMResultMap.get(controllerName)._manager;
     HelixDataAccessor accessor = manager.getHelixDataAccessor();
     // start dummy participants
     for (int i = 0; i < NODE_NR; i++) {
-      String instanceName = PARTICIPANT_PREFIX + "_" + (START_PORT + i);
-      _participants[i] = new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, instanceName);
+      String instanceName = "localhost_" + (START_PORT + i);
+      _participants[i] = new MockParticipantManager(_zkaddr, CLUSTER_NAME, instanceName);
       _participants[i].syncStart();
       Thread.sleep(2000);
       boolean result =
-          ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+          ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
               CLUSTER_NAME, TEST_DB));
       Assert.assertTrue(result);
       ExternalView ev =
@@ -103,7 +103,7 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
             CLUSTER_NAME, TEST_DB));
 
     Assert.assertTrue(result);
@@ -117,7 +117,7 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
 
     // verifyBalanceExternalView();
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
             CLUSTER_NAME, TEST_DB));
     Assert.assertTrue(result);
     final HelixDataAccessor accessor = manager.getHelixDataAccessor();
@@ -129,7 +129,7 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
 
     // verifyBalanceExternalView();
     result =
-        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
             CLUSTER_NAME, TEST_DB));
     Assert.assertTrue(result);
     result = TestHelper.verify(new TestHelper.Verifier() {
@@ -143,18 +143,18 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
 
     // add 2 nodes
     for (int i = 0; i < 2; i++) {
-      String storageNodeName = PARTICIPANT_PREFIX + "_" + (1000 + i);
+      String storageNodeName = "localhost_" + (1000 + i);
       _setupTool.addInstanceToCluster(CLUSTER_NAME, storageNodeName);
 
       String newInstanceName = storageNodeName.replace(':', '_');
       MockParticipantManager participant =
-          new MockParticipantManager(ZK_ADDR, CLUSTER_NAME, newInstanceName);
+          new MockParticipantManager(_zkaddr, CLUSTER_NAME, newInstanceName);
       participant.syncStart();
     }
 
     // Thread.sleep(1000);
     result =
-        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
             CLUSTER_NAME, TEST_DB));
     Assert.assertTrue(result);
   }
@@ -204,19 +204,18 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
 
   }
 
-  public static class ExternalViewBalancedVerifier implements ZkVerifier {
-    String _clusterName;
+  public static class ExternalViewBalancedVerifier extends ZkVerifier {
     String _resourceName;
 
     public ExternalViewBalancedVerifier(ZkClient client, String clusterName, String resourceName) {
-      _clusterName = clusterName;
+      super(clusterName, client);
       _resourceName = resourceName;
     }
 
     @Override
     public boolean verify() {
       HelixDataAccessor accessor =
-          new ZKHelixDataAccessor(_clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+          new ZKHelixDataAccessor(getClusterName(), _baseAccessor);
       Builder keyBuilder = accessor.keyBuilder();
       IdealState idealState = accessor.getProperty(keyBuilder.idealStates(_resourceName));
       int numberOfPartitions = idealState.getRecord().getListFields().size();
@@ -231,15 +230,5 @@ public class TestAutoRebalancePartitionLimit extends ZkStandAloneCMTestBase {
           .getRecord(), numberOfPartitions, masterValue.toString(), replicas,
           liveInstanceMap.size(), idealState.getMaxPartitionsPerInstance());
     }
-
-    @Override
-    public ZkClient getZkClient() {
-      return _gZkClient;
-    }
-
-    @Override
-    public String getClusterName() {
-      return _clusterName;
-    }
   }
 }

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestBasicSpectator.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestBasicSpectator.java b/helix-core/src/test/java/org/apache/helix/integration/TestBasicSpectator.java
index bc09339..54dd97c 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestBasicSpectator.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestBasicSpectator.java
@@ -40,7 +40,7 @@ public class TestBasicSpectator extends ZkStandAloneCMTestBase implements
   @Test
   public void TestSpectator() throws Exception {
     HelixManager relayHelixManager =
-        HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, null, InstanceType.SPECTATOR, ZK_ADDR);
+        HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, null, InstanceType.SPECTATOR, _zkaddr);
 
     relayHelixManager.connect();
     relayHelixManager.addExternalViewChangeListener(this);
@@ -50,7 +50,7 @@ public class TestBasicSpectator extends ZkStandAloneCMTestBase implements
 
     boolean result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, CLUSTER_NAME));
+            _zkaddr, CLUSTER_NAME));
     Assert.assertTrue(result);
 
     Assert.assertTrue(_externalViewChanges.containsKey("NextDB"));

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessage.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessage.java b/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessage.java
index af079c1..099d47f 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessage.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessage.java
@@ -37,13 +37,14 @@ import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.mock.participant.ErrTransition;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.LiveInstance;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestBatchMessage extends ZkIntegrationTestBase {
+public class TestBatchMessage extends ZkTestBase {
   class TestZkChildListener implements IZkChildListener {
     int _maxNbOfChilds = 0;
 
@@ -67,7 +68,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -78,7 +79,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     // enable batch message
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkclient));
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
     idealState.setBatchMessageMode(true);
@@ -86,10 +87,10 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     // register a message listener so we know how many message generated
     TestZkChildListener listener = new TestZkChildListener();
-    _gZkClient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
+    _zkclient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
@@ -97,12 +98,12 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
     Assert.assertTrue(listener._maxNbOfChilds <= 2,
@@ -129,7 +130,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -139,7 +140,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
         "MasterSlave", true); // do rebalance
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
@@ -147,12 +148,12 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
@@ -163,7 +164,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     // enable batch message
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkclient));
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
     idealState.setBatchMessageMode(true);
@@ -171,18 +172,18 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     // registry a message listener so we know how many message generated
     TestZkChildListener listener = new TestZkChildListener();
-    _gZkClient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
+    _zkclient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
 
     // restart all participants
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
     Assert.assertTrue(listener._maxNbOfChilds <= 2,
@@ -209,7 +210,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, "localhost", "TestDB", 1, // resource#
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, "localhost", "TestDB", 1, // resource#
         6, // partition#
         n, // nodes#
         3, // replicas#
@@ -217,7 +218,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     // enable batch message
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkclient));
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
     idealState.setBatchMessageMode(true);
@@ -227,7 +228,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     final String partitionToFail = "TestDB0_4";
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     for (int i = 0; i < n; i++) {
@@ -236,10 +237,10 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
       if (instanceName.equals(hostToFail)) {
         Map<String, Set<String>> errPartitions = new HashMap<String, Set<String>>();
         errPartitions.put("SLAVE-MASTER", TestHelper.setOf("TestDB0_4"));
-        participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+        participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
         participants[i].setTransition(new ErrTransition(errPartitions));
       } else {
-        participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+        participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       }
       participants[i].syncStart();
     }
@@ -249,14 +250,14 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     errStates.get("TestDB0").put(partitionToFail, hostToFail);
     boolean result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, clusterName, errStates));
+            _zkaddr, clusterName, errStates));
     Assert.assertTrue(result);
 
     Map<String, Set<String>> errorStateMap = new HashMap<String, Set<String>>();
     errorStateMap.put(partitionToFail, TestHelper.setOf(hostToFail));
 
     // verify "TestDB0_4", "localhost_12919" is in ERROR state
-    TestHelper.verifyState(clusterName, ZK_ADDR, errorStateMap, "ERROR");
+    TestHelper.verifyState(clusterName, _zkaddr, errorStateMap, "ERROR");
 
     System.out.println("END " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
@@ -272,7 +273,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -284,26 +285,26 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     // enable batch message
     // --addResourceProperty <clusterName resourceName propertyName propertyValue>
     ClusterSetup.processCommandLineArgs(new String[] {
-        "--zkSvr", ZK_ADDR, "--addResourceProperty", clusterName, "TestDB0",
+        "--zkSvr", _zkaddr, "--addResourceProperty", clusterName, "TestDB0",
         HelixPropertyAttribute.BATCH_MESSAGE_MODE.toString(), "true"
     });
 
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_zkclient));
     Builder keyBuilder = accessor.keyBuilder();
 
     // register a message listener so we know how many message generated
     TestZkChildListener listener = new TestZkChildListener();
-    _gZkClient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
+    _zkclient.subscribeChildChanges(keyBuilder.messages("localhost_12918").getPath(), listener);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // pause controller
     // --enableCluster <clusterName true/false>
     ClusterSetup.processCommandLineArgs(new String[] {
-        "--zkSvr", ZK_ADDR, "--enableCluster", clusterName, "false"
+        "--zkSvr", _zkaddr, "--enableCluster", clusterName, "false"
     });
 
     // start participants
@@ -311,7 +312,7 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
@@ -323,11 +324,11 @@ public class TestBatchMessage extends ZkIntegrationTestBase {
     // resume controller
     // --enableCluster <clusterName true/false>
     ClusterSetup.processCommandLineArgs(new String[] {
-        "--zkSvr", ZK_ADDR, "--enableCluster", clusterName, "true"
+        "--zkSvr", _zkaddr, "--enableCluster", clusterName, "true"
     });
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
     Assert.assertTrue(listener._maxNbOfChilds > 16,

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessageWrapper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessageWrapper.java b/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessageWrapper.java
index 9bfdfb5..a1f2b4d 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessageWrapper.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestBatchMessageWrapper.java
@@ -24,22 +24,20 @@ import java.util.Date;
 import org.apache.helix.NotificationContext;
 import org.apache.helix.PropertyKey.Builder;
 import org.apache.helix.TestHelper;
-import org.apache.helix.ZNRecord;
-import org.apache.helix.ZkUnitTestBase;
 import org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixDataAccessor;
-import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.messaging.handling.BatchMessageWrapper;
 import org.apache.helix.mock.participant.MockMSModelFactory;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.Message;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestBatchMessageWrapper extends ZkUnitTestBase {
+public class TestBatchMessageWrapper extends ZkTestBase {
   class MockBatchMsgWrapper extends BatchMessageWrapper {
     int _startCount = 0;
     int _endCount = 0;
@@ -73,7 +71,7 @@ public class TestBatchMessageWrapper extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // startPort
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // startPort
         "localhost", // participantNamePrefix
         "TestDB", // resourceNamePrefix
         1, // resourceNb
@@ -84,14 +82,14 @@ public class TestBatchMessageWrapper extends ZkUnitTestBase {
 
     // enable batch-message
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, _baseAccessor);
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
     idealState.setBatchMessageMode(true);
     accessor.setProperty(keyBuilder.idealStates("TestDB0"), idealState);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
@@ -101,7 +99,7 @@ public class TestBatchMessageWrapper extends ZkUnitTestBase {
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
       ftys[i] = new TestMockMSModelFactory();
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].getStateMachineEngine().registerStateModelFactory("MasterSlave", ftys[i]);
       participants[i].syncStart();
 
@@ -110,7 +108,7 @@ public class TestBatchMessageWrapper extends ZkUnitTestBase {
       do {
         Thread.sleep(100);
         result =
-            ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+            ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
       } while (result == false);
 

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java b/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
index 51b0d3c..0c97b13 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestBucketizedResource.java
@@ -29,13 +29,14 @@ import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixDataAccessor;
 import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.model.IdealState;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestBucketizedResource extends ZkIntegrationTestBase {
+public class TestBucketizedResource extends ZkTestBase {
   @Test()
   public void testBucketizedResource() throws Exception {
     // Logger.getRootLogger().setLevel(Level.INFO);
@@ -48,7 +49,7 @@ public class TestBucketizedResource extends ZkIntegrationTestBase {
     MockParticipantManager[] participants = new MockParticipantManager[5];
     // ClusterSetup setupTool = new ClusterSetup(ZK_ADDR);
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -57,7 +58,7 @@ public class TestBucketizedResource extends ZkIntegrationTestBase {
         3, // replicas
         "MasterSlave", true); // do rebalance
 
-    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
+    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_zkclient);
     ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
     // String idealStatePath = PropertyPathConfig.getPath(PropertyType.IDEALSTATES, clusterName,
     // "TestDB0");
@@ -67,24 +68,24 @@ public class TestBucketizedResource extends ZkIntegrationTestBase {
     accessor.setProperty(keyBuilder.idealStates("TestDB0"), idealState);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < 5; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR, clusterName));
+            .verifyByZkCallback(new MasterNbInExtViewVerifier(_zkaddr, clusterName));
     Assert.assertTrue(result);
 
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestCMWithFailParticipant.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCMWithFailParticipant.java b/helix-core/src/test/java/org/apache/helix/integration/TestCMWithFailParticipant.java
index 453bea6..e533250 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCMWithFailParticipant.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCMWithFailParticipant.java
@@ -21,24 +21,10 @@ package org.apache.helix.integration;
 
 import java.util.Date;
 
+import org.apache.helix.testutil.ZkTestBase;
 import org.testng.annotations.Test;
 
-public class TestCMWithFailParticipant extends ZkIntegrationTestBase {
-  // ZkClient _zkClient;
-  //
-  // @BeforeClass ()
-  // public void beforeClass() throws Exception
-  // {
-  // _zkClient = new ZkClient(ZK_ADDR);
-  // _zkClient.setZkSerializer(new ZNRecordSerializer());
-  // }
-  //
-  //
-  // @AfterClass
-  // public void afterClass()
-  // {
-  // _zkClient.close();
-  // }
+public class TestCMWithFailParticipant extends ZkTestBase {
 
   @Test()
   public void testCMWithFailParticipant() throws Exception {
@@ -52,16 +38,16 @@ public class TestCMWithFailParticipant extends ZkIntegrationTestBase {
             + "_r" + replica;
     System.out.println("START " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestDriver.setupCluster(uniqClusterName, ZK_ADDR, numResources, numPartitionsPerResource,
+    TestDriver.setupCluster(uniqClusterName, _zkaddr, numResources, numPartitionsPerResource,
         numInstance, replica);
 
     for (int i = 0; i < numInstance; i++) {
-      TestDriver.startDummyParticipant(uniqClusterName, i);
+      TestDriver.startDummyParticipant(_zkaddr, uniqClusterName, i);
     }
-    TestDriver.startController(uniqClusterName);
+    TestDriver.startController(_zkaddr, uniqClusterName);
 
     TestDriver.stopDummyParticipant(uniqClusterName, 2000, 0);
-    TestDriver.verifyCluster(uniqClusterName, 3000, 50 * 1000);
+    TestDriver.verifyCluster(_zkaddr, uniqClusterName, 3000, 50 * 1000);
     TestDriver.stopCluster(uniqClusterName);
 
     System.out.println("END " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestCarryOverBadCurState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCarryOverBadCurState.java b/helix-core/src/test/java/org/apache/helix/integration/TestCarryOverBadCurState.java
index 97b6ebb..aa0bf33 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCarryOverBadCurState.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCarryOverBadCurState.java
@@ -27,21 +27,24 @@ import org.apache.helix.TestHelper;
 import org.apache.helix.ZNRecord;
 import org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
+import org.apache.helix.testutil.TestUtil;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.MasterNbInExtViewVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestCarryOverBadCurState extends ZkIntegrationTestBase {
+public class TestCarryOverBadCurState extends ZkTestBase {
   @Test
   public void testCarryOverBadCurState() throws Exception {
     System.out.println("START testCarryOverBadCurState at " + new Date(System.currentTimeMillis()));
 
-    String clusterName = getShortClassName();
+    String testName = TestUtil.getTestName();
+    String clusterName = testName;
     MockParticipantManager[] participants = new MockParticipantManager[5];
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -55,28 +58,28 @@ public class TestCarryOverBadCurState extends ZkIntegrationTestBase {
     String path =
         PropertyPathConfig.getPath(PropertyType.CURRENTSTATES, clusterName, "localhost_12918",
             "session_0", "TestDB0");
-    _gZkClient.createPersistent(path, true);
-    _gZkClient.writeData(path, badCurState);
+    _zkclient.createPersistent(path, true);
+    _zkclient.writeData(path, badCurState);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < 5; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new MasterNbInExtViewVerifier(ZK_ADDR, clusterName));
+            .verifyByZkCallback(new MasterNbInExtViewVerifier(_zkaddr, clusterName));
     Assert.assertTrue(result);
 
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java b/helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java
index 071fd13..521864b 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCleanupExternalView.java
@@ -23,16 +23,14 @@ import java.util.Date;
 
 import org.apache.helix.PropertyKey;
 import org.apache.helix.TestHelper;
-import org.apache.helix.ZNRecord;
 import org.apache.helix.ZkTestHelper;
-import org.apache.helix.ZkUnitTestBase;
 import org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixAdmin;
 import org.apache.helix.manager.zk.ZKHelixDataAccessor;
-import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.LiveInstance;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -41,7 +39,7 @@ import org.testng.annotations.Test;
  * Test clean external-view - if current-state is remove externally, controller should remove the
  * orphan external-view
  */
-public class TestCleanupExternalView extends ZkUnitTestBase {
+public class TestCleanupExternalView extends ZkTestBase {
   @Test
   public void test() throws Exception {
     // Logger.getRootLogger().setLevel(Level.INFO);
@@ -52,7 +50,7 @@ public class TestCleanupExternalView extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -62,7 +60,7 @@ public class TestCleanupExternalView extends ZkUnitTestBase {
         "MasterSlave", true); // do rebalance
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
@@ -70,18 +68,18 @@ public class TestCleanupExternalView extends ZkUnitTestBase {
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 
     // disable controller
-    ZKHelixAdmin admin = new ZKHelixAdmin(_gZkClient);
+    ZKHelixAdmin admin = new ZKHelixAdmin(_zkclient);
     admin.enableCluster(clusterName, false);
     // wait all pending zk-events being processed, otherwise remove current-state will cause
     // controller send O->S message
@@ -94,7 +92,7 @@ public class TestCleanupExternalView extends ZkUnitTestBase {
     // delete current-state manually, controller shall remove external-view when cluster is enabled
     // again
     ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(clusterName, _baseAccessor);
     PropertyKey.Builder keyBuilder = accessor.keyBuilder();
 
     // System.out.println("remove current-state");

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestClusterStartsup.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestClusterStartsup.java b/helix-core/src/test/java/org/apache/helix/integration/TestClusterStartsup.java
index e844a27..afe35f5 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestClusterStartsup.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestClusterStartsup.java
@@ -39,10 +39,9 @@ public class TestClusterStartsup extends ZkStandAloneCMTestBase {
     System.out.println("START " + CLASS_NAME + " at " + new Date(System.currentTimeMillis()));
 
     String namespace = "/" + CLUSTER_NAME;
-    if (_gZkClient.exists(namespace)) {
-      _gZkClient.deleteRecursive(namespace);
+    if (_zkclient.exists(namespace)) {
+      _zkclient.deleteRecursive(namespace);
     }
-    _setupTool = new ClusterSetup(ZK_ADDR);
 
     // setup storage cluster
     _setupTool.addCluster(CLUSTER_NAME, true);
@@ -70,13 +69,13 @@ public class TestClusterStartsup extends ZkStandAloneCMTestBase {
     setupCluster();
     String controllerMsgPath =
         HelixUtil.getControllerPropertyPath(CLUSTER_NAME, PropertyType.MESSAGES_CONTROLLER);
-    _gZkClient.deleteRecursive(controllerMsgPath);
+    _zkclient.deleteRecursive(controllerMsgPath);
     HelixManager manager = null;
 
     try {
       manager =
           HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "localhost_" + (START_PORT + 1),
-              InstanceType.PARTICIPANT, ZK_ADDR);
+              InstanceType.PARTICIPANT, _zkaddr);
       manager.connect();
       Assert.fail("Should fail on connect() since cluster structure is not set up");
     } catch (HelixException e) {
@@ -90,7 +89,7 @@ public class TestClusterStartsup extends ZkStandAloneCMTestBase {
     try {
       manager =
           HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "localhost_" + (START_PORT + 3),
-              InstanceType.PARTICIPANT, ZK_ADDR);
+              InstanceType.PARTICIPANT, _zkaddr);
       manager.connect();
       Assert.fail("Should fail on connect() since cluster structure is not set up");
     } catch (HelixException e) {
@@ -103,12 +102,12 @@ public class TestClusterStartsup extends ZkStandAloneCMTestBase {
 
     setupCluster();
     String stateModelPath = HelixUtil.getStateModelDefinitionPath(CLUSTER_NAME);
-    _gZkClient.deleteRecursive(stateModelPath);
+    _zkclient.deleteRecursive(stateModelPath);
 
     try {
       manager =
           HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "localhost_" + (START_PORT + 1),
-              InstanceType.PARTICIPANT, ZK_ADDR);
+              InstanceType.PARTICIPANT, _zkaddr);
       manager.connect();
       Assert.fail("Should fail on connect() since cluster structure is not set up");
     } catch (HelixException e) {
@@ -122,12 +121,12 @@ public class TestClusterStartsup extends ZkStandAloneCMTestBase {
     String instanceStatusUpdatePath =
         HelixUtil.getInstancePropertyPath(CLUSTER_NAME, "localhost_" + (START_PORT + 1),
             PropertyType.STATUSUPDATES);
-    _gZkClient.deleteRecursive(instanceStatusUpdatePath);
+    _zkclient.deleteRecursive(instanceStatusUpdatePath);
 
     try {
       manager =
           HelixManagerFactory.getZKHelixManager(CLUSTER_NAME, "localhost_" + (START_PORT + 1),
-              InstanceType.PARTICIPANT, ZK_ADDR);
+              InstanceType.PARTICIPANT, _zkaddr);
       manager.connect();
       Assert.fail("Should fail on connect() since cluster structure is not set up");
     } catch (HelixException e) {

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestCustomIdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCustomIdealState.java b/helix-core/src/test/java/org/apache/helix/integration/TestCustomIdealState.java
index 5467932..610d574 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCustomIdealState.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCustomIdealState.java
@@ -22,15 +22,12 @@ package org.apache.helix.integration;
 import java.util.Date;
 
 import org.apache.helix.TestHelper;
-import org.apache.helix.manager.zk.ZNRecordSerializer;
-import org.apache.helix.manager.zk.ZkClient;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.log4j.Logger;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
 import org.testng.annotations.Test;
 
-public class TestCustomIdealState extends ZkIntegrationTestBase {
+public class TestCustomIdealState extends ZkTestBase {
   private static Logger LOG = Logger.getLogger(TestCustomIdealState.class);
 
   @Test
@@ -46,16 +43,16 @@ public class TestCustomIdealState extends ZkIntegrationTestBase {
             + numInstance + "_r" + replica + "_basic";
     System.out.println("START " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestDriver.setupClusterWithoutRebalance(uniqClusterName, ZK_ADDR, numResources,
+    TestDriver.setupClusterWithoutRebalance(uniqClusterName, _zkaddr, numResources,
         numPartitionsPerResource, numInstance, replica);
 
     for (int i = 0; i < numInstance; i++) {
-      TestDriver.startDummyParticipant(uniqClusterName, i);
+      TestDriver.startDummyParticipant(_zkaddr, uniqClusterName, i);
     }
-    TestDriver.startController(uniqClusterName);
+    TestDriver.startController(_zkaddr, uniqClusterName);
 
-    TestDriver.setIdealState(uniqClusterName, 2000, 50);
-    TestDriver.verifyCluster(uniqClusterName, 3000, 50 * 1000);
+    TestDriver.setIdealState(_zkaddr, uniqClusterName, 2000, 50);
+    TestDriver.verifyCluster(_zkaddr, uniqClusterName, 3000, 50 * 1000);
 
     TestDriver.stopCluster(uniqClusterName);
 
@@ -74,25 +71,25 @@ public class TestCustomIdealState extends ZkIntegrationTestBase {
             + numInstance + "_r" + replica + "_nonalive";
     System.out.println("START " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestDriver.setupClusterWithoutRebalance(uniqClusterName, ZK_ADDR, numResources,
+    TestDriver.setupClusterWithoutRebalance(uniqClusterName, _zkaddr, numResources,
         numPartitionsPerResource, numInstance, replica);
 
     for (int i = 0; i < numInstance / 2; i++) {
-      TestDriver.startDummyParticipant(uniqClusterName, i);
+      TestDriver.startDummyParticipant(_zkaddr, uniqClusterName, i);
     }
 
-    TestDriver.startController(uniqClusterName);
-    TestDriver.setIdealState(uniqClusterName, 0, 100);
+    TestDriver.startController(_zkaddr, uniqClusterName);
+    TestDriver.setIdealState(_zkaddr, uniqClusterName, 0, 100);
 
     // wait some time for customized ideal state being populated
     Thread.sleep(1000);
 
     // start the rest of participants after ideal state is set
     for (int i = numInstance / 2; i < numInstance; i++) {
-      TestDriver.startDummyParticipant(uniqClusterName, i);
+      TestDriver.startDummyParticipant(_zkaddr, uniqClusterName, i);
     }
 
-    TestDriver.verifyCluster(uniqClusterName, 4000, 50 * 1000);
+    TestDriver.verifyCluster(_zkaddr, uniqClusterName, 4000, 50 * 1000);
 
     TestDriver.stopCluster(uniqClusterName);
 
@@ -112,23 +109,22 @@ public class TestCustomIdealState extends ZkIntegrationTestBase {
             + numInstance + "_r" + replica + "_drop";
 
     System.out.println("START " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));
-    TestDriver.setupClusterWithoutRebalance(uniqClusterName, ZK_ADDR, numResources,
+    TestDriver.setupClusterWithoutRebalance(uniqClusterName, _zkaddr, numResources,
         numPartitionsPerResource, numInstance, replica);
 
     for (int i = 0; i < numInstance; i++) {
-      TestDriver.startDummyParticipant(uniqClusterName, i);
+      TestDriver.startDummyParticipant(_zkaddr, uniqClusterName, i);
     }
-    TestDriver.startController(uniqClusterName);
-    TestDriver.setIdealState(uniqClusterName, 2000, 50);
-    TestDriver.verifyCluster(uniqClusterName, 3000, 50 * 1000);
+    TestDriver.startController(_zkaddr, uniqClusterName);
+    TestDriver.setIdealState(_zkaddr, uniqClusterName, 2000, 50);
+    TestDriver.verifyCluster(_zkaddr, uniqClusterName, 3000, 50 * 1000);
 
     // drop resource group
-    ClusterSetup setup = new ClusterSetup(ZK_ADDR);
-    setup.dropResourceFromCluster(uniqClusterName, "TestDB0");
+    _setupTool.dropResourceFromCluster(uniqClusterName, "TestDB0");
 
     TestHelper.verifyWithTimeout("verifyEmptyCurStateAndExtView", 30 * 1000, uniqClusterName,
         "TestDB0", TestHelper.<String> setOf("localhost_12918", "localhost_12919",
-            "localhost_12920", "localhost_12921", "localhost_12922"), ZK_ADDR);
+            "localhost_12920", "localhost_12921", "localhost_12922"), _zkaddr);
 
     TestDriver.stopCluster(uniqClusterName);
     System.out.println("STOP " + uniqClusterName + " at " + new Date(System.currentTimeMillis()));

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java b/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
index 33b95c1..73f7e82 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestCustomizedIdealStateRebalancer.java
@@ -115,12 +115,12 @@ public class TestCustomizedIdealStateRebalancer extends
     _setupTool.rebalanceStorageCluster(CLUSTER_NAME, db2, 3);
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_gZkClient,
+        ClusterStateVerifier.verifyByZkCallback(new ExternalViewBalancedVerifier(_zkclient,
             CLUSTER_NAME, db2));
     Assert.assertTrue(result);
     Thread.sleep(1000);
     HelixDataAccessor accessor =
-        new ZKHelixDataAccessor(CLUSTER_NAME, new ZkBaseDataAccessor<ZNRecord>(_gZkClient));
+        new ZKHelixDataAccessor(CLUSTER_NAME, _baseAccessor);
     Builder keyBuilder = accessor.keyBuilder();
     ExternalView ev = accessor.getProperty(keyBuilder.externalView(db2));
     Assert.assertEquals(ev.getPartitionSet().size(), 60);
@@ -141,14 +141,11 @@ public class TestCustomizedIdealStateRebalancer extends
     Assert.assertNotNull(holder.getContext());
   }
 
-  public static class ExternalViewBalancedVerifier implements ZkVerifier {
-    ZkClient _client;
-    String _clusterName;
+  public static class ExternalViewBalancedVerifier extends ZkVerifier {
     String _resourceName;
 
     public ExternalViewBalancedVerifier(ZkClient client, String clusterName, String resourceName) {
-      _client = client;
-      _clusterName = clusterName;
+      super(clusterName, client);
       _resourceName = resourceName;
     }
 
@@ -156,7 +153,7 @@ public class TestCustomizedIdealStateRebalancer extends
     public boolean verify() {
       try {
         HelixDataAccessor accessor =
-            new ZKHelixDataAccessor(_clusterName, new ZkBaseDataAccessor<ZNRecord>(_client));
+            new ZKHelixDataAccessor(getClusterName(), _baseAccessor);
         Builder keyBuilder = accessor.keyBuilder();
         IdealState idealState = accessor.getProperty(keyBuilder.idealStates(_resourceName));
         int numberOfPartitions = idealState.getRecord().getListFields().size();
@@ -187,16 +184,6 @@ public class TestCustomizedIdealStateRebalancer extends
       }
     }
 
-    @Override
-    public ZkClient getZkClient() {
-      return _client;
-    }
-
-    @Override
-    public String getClusterName() {
-      return _clusterName;
-    }
-
   }
 
   static boolean verifyBalanceExternalView(ZNRecord externalView, int partitionCount,

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
index cc7fd5f..ce88a34 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisable.java
@@ -33,13 +33,14 @@ import org.apache.helix.manager.zk.ZKHelixDataAccessor;
 import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.IdealState.RebalanceMode;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterSetup;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.apache.helix.tools.ClusterStateVerifier.BestPossAndExtViewZkVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestDisable extends ZkIntegrationTestBase {
+public class TestDisable extends ZkTestBase {
 
   @Test
   public void testDisableNodeCustomIS() throws Exception {
@@ -54,7 +55,7 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     MockParticipantManager[] participants = new MockParticipantManager[n];
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -64,7 +65,7 @@ public class TestDisable extends ZkIntegrationTestBase {
         "MasterSlave", true); // do rebalance
 
     // set ideal state to customized mode
-    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
+    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_zkclient);
     ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
@@ -73,28 +74,28 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     // start controller
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // disable localhost_12918
     String command =
-        "--zkSvr " + ZK_ADDR + " --enableInstance " + clusterName + " " + disableNode + " false";
+        "--zkSvr " + _zkaddr + " --enableInstance " + clusterName + " " + disableNode + " false";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
@@ -103,20 +104,20 @@ public class TestDisable extends ZkIntegrationTestBase {
     Map<String, String> expectInstanceStateMap = new HashMap<String, String>();
     expectInstanceStateMap.put(disableNode, "OFFLINE");
     expectStateMap.put(".*", expectInstanceStateMap);
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "==");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "==");
     Assert.assertTrue(result, disableNode + " should be in OFFLINE");
 
     // re-enable localhost_12918
     command =
-        "--zkSvr " + ZK_ADDR + " --enableInstance " + clusterName + " " + disableNode + " true";
+        "--zkSvr " + _zkaddr + " --enableInstance " + clusterName + " " + disableNode + " true";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // make sure localhost_12918 is NOT in OFFLINE state
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "!=");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "!=");
     Assert.assertTrue(result, disableNode + " should NOT be in OFFLINE");
 
     // clean up
@@ -142,7 +143,7 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     MockParticipantManager[] participants = new MockParticipantManager[n];
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -153,28 +154,28 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     // start controller
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // disable localhost_12919
     String command =
-        "--zkSvr " + ZK_ADDR + " --enableInstance " + clusterName + " " + disableNode + " false";
+        "--zkSvr " + _zkaddr + " --enableInstance " + clusterName + " " + disableNode + " false";
     ClusterSetup.processCommandLineArgs(command.split(" "));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
@@ -183,20 +184,20 @@ public class TestDisable extends ZkIntegrationTestBase {
     Map<String, String> expectInstanceStateMap = new HashMap<String, String>();
     expectInstanceStateMap.put(disableNode, "OFFLINE");
     expectStateMap.put(".*", expectInstanceStateMap);
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "==");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "==");
     Assert.assertTrue(result, disableNode + " should be in OFFLINE");
 
     // re-enable localhost_12919
     command =
-        "--zkSvr " + ZK_ADDR + " --enableInstance " + clusterName + " " + disableNode + " true";
+        "--zkSvr " + _zkaddr + " --enableInstance " + clusterName + " " + disableNode + " true";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // make sure localhost_12919 is NOT in OFFLINE state
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "!=");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "!=");
     Assert.assertTrue(result, disableNode + " should NOT be in OFFLINE");
 
     // clean up
@@ -221,7 +222,7 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     MockParticipantManager[] participants = new MockParticipantManager[n];
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -231,7 +232,7 @@ public class TestDisable extends ZkIntegrationTestBase {
         "MasterSlave", true); // do rebalance
 
     // set ideal state to customized mode
-    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
+    ZkBaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_zkclient);
     ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
     Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
@@ -240,30 +241,30 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     // start controller
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // disable [TestDB0_0, TestDB0_5] on localhost_12919
     String command =
-        "--zkSvr " + ZK_ADDR + " --enablePartition false " + clusterName
+        "--zkSvr " + _zkaddr + " --enablePartition false " + clusterName
             + " localhost_12919 TestDB0 TestDB0_0 TestDB0_5";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
 
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
@@ -273,22 +274,22 @@ public class TestDisable extends ZkIntegrationTestBase {
     expectInstanceStateMap.put("localhost_12919", "OFFLINE");
     expectStateMap.put("TestDB0_0", expectInstanceStateMap);
     expectStateMap.put("TestDB0_5", expectInstanceStateMap);
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "==");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "==");
     Assert.assertTrue(result, "localhost_12919"
         + " should be in OFFLINE for [TestDB0_0, TestDB0_5]");
 
     // re-enable localhost_12919 for [TestDB0_0, TestDB0_5]
     command =
-        "--zkSvr " + ZK_ADDR + " --enablePartition true " + clusterName
+        "--zkSvr " + _zkaddr + " --enablePartition true " + clusterName
             + " localhost_12919 TestDB0 TestDB0_0 TestDB0_5";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // make sure localhost_12919 is NOT in OFFLINE state for [TestDB0_0, TestDB0_5]
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "!=");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "!=");
     Assert.assertTrue(result, "localhost_12919" + " should NOT be in OFFLINE");
 
     // clean up
@@ -313,7 +314,7 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     MockParticipantManager[] participants = new MockParticipantManager[n];
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -324,30 +325,30 @@ public class TestDisable extends ZkIntegrationTestBase {
 
     // start controller
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller_0");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller_0");
     controller.syncStart();
 
     // start participants
     for (int i = 0; i < n; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // disable [TestDB0_0, TestDB0_5] on localhost_12919
     String command =
-        "--zkSvr " + ZK_ADDR + " --enablePartition false " + clusterName
+        "--zkSvr " + _zkaddr + " --enablePartition false " + clusterName
             + " localhost_12919 TestDB0 TestDB0_0 TestDB0_5";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
 
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
@@ -357,22 +358,22 @@ public class TestDisable extends ZkIntegrationTestBase {
     expectInstanceStateMap.put("localhost_12919", "OFFLINE");
     expectStateMap.put("TestDB0_0", expectInstanceStateMap);
     expectStateMap.put("TestDB0_5", expectInstanceStateMap);
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "==");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "==");
     Assert.assertTrue(result, "localhost_12919"
         + " should be in OFFLINE for [TestDB0_0, TestDB0_5]");
 
     // re-enable localhost_12919 for [TestDB0_0, TestDB0_5]
     command =
-        "--zkSvr " + ZK_ADDR + " --enablePartition true " + clusterName
+        "--zkSvr " + _zkaddr + " --enablePartition true " + clusterName
             + " localhost_12919 TestDB0 TestDB0_0 TestDB0_5";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     result =
-        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(ZK_ADDR,
+        ClusterStateVerifier.verifyByZkCallback(new BestPossAndExtViewZkVerifier(_zkaddr,
             clusterName));
     Assert.assertTrue(result);
 
     // make sure localhost_12919 is NOT in OFFLINE state for [TestDB0_0, TestDB0_5]
-    result = ZkTestHelper.verifyState(_gZkClient, clusterName, "TestDB0", expectStateMap, "!=");
+    result = ZkTestHelper.verifyState(_zkclient, clusterName, "TestDB0", expectStateMap, "!=");
     Assert.assertTrue(result, "localhost_12919" + " should NOT be in OFFLINE");
 
     // clean up

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestDisableCustomCodeRunner.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisableCustomCodeRunner.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisableCustomCodeRunner.java
index b9097b3..08ffd54 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisableCustomCodeRunner.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisableCustomCodeRunner.java
@@ -32,7 +32,6 @@ import org.apache.helix.NotificationContext;
 import org.apache.helix.PropertyKey;
 import org.apache.helix.TestHelper;
 import org.apache.helix.ZNRecord;
-import org.apache.helix.ZkUnitTestBase;
 import org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixAdmin;
@@ -42,11 +41,12 @@ import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.LiveInstance;
 import org.apache.helix.participant.CustomCodeCallbackHandler;
 import org.apache.helix.participant.HelixCustomCodeRunner;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
+public class TestDisableCustomCodeRunner extends ZkTestBase {
 
   private static final int N = 2;
   private static final int PARTITION_NUM = 1;
@@ -86,7 +86,7 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -96,7 +96,7 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
         "MasterSlave", true); // do rebalance
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller");
     controller.syncStart();
 
     // start participants
@@ -109,10 +109,10 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
       String instanceName = "localhost_" + (12918 + i);
 
       participants
-          .put(instanceName, new MockParticipantManager(ZK_ADDR, clusterName, instanceName));
+          .put(instanceName, new MockParticipantManager(_zkaddr, clusterName, instanceName));
 
       customCodeRunners.put(instanceName, new HelixCustomCodeRunner(participants.get(instanceName),
-          ZK_ADDR));
+          _zkaddr));
       callbacks.put(instanceName, new DummyCallback());
 
       customCodeRunners.get(instanceName).invoke(callbacks.get(instanceName))
@@ -122,12 +122,12 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 
     // Make sure callback is registered
-    BaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
+    BaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_zkclient);
     final HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
     PropertyKey.Builder keyBuilder = accessor.keyBuilder();
     final String customCodeRunnerResource =
@@ -154,7 +154,7 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
     }
 
     // Disable custom-code runner resource
-    HelixAdmin admin = new ZKHelixAdmin(_gZkClient);
+    HelixAdmin admin = new ZKHelixAdmin(_zkclient);
     admin.enableResource(clusterName, customCodeRunnerResource, false);
 
     // Verify that states of custom-code runner are all OFFLINE
@@ -212,7 +212,7 @@ public class TestDisableCustomCodeRunner extends ZkUnitTestBase {
     admin.enableResource(clusterName, customCodeRunnerResource, true);
     result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestDisableNode.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisableNode.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisableNode.java
index ca54fb3..c1ae850 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisableNode.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisableNode.java
@@ -30,20 +30,20 @@ public class TestDisableNode extends ZkStandAloneCMTestBase {
   @Test()
   public void testDisableNode() throws Exception {
     String command =
-        "-zkSvr " + ZK_ADDR + " -enableInstance " + CLUSTER_NAME + " " + PARTICIPANT_PREFIX
-            + "_12918" + " TestDB TestDB_0 false";
+        "-zkSvr " + _zkaddr + " -enableInstance " + CLUSTER_NAME + " " + "localhost_12918"
+            + " TestDB TestDB_0 false";
     ClusterSetup.processCommandLineArgs(command.split(" "));
     boolean result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, CLUSTER_NAME));
+            _zkaddr, CLUSTER_NAME));
     Assert.assertTrue(result);
 
-    ZKHelixAdmin tool = new ZKHelixAdmin(_gZkClient);
-    tool.enableInstance(CLUSTER_NAME, PARTICIPANT_PREFIX + "_12918", true);
+    ZKHelixAdmin tool = new ZKHelixAdmin(_zkclient);
+    tool.enableInstance(CLUSTER_NAME, "localhost_12918", true);
 
     result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, CLUSTER_NAME));
+            _zkaddr, CLUSTER_NAME));
     Assert.assertTrue(result);
 
   }

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestDisablePartition.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisablePartition.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisablePartition.java
index c81f6e0..4eaf8b2 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisablePartition.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisablePartition.java
@@ -42,7 +42,7 @@ public class TestDisablePartition extends ZkStandAloneCMTestBase {
 
     // localhost_12919 is MASTER for TestDB_0
     String command =
-        "--zkSvr " + ZK_ADDR + " --enablePartition false " + CLUSTER_NAME
+        "--zkSvr " + _zkaddr + " --enablePartition false " + CLUSTER_NAME
             + " localhost_12919 TestDB TestDB_0 TestDB_9";
     ClusterSetup.processCommandLineArgs(command.split("\\s+"));
     Map<String, Set<String>> map = new HashMap<String, Set<String>>();
@@ -51,26 +51,26 @@ public class TestDisablePartition extends ZkStandAloneCMTestBase {
 
     boolean result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, CLUSTER_NAME));
+            _zkaddr, CLUSTER_NAME));
     Assert.assertTrue(result);
 
-    TestHelper.verifyState(CLUSTER_NAME, ZK_ADDR, map, "OFFLINE");
+    TestHelper.verifyState(CLUSTER_NAME, _zkaddr, map, "OFFLINE");
 
-    ZKHelixAdmin tool = new ZKHelixAdmin(_gZkClient);
+    ZKHelixAdmin tool = new ZKHelixAdmin(_zkclient);
     tool.enablePartition(true, CLUSTER_NAME, "localhost_12919", "TestDB", Arrays.asList("TestDB_9"));
 
     result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, CLUSTER_NAME));
+            _zkaddr, CLUSTER_NAME));
     Assert.assertTrue(result);
 
     map.clear();
     map.put("TestDB_0", TestHelper.setOf("localhost_12919"));
-    TestHelper.verifyState(CLUSTER_NAME, ZK_ADDR, map, "OFFLINE");
+    TestHelper.verifyState(CLUSTER_NAME, _zkaddr, map, "OFFLINE");
 
     map.clear();
     map.put("TestDB_9", TestHelper.setOf("localhost_12919"));
-    TestHelper.verifyState(CLUSTER_NAME, ZK_ADDR, map, "MASTER");
+    TestHelper.verifyState(CLUSTER_NAME, _zkaddr, map, "MASTER");
 
     LOG.info("STOP testDisablePartition() at " + new Date(System.currentTimeMillis()));
 

http://git-wip-us.apache.org/repos/asf/helix/blob/410815d0/helix-core/src/test/java/org/apache/helix/integration/TestDisableResource.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/org/apache/helix/integration/TestDisableResource.java b/helix-core/src/test/java/org/apache/helix/integration/TestDisableResource.java
index ea8974d..1419084 100644
--- a/helix-core/src/test/java/org/apache/helix/integration/TestDisableResource.java
+++ b/helix-core/src/test/java/org/apache/helix/integration/TestDisableResource.java
@@ -29,7 +29,6 @@ import org.apache.helix.HelixDataAccessor;
 import org.apache.helix.PropertyKey;
 import org.apache.helix.TestHelper;
 import org.apache.helix.ZNRecord;
-import org.apache.helix.ZkUnitTestBase;
 import org.apache.helix.integration.manager.ClusterControllerManager;
 import org.apache.helix.integration.manager.MockParticipantManager;
 import org.apache.helix.manager.zk.ZKHelixAdmin;
@@ -38,11 +37,12 @@ import org.apache.helix.manager.zk.ZkBaseDataAccessor;
 import org.apache.helix.model.ExternalView;
 import org.apache.helix.model.IdealState;
 import org.apache.helix.model.IdealState.RebalanceMode;
+import org.apache.helix.testutil.ZkTestBase;
 import org.apache.helix.tools.ClusterStateVerifier;
 import org.testng.Assert;
 import org.testng.annotations.Test;
 
-public class TestDisableResource extends ZkUnitTestBase {
+public class TestDisableResource extends ZkTestBase {
   private static final int N = 2;
   private static final int PARTITION_NUM = 1;
 
@@ -54,7 +54,7 @@ public class TestDisableResource extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -64,7 +64,7 @@ public class TestDisableResource extends ZkUnitTestBase {
         "MasterSlave", true); // do rebalance
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller");
     controller.syncStart();
 
     // start participants
@@ -72,13 +72,13 @@ public class TestDisableResource extends ZkUnitTestBase {
     for (int i = 0; i < N; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 
@@ -90,7 +90,7 @@ public class TestDisableResource extends ZkUnitTestBase {
     enableResource(clusterName, true);
     result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, clusterName));
+            _zkaddr, clusterName));
     Assert.assertTrue(result);
 
     // Clean up
@@ -109,7 +109,7 @@ public class TestDisableResource extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -119,7 +119,7 @@ public class TestDisableResource extends ZkUnitTestBase {
         "MasterSlave", RebalanceMode.FULL_AUTO, true); // do rebalance
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller");
     controller.syncStart();
 
     // start participants
@@ -127,13 +127,13 @@ public class TestDisableResource extends ZkUnitTestBase {
     for (int i = 0; i < N; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 
@@ -145,7 +145,7 @@ public class TestDisableResource extends ZkUnitTestBase {
     enableResource(clusterName, true);
     result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, clusterName));
+            _zkaddr, clusterName));
     Assert.assertTrue(result);
 
     // Clean up
@@ -165,7 +165,7 @@ public class TestDisableResource extends ZkUnitTestBase {
 
     System.out.println("START " + clusterName + " at " + new Date(System.currentTimeMillis()));
 
-    TestHelper.setupCluster(clusterName, ZK_ADDR, 12918, // participant port
+    TestHelper.setupCluster(clusterName, _zkaddr, 12918, // participant port
         "localhost", // participant name prefix
         "TestDB", // resource name prefix
         1, // resources
@@ -175,8 +175,7 @@ public class TestDisableResource extends ZkUnitTestBase {
         "MasterSlave", RebalanceMode.CUSTOMIZED, true); // do rebalance
 
     // set up custom ideal-state
-    BaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
-    HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
+    HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, _baseAccessor);
     PropertyKey.Builder keyBuilder = accessor.keyBuilder();
     IdealState idealState = accessor.getProperty(keyBuilder.idealStates("TestDB0"));
     idealState.setPartitionState("TestDB0_0", "localhost_12918", "SLAVE");
@@ -184,7 +183,7 @@ public class TestDisableResource extends ZkUnitTestBase {
     accessor.setProperty(keyBuilder.idealStates("TestDB0"), idealState);
 
     ClusterControllerManager controller =
-        new ClusterControllerManager(ZK_ADDR, clusterName, "controller");
+        new ClusterControllerManager(_zkaddr, clusterName, "controller");
     controller.syncStart();
 
     // start participants
@@ -192,13 +191,13 @@ public class TestDisableResource extends ZkUnitTestBase {
     for (int i = 0; i < N; i++) {
       String instanceName = "localhost_" + (12918 + i);
 
-      participants[i] = new MockParticipantManager(ZK_ADDR, clusterName, instanceName);
+      participants[i] = new MockParticipantManager(_zkaddr, clusterName, instanceName);
       participants[i].syncStart();
     }
 
     boolean result =
         ClusterStateVerifier
-            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(ZK_ADDR,
+            .verifyByZkCallback(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(_zkaddr,
                 clusterName));
     Assert.assertTrue(result);
 
@@ -210,7 +209,7 @@ public class TestDisableResource extends ZkUnitTestBase {
     enableResource(clusterName, true);
     result =
         ClusterStateVerifier.verifyByPolling(new ClusterStateVerifier.BestPossAndExtViewZkVerifier(
-            ZK_ADDR, clusterName));
+            _zkaddr, clusterName));
     Assert.assertTrue(result);
 
     // Clean up
@@ -223,7 +222,7 @@ public class TestDisableResource extends ZkUnitTestBase {
   }
 
   private void enableResource(String clusterName, boolean enabled) {
-    HelixAdmin admin = new ZKHelixAdmin(_gZkClient);
+    HelixAdmin admin = new ZKHelixAdmin(_zkclient);
     admin.enableResource(clusterName, "TestDB0", enabled);
   }
 
@@ -233,8 +232,7 @@ public class TestDisableResource extends ZkUnitTestBase {
    * @throws Exception
    */
   private void checkExternalView(String clusterName) throws Exception {
-    BaseDataAccessor<ZNRecord> baseAccessor = new ZkBaseDataAccessor<ZNRecord>(_gZkClient);
-    final HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
+    final HelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, _baseAccessor);
 
     // verify that states of TestDB0 are all OFFLINE
     boolean result = TestHelper.verify(new TestHelper.Verifier() {