You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by ki...@apache.org on 2012/10/25 00:26:41 UTC

[32/47] Refactoring from com.linkedin.helix to org.apache.helix

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZKCallback.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZKCallback.java b/helix-core/src/test/java/com/linkedin/helix/TestZKCallback.java
deleted file mode 100644
index 1f74448..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZKCallback.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.CurrentState;
-import com.linkedin.helix.model.ExternalView;
-import com.linkedin.helix.model.IdealState;
-import com.linkedin.helix.model.InstanceConfig;
-import com.linkedin.helix.model.LiveInstance;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.model.Message.MessageType;
-import com.linkedin.helix.tools.ClusterSetup;
-
-public class TestZKCallback extends ZkUnitTestBase
-{
-  private final String clusterName = CLUSTER_PREFIX + "_" + getShortClassName();
-
-  ZkClient _zkClient;
-
-  private static String[] createArgs(String str)
-  {
-    String[] split = str.split("[ ]+");
-    System.out.println(Arrays.toString(split));
-    return split;
-  }
-
-  public class TestCallbackListener implements MessageListener, LiveInstanceChangeListener,
-      ConfigChangeListener, CurrentStateChangeListener, ExternalViewChangeListener,
-      IdealStateChangeListener
-  {
-    boolean externalViewChangeReceived = false;
-    boolean liveInstanceChangeReceived = false;
-    boolean configChangeReceived = false;
-    boolean currentStateChangeReceived = false;
-    boolean messageChangeReceived = false;
-    boolean idealStateChangeReceived = false;
-
-    @Override
-    public void onExternalViewChange(List<ExternalView> externalViewList,
-        NotificationContext changeContext)
-    {
-      externalViewChangeReceived = true;
-    }
-
-    @Override
-    public void onStateChange(String instanceName, List<CurrentState> statesInfo,
-        NotificationContext changeContext)
-    {
-      currentStateChangeReceived = true;
-    }
-
-    @Override
-    public void onConfigChange(List<InstanceConfig> configs, NotificationContext changeContext)
-    {
-      configChangeReceived = true;
-    }
-
-    @Override
-    public void onLiveInstanceChange(List<LiveInstance> liveInstances,
-        NotificationContext changeContext)
-    {
-      liveInstanceChangeReceived = true;
-    }
-
-    @Override
-    public void onMessage(String instanceName, List<Message> messages,
-        NotificationContext changeContext)
-    {
-      messageChangeReceived = true;
-    }
-
-    void Reset()
-    {
-      externalViewChangeReceived = false;
-      liveInstanceChangeReceived = false;
-      configChangeReceived = false;
-      currentStateChangeReceived = false;
-      messageChangeReceived = false;
-      idealStateChangeReceived = false;
-    }
-
-    @Override
-    public void onIdealStateChange(List<IdealState> idealState, NotificationContext changeContext)
-    {
-      // TODO Auto-generated method stub
-      idealStateChangeReceived = true;
-    }
-  }
-
-  @Test()
-  public void testInvocation() throws Exception
-  {
-
-    HelixManager testHelixManager = HelixManagerFactory.getZKHelixManager(clusterName,
-        "localhost_8900", InstanceType.PARTICIPANT, ZK_ADDR);
-    testHelixManager.connect();
-
-    TestZKCallback test = new TestZKCallback();
-
-    TestZKCallback.TestCallbackListener testListener = test.new TestCallbackListener();
-
-    testHelixManager.addMessageListener(testListener, "localhost_8900");
-    testHelixManager.addCurrentStateChangeListener(testListener, "localhost_8900",
-        testHelixManager.getSessionId());
-    testHelixManager.addConfigChangeListener(testListener);
-    testHelixManager.addIdealStateChangeListener(testListener);
-    testHelixManager.addExternalViewChangeListener(testListener);
-    testHelixManager.addLiveInstanceChangeListener(testListener);
-    // Initial add listener should trigger the first execution of the
-    // listener callbacks
-    AssertJUnit.assertTrue(testListener.configChangeReceived
-        & testListener.currentStateChangeReceived & testListener.externalViewChangeReceived
-        & testListener.idealStateChangeReceived & testListener.liveInstanceChangeReceived
-        & testListener.messageChangeReceived);
-
-    testListener.Reset();
-    HelixDataAccessor accessor = testHelixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-    
-    ExternalView extView = new ExternalView("db-12345");
-    accessor.setProperty(keyBuilder.externalView("db-12345"), extView);
-    Thread.sleep(100);
-    AssertJUnit.assertTrue(testListener.externalViewChangeReceived);
-    testListener.Reset();
-
-    CurrentState curState = new CurrentState("db-12345");
-    curState.setSessionId("sessionId");
-    curState.setStateModelDefRef("StateModelDef");
-    accessor.setProperty(keyBuilder.currentState("localhost_8900", testHelixManager.getSessionId(), curState.getId()), curState);
-    Thread.sleep(100);
-    AssertJUnit.assertTrue(testListener.currentStateChangeReceived);
-    testListener.Reset();
-
-    IdealState idealState = new IdealState("db-1234");
-    idealState.setNumPartitions(400);
-    idealState.setReplicas(Integer.toString(2));
-    idealState.setStateModelDefRef("StateModeldef");
-    accessor.setProperty(keyBuilder.idealStates("db-1234"), idealState);
-    Thread.sleep(100);
-    AssertJUnit.assertTrue(testListener.idealStateChangeReceived);
-    testListener.Reset();
-
-    // dummyRecord = new ZNRecord("db-12345");
-    // dataAccessor.setProperty(PropertyType.IDEALSTATES, idealState, "db-12345"
-    // );
-    // Thread.sleep(100);
-    // AssertJUnit.assertTrue(testListener.idealStateChangeReceived);
-    // testListener.Reset();
-
-    // dummyRecord = new ZNRecord("localhost:8900");
-    // List<ZNRecord> recList = new ArrayList<ZNRecord>();
-    // recList.add(dummyRecord);
-
-    testListener.Reset();
-    Message message = new Message(MessageType.STATE_TRANSITION, UUID.randomUUID().toString());
-    message.setTgtSessionId("*");
-    message.setResourceName("testResource");
-    message.setPartitionName("testPartitionKey");
-    message.setStateModelDef("MasterSlave");
-    message.setToState("toState");
-    message.setFromState("fromState");
-    message.setTgtName("testTarget");
-    message.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
-
-    accessor.setProperty(keyBuilder.message("localhost_8900", message.getId()), message);
-    Thread.sleep(500);
-    AssertJUnit.assertTrue(testListener.messageChangeReceived);
-
-    // dummyRecord = new ZNRecord("localhost_9801");
-    LiveInstance liveInstance = new LiveInstance("localhost_9801");
-    liveInstance.setSessionId(UUID.randomUUID().toString());
-    liveInstance.setHelixVersion(UUID.randomUUID().toString());
-    accessor.setProperty(keyBuilder.liveInstance("localhost_9801"), liveInstance);
-    Thread.sleep(500);
-    AssertJUnit.assertTrue(testListener.liveInstanceChangeReceived);
-    testListener.Reset();
-
-    // dataAccessor.setNodeConfigs(recList); Thread.sleep(100);
-    // AssertJUnit.assertTrue(testListener.configChangeReceived);
-    // testListener.Reset();
-  }
-
-  @BeforeClass()
-  public void beforeClass() throws IOException, Exception
-  {
-    _zkClient = new ZkClient(ZK_ADDR);
-    _zkClient.setZkSerializer(new ZNRecordSerializer());
-    if (_zkClient.exists("/" + clusterName))
-    {
-      _zkClient.deleteRecursive("/" + clusterName);
-    }
-
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addCluster "
-        + clusterName));
-    // ClusterSetup
-    // .processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR +
-    // " -addCluster relay-cluster-12345"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addResource "
-        + clusterName + " db-12345 120 MasterSlave"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addNode " + clusterName
-        + " localhost:8900"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addNode " + clusterName
-        + " localhost:8901"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addNode " + clusterName
-        + " localhost:8902"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addNode " + clusterName
-        + " localhost:8903"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -addNode " + clusterName
-        + " localhost:8904"));
-    ClusterSetup.processCommandLineArgs(createArgs("-zkSvr " + ZK_ADDR + " -rebalance "
-        + clusterName + " db-12345 3"));
-  }
-
-  @AfterClass()
-  public void afterClass()
-  {
-    _zkClient.close();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZKRoutingInfoProvider.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZKRoutingInfoProvider.java b/helix-core/src/test/java/com/linkedin/helix/TestZKRoutingInfoProvider.java
deleted file mode 100644
index 6c3c216..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZKRoutingInfoProvider.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.Set;
-import java.util.TreeMap;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.controller.ExternalViewGenerator;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.model.CurrentState.CurrentStateProperty;
-
-public class TestZKRoutingInfoProvider
-{
-  public Map<String, List<ZNRecord>> createCurrentStates(String[] dbNames,
-      String[] nodeNames, int[] partitions, int[] replicas)
-  {
-    Map<String, List<ZNRecord>> currentStates = new TreeMap<String, List<ZNRecord>>();
-    Map<String, Map<String, ZNRecord>> currentStates2 = new TreeMap<String, Map<String, ZNRecord>>();
-
-    Map<String, String> stateMaster = new TreeMap<String, String>();
-    stateMaster.put(CurrentStateProperty.CURRENT_STATE.toString(), "MASTER");
-
-    Map<String, String> stateSlave = new TreeMap<String, String>();
-    stateSlave.put(CurrentStateProperty.CURRENT_STATE.toString(), "SLAVE");
-
-    for (int i = 0; i < nodeNames.length; i++)
-    {
-      currentStates.put(nodeNames[i], new ArrayList<ZNRecord>());
-      currentStates2.put(nodeNames[i], new TreeMap<String, ZNRecord>());
-      for (int j = 0; j < dbNames.length; j++)
-      {
-        ZNRecord dbPartitionState = new ZNRecord(dbNames[j]);
-        currentStates2.get(nodeNames[i]).put(dbNames[j], dbPartitionState);
-      }
-    }
-
-    Random rand = new Random(1234);
-    for (int j = 0; j < dbNames.length; j++)
-    {
-      int partition = partitions[j];
-      ArrayList<Integer> randomArray = new ArrayList<Integer>();
-      for (int i = 0; i < partition; i++)
-      {
-        randomArray.add(i);
-      }
-      Collections.shuffle(randomArray, rand);
-
-      for (int i = 0; i < partition; i++)
-      {
-        stateMaster.put(Message.Attributes.RESOURCE_NAME.toString(),
-            dbNames[j]);
-        stateSlave.put(Message.Attributes.RESOURCE_NAME.toString(),
-            dbNames[j]);
-        int nodes = nodeNames.length;
-        int master = randomArray.get(i) % nodes;
-        String partitionName = dbNames[j] + ".partition-" + i;
-        Map<String, Map<String, String>> map = (currentStates2
-            .get(nodeNames[master]).get(dbNames[j]).getMapFields());
-        assert (map != null);
-        map.put(partitionName, stateMaster);
-
-        for (int k = 1; k <= replicas[j]; k++)
-        {
-          int slave = (master + k) % nodes;
-          Map<String, Map<String, String>> map2 = currentStates2
-              .get(nodeNames[slave]).get(dbNames[j]).getMapFields();
-
-          map2.put(partitionName, stateSlave);
-        }
-      }
-    }
-    for (String nodeName : currentStates2.keySet())
-    {
-      Map<String, ZNRecord> recMap = currentStates2.get(nodeName);
-      List<ZNRecord> list = new ArrayList<ZNRecord>();
-      for (ZNRecord rec : recMap.values())
-      {
-        list.add(rec);
-      }
-      currentStates.put(nodeName, list);
-    }
-    return currentStates;
-  }
-
-  private void verify(Map<String, List<ZNRecord>> currentStates,
-      Map<String, Map<String, Set<String>>> routingMap)
-  {
-    int counter1 = 0;
-    int counter2 = 0;
-    for (String nodeName : currentStates.keySet())
-    {
-      List<ZNRecord> dbStateList = currentStates.get(nodeName);
-      for (ZNRecord dbState : dbStateList)
-      {
-        Map<String, Map<String, String>> dbStateMap = dbState.getMapFields();
-        for (String partitionName : dbStateMap.keySet())
-        {
-          Map<String, String> stateMap = dbStateMap
-              .get(partitionName);
-          String state = stateMap
-              .get(CurrentStateProperty.CURRENT_STATE.toString());
-          AssertJUnit.assertTrue(routingMap.get(partitionName).get(state)
-              .contains(nodeName));
-          counter1++;
-        }
-      }
-    }
-
-    for (String partitionName : routingMap.keySet())
-    {
-      Map<String, Set<String>> partitionState = routingMap.get(partitionName);
-      for (String state : partitionState.keySet())
-      {
-        counter2 += partitionState.get(state).size();
-      }
-    }
-    AssertJUnit.assertTrue(counter2 == counter1);
-  }
-
-  // public static void main(String[] args)
-  @Test ()
-  public void testInvocation() throws Exception
-  {
-    String[] dbNames = new String[3];
-    for (int i = 0; i < dbNames.length; i++)
-    {
-      dbNames[i] = "DB_" + i;
-    }
-    String[] nodeNames = new String[6];
-    for (int i = 0; i < nodeNames.length; i++)
-    {
-      nodeNames[i] = "LOCALHOST_100" + i;
-    }
-
-    int[] partitions = new int[dbNames.length];
-    for (int i = 0; i < partitions.length; i++)
-    {
-      partitions[i] = (i + 1) * 10;
-    }
-
-    int[] replicas = new int[dbNames.length];
-    for (int i = 0; i < replicas.length; i++)
-    {
-      replicas[i] = 3;
-    }
-    Map<String, List<ZNRecord>> currentStates = createCurrentStates(dbNames,
-        nodeNames, partitions, replicas);
-    ExternalViewGenerator provider = new ExternalViewGenerator();
-
-    List<ZNRecord> mockIdealStates = new ArrayList<ZNRecord>();
-    for (String dbName : dbNames)
-    {
-      ZNRecord rec = new ZNRecord(dbName);
-      mockIdealStates.add(rec);
-    }
-    List<ZNRecord> externalView = provider.computeExternalView(currentStates,
-        mockIdealStates);
-
-    Map<String, Map<String, Set<String>>> routingMap = provider
-        .getRouterMapFromExternalView(externalView);
-
-    verify(currentStates, routingMap);
-
-    /* write current state and external view to ZK */
-    /*
-     * String clusterName = "test-cluster44"; ZkClient zkClient = new
-     * ZkClient("localhost:2181"); zkClient.setZkSerializer(new
-     * ZNRecordSerializer());
-     *
-     * for(String nodeName : currentStates.keySet()) {
-     * if(zkClient.exists(CMUtil.getCurrentStatePath(clusterName, nodeName))) {
-     * zkClient.deleteRecursive(CMUtil.getCurrentStatePath(clusterName,
-     * nodeName)); } ZKUtil.createChildren(zkClient,CMUtil.getCurrentStatePath
-     * (clusterName, nodeName), currentStates.get(nodeName)); }
-     *
-     * //List<ZNRecord> externalView =
-     * ZKRoutingInfoProvider.computeExternalView(currentStates); String
-     * routingTablePath = CMUtil.getExternalViewPath(clusterName);
-     * if(zkClient.exists(routingTablePath)) {
-     * zkClient.deleteRecursive(routingTablePath); }
-     *
-     * ZKUtil.createChildren(zkClient, CMUtil.getExternalViewPath(clusterName),
-     * externalView);
-     */
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZNRecord.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZNRecord.java b/helix-core/src/test/java/com/linkedin/helix/TestZNRecord.java
deleted file mode 100644
index aa93e1d..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZNRecord.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-public class TestZNRecord
-{
-
-  @Test
-  public void testEquals()
-  {
-    ZNRecord record1 = new ZNRecord("id");
-    record1.setSimpleField("k1", "v1");
-    record1.setMapField("m1", new HashMap<String, String>());
-    record1.getMapField("m1").put("k1", "v1");
-    record1.setListField("l1", new ArrayList<String>());
-    record1.getListField("l1").add("v1");
-    ZNRecord record2 = new ZNRecord("id");
-    record2.setSimpleField("k1", "v1");
-    record2.setMapField("m1", new HashMap<String, String>());
-    record2.getMapField("m1").put("k1", "v1");
-    record2.setListField("l1", new ArrayList<String>());
-    record2.getListField("l1").add("v1");
-
-    AssertJUnit.assertEquals(record1, record2);
-    record2.setSimpleField("k2", "v1");
-    AssertJUnit.assertNotSame(record1, record2);
-  }
-
-  @Test
-  public void testMerge()
-  {
-    ZNRecord record = new ZNRecord("record1");
-
-    // set simple field
-    record.setSimpleField("simpleKey1", "simpleValue1");
-
-    // set list field
-    List<String> list1 = new ArrayList<String>();
-    list1.add("list1Value1");
-    list1.add("list1Value2");
-    record.setListField("listKey1", list1);
-
-    // set map field
-    Map<String, String> map1 = new HashMap<String, String>();
-    map1.put("map1Key1", "map1Value1");
-    record.setMapField("mapKey1", map1);
-    // System.out.println(record);
-
-    ZNRecord updateRecord = new ZNRecord("updateRecord");
-
-    // set simple field
-    updateRecord.setSimpleField("simpleKey2", "simpleValue2");
-
-    // set list field
-    List<String> newList1 = new ArrayList<String>();
-    newList1.add("list1Value1");
-    newList1.add("list1Value2");
-    newList1.add("list1NewValue1");
-    newList1.add("list1NewValue2");
-    updateRecord.setListField("listKey1", newList1);
-
-    List<String> list2 = new ArrayList<String>();
-    list2.add("list2Value1");
-    list2.add("list2Value2");
-    updateRecord.setListField("listKey2", list2);
-
-    // set map field
-    Map<String, String> newMap1 = new HashMap<String, String>();
-    newMap1.put("map1NewKey1", "map1NewValue1");
-    updateRecord.setMapField("mapKey1", newMap1);
-
-    Map<String, String> map2 = new HashMap<String, String>();
-    map2.put("map2Key1", "map2Value1");
-    updateRecord.setMapField("mapKey2", map2);
-    // System.out.println(updateRecord);
-
-    record.merge(updateRecord);
-    // System.out.println(record);
-
-    ZNRecord expectRecord = new ZNRecord("record1");
-    expectRecord.setSimpleField("simpleKey1", "simpleValue1");
-    expectRecord.setSimpleField("simpleKey2", "simpleValue2");
-    List<String> expectList1 = new ArrayList<String>();
-    expectList1.add("list1Value1");
-    expectList1.add("list1Value2");
-    expectList1.add("list1Value1");
-    expectList1.add("list1Value2");
-    expectList1.add("list1NewValue1");
-    expectList1.add("list1NewValue2");
-    expectRecord.setListField("listKey1", expectList1);
-    List<String> expectList2 = new ArrayList<String>();
-    expectList2.add("list2Value1");
-    expectList2.add("list2Value2");
-    expectRecord.setListField("listKey2", expectList2);
-    Map<String, String> expectMap1 = new HashMap<String, String>();
-    expectMap1.put("map1Key1", "map1Value1");
-    expectMap1.put("map1NewKey1", "map1NewValue1");
-    expectRecord.setMapField("mapKey1", expectMap1);
-    Map<String, String> expectMap2 = new HashMap<String, String>();
-    expectMap2.put("map2Key1", "map2Value1");
-    expectRecord.setMapField("mapKey2", expectMap2);
-    Assert.assertEquals(record, expectRecord, "Should be equal.");
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZNRecordBucketizer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZNRecordBucketizer.java b/helix-core/src/test/java/com/linkedin/helix/TestZNRecordBucketizer.java
deleted file mode 100644
index 33d846d..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZNRecordBucketizer.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package com.linkedin.helix;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class TestZNRecordBucketizer
-{
-  @Test
-  public void testZNRecordBucketizer()
-  {
-    final int bucketSize = 3;
-    ZNRecordBucketizer bucketizer = new ZNRecordBucketizer(bucketSize);
-    String[] partitionNames =
-        { "TestDB_0", "TestDB_1", "TestDB_2", "TestDB_3", "TestDB_4" };
-    for (int i = 0; i < partitionNames.length; i++)
-    {
-      String partitionName = partitionNames[i];
-      String bucketName = bucketizer.getBucketName(partitionName);
-      int startBucketNb = i / bucketSize * bucketSize;
-      int endBucketNb = startBucketNb + bucketSize - 1;
-      String expectBucketName = "TestDB_p" + startBucketNb + "-p" + endBucketNb;
-      System.out.println("Expect: " + expectBucketName + ", actual: " + bucketName);
-      Assert.assertEquals(expectBucketName, bucketName);
-      
-    }
-    
-//    ZNRecord record = new ZNRecord("TestDB");
-//    record.setSimpleField("key0", "value0");
-//    record.setSimpleField("key1", "value1");
-//    record.setListField("TestDB_0", Arrays.asList("localhost_00", "localhost_01"));
-//    record.setListField("TestDB_1", Arrays.asList("localhost_10", "localhost_11"));
-//    record.setListField("TestDB_2", Arrays.asList("localhost_20", "localhost_21"));
-//    record.setListField("TestDB_3", Arrays.asList("localhost_30", "localhost_31"));
-//    record.setListField("TestDB_4", Arrays.asList("localhost_40", "localhost_41"));
-//    
-//    System.out.println(bucketizer.bucketize(record));
-    
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZkClientWrapper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZkClientWrapper.java b/helix-core/src/test/java/com/linkedin/helix/TestZkClientWrapper.java
deleted file mode 100644
index 0fa0610..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZkClientWrapper.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import org.I0Itec.zkclient.IZkStateListener;
-import org.I0Itec.zkclient.ZkConnection;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.data.Stat;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkClient;
-
-public class TestZkClientWrapper extends ZkUnitTestBase
-{
-	ZkClient _zkClient;
-
-	@BeforeClass
-	public void beforeClass()
-	{
-		_zkClient = new ZkClient(ZK_ADDR);
-		_zkClient.setZkSerializer(new ZNRecordSerializer());
-	}
-
-	@AfterClass
-	public void afterClass()
-	{
-		_zkClient.close();
-	}
-
-	@Test ()
-	void testGetStat()
-	{
-		String path = "/tmp/getStatTest";
-		_zkClient.deleteRecursive(path);
-
-		Stat stat, newStat;
-		stat = _zkClient.getStat(path);
-		AssertJUnit.assertNull(stat);
-		_zkClient.createPersistent(path, true);
-
-		stat = _zkClient.getStat(path);
-		AssertJUnit.assertNotNull(stat);
-
-		newStat = _zkClient.getStat(path);
-		AssertJUnit.assertEquals(stat, newStat);
-
-		_zkClient.writeData(path, new ZNRecord("Test"));
-		newStat = _zkClient.getStat(path);
-		AssertJUnit.assertNotSame(stat, newStat);
-	}
-
-  @Test ()
-	void testSessioExpire()
-	{
-		IZkStateListener listener = new IZkStateListener()
-		{
-
-			@Override
-			public void handleStateChanged(KeeperState state) throws Exception
-			{
-				System.out.println("In Old connection New state " + state);
-			}
-
-			@Override
-			public void handleNewSession() throws Exception
-			{
-				System.out.println("In Old connection New session");
-			}
-		};
-		_zkClient.subscribeStateChanges(listener);
-		ZkConnection connection = ((ZkConnection) _zkClient.getConnection());
-		ZooKeeper zookeeper = connection.getZookeeper();
-		System.out.println("old sessionId= " + zookeeper.getSessionId());
-		try
-		{
-			Watcher watcher = new Watcher(){
-				@Override
-        public void process(WatchedEvent event)
-        {
-					System.out.println("In New connection In process event:"+ event);
-        }
-			};
-			ZooKeeper newZookeeper = new ZooKeeper(connection.getServers(),
-			    zookeeper.getSessionTimeout(), watcher , zookeeper.getSessionId(),
-			    zookeeper.getSessionPasswd());
-			Thread.sleep(3000);
-			System.out.println("New sessionId= " + newZookeeper.getSessionId());
-			Thread.sleep(3000);
-			newZookeeper.close();
-			Thread.sleep(10000);
-			connection = ((ZkConnection) _zkClient.getConnection());
-			zookeeper = connection.getZookeeper();
-			System.out.println("After session expiry sessionId= " + zookeeper.getSessionId());
-		} catch (Exception e)
-		{
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZkConnectionCount.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZkConnectionCount.java b/helix-core/src/test/java/com/linkedin/helix/TestZkConnectionCount.java
deleted file mode 100644
index 717ee23..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZkConnectionCount.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import org.apache.log4j.Logger;
-
-// TODO fix this test
-public class TestZkConnectionCount extends ZkUnitTestBase
-{
-  private static Logger LOG = Logger.getLogger(TestZkConnectionCount.class);
-
-  // @Test ()
-  public void testZkConnectionCount()
-  {
-
-//    ZkClient zkClient;
-//    int nrOfConn = ZkClient.getNumberOfConnections();
-//    System.out.println("Number of zk connections made " + nrOfConn);
-//
-//    ZkConnection zkConn = new ZkConnection(ZK_ADDR);
-//
-//    zkClient = new ZkClient(zkConn);
-//    AssertJUnit.assertEquals(nrOfConn + 1, ZkClient.getNumberOfConnections());
-//
-//    zkClient = new ZkClient(ZK_ADDR);
-//    AssertJUnit.assertEquals(nrOfConn + 2, ZkClient.getNumberOfConnections());
-//
-//    zkClient = ZKClientPool.getZkClient(ZK_ADDR);
-//    AssertJUnit.assertEquals(nrOfConn + 2, ZkClient.getNumberOfConnections());
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestZnodeModify.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestZnodeModify.java b/helix-core/src/test/java/com/linkedin/helix/TestZnodeModify.java
deleted file mode 100644
index b069852..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestZnodeModify.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.log4j.Logger;
-import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.IdealState.IdealStateModeProperty;
-import com.linkedin.helix.model.IdealState.IdealStateProperty;
-import com.linkedin.helix.tools.TestCommand;
-import com.linkedin.helix.tools.TestExecutor;
-import com.linkedin.helix.tools.TestTrigger;
-import com.linkedin.helix.tools.ZnodeOpArg;
-import com.linkedin.helix.tools.TestCommand.CommandType;
-import com.linkedin.helix.tools.TestExecutor.ZnodePropertyType;
-
-public class TestZnodeModify extends ZkUnitTestBase
-{
-  private static Logger logger = Logger.getLogger(TestZnodeModify.class);
-  private final String PREFIX = "/" + getShortClassName();
-
-  @Test ()
-  public void testBasic() throws Exception
-  {
-    logger.info("RUN: " + new Date(System.currentTimeMillis()));
-    List<TestCommand> commandList = new ArrayList<TestCommand>();
-
-    // test case for the basic flow, no timeout, no data trigger
-    String pathChild1 = PREFIX + "/basic_child1";
-    String pathChild2 = PREFIX + "/basic_child2";
-
-    TestCommand command;
-    ZnodeOpArg arg;
-    arg = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "+", "key1", "simpleValue1");
-    command = new TestCommand(CommandType.MODIFY, arg);
-    commandList.add(command);
-
-    List<String> list = new ArrayList<String>();
-    list.add("listValue1");
-    list.add("listValue2");
-    arg = new ZnodeOpArg(pathChild1, ZnodePropertyType.LIST, "+", "key2", list);
-    command = new TestCommand(CommandType.MODIFY, arg);
-    commandList.add(command);
-
-    ZNRecord record = getExampleZNRecord();
-    arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", record);
-    command = new TestCommand(CommandType.MODIFY, arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "==", "key1");
-    command = new TestCommand(CommandType.VERIFY, new TestTrigger(1000, 0, "simpleValue1"), arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild1, ZnodePropertyType.LIST, "==", "key2");
-    command = new TestCommand(CommandType.VERIFY, new TestTrigger(1000, 0, list), arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "==");
-    command = new TestCommand(CommandType.VERIFY, new TestTrigger(1000, 0, record), arg);
-    commandList.add(command);
-
-    Map<TestCommand, Boolean> results = TestExecutor.executeTest(commandList, ZK_ADDR);
-    for (Map.Entry<TestCommand, Boolean> entry : results.entrySet())
-    {
-      Assert.assertTrue(entry.getValue());
-    }
-
-    logger.info("END: " + new Date(System.currentTimeMillis()));
-  }
-
-  @Test ()
-  public void testDataTrigger() throws Exception
-  {
-    logger.info("RUN: " + new Date(System.currentTimeMillis()));
-    List<TestCommand> commandList = new ArrayList<TestCommand>();
-
-    // test case for data trigger, no timeout
-    String pathChild1 = PREFIX + "/data_trigger_child1";
-    String pathChild2 = PREFIX + "/data_trigger_child2";
-
-    ZnodeOpArg arg;
-    TestCommand command;
-
-    ZnodeOpArg arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "+", "key1", "simpleValue1-new");
-    TestCommand command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 0, "simpleValue1"), arg1);
-    commandList.add(command1);
-
-    ZNRecord record = getExampleZNRecord();
-    ZNRecord recordNew = new ZNRecord(record);
-    recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
-    arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", recordNew);
-    command = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 3000, record), arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", record);
-    command = new TestCommand(CommandType.MODIFY, new TestTrigger(1000), arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "!=", "key1");
-    command = new TestCommand(CommandType.VERIFY, new TestTrigger(3100, 0, "simpleValue1-new"), arg);
-    commandList.add(command);
-
-    arg = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "==");
-    command = new TestCommand(CommandType.VERIFY, new TestTrigger(3100, 0, recordNew), arg);
-    commandList.add(command);
-
-    Map<TestCommand, Boolean> results = TestExecutor.executeTest(commandList, ZK_ADDR);
-
-    boolean result = results.remove(command1).booleanValue();
-    AssertJUnit.assertFalse(result);
-    for (Map.Entry<TestCommand, Boolean> entry : results.entrySet())
-    {
-      Assert.assertTrue(entry.getValue());
-    }
-
-    logger.info("END: " + new Date(System.currentTimeMillis()));
-  }
-
-  @Test ()
-  public void testTimeout() throws Exception
-  {
-    logger.info("RUN: " + new Date(System.currentTimeMillis()));
-    List<TestCommand> commandList = new ArrayList<TestCommand>();
-
-    // test case for timeout, no data trigger
-    String pathChild1 = PREFIX + "/timeout_child1";
-    String pathChild2 = PREFIX + "/timeout_child2";
-
-    ZnodeOpArg arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "+", "key1", "simpleValue1-new");
-    TestCommand command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 1000, "simpleValue1"), arg1);
-    commandList.add(command1);
-
-    ZNRecord record = getExampleZNRecord();
-    ZNRecord recordNew = new ZNRecord(record);
-    recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
-    arg1 = new ZnodeOpArg(pathChild2, ZnodePropertyType.ZNODE, "+", recordNew);
-    command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 500, record), arg1);
-    commandList.add(command1);
-
-    arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.SIMPLE, "==", "key1");
-    command1 = new TestCommand(CommandType.VERIFY, new TestTrigger(1000, 500, "simpleValue1-new"), arg1);
-    commandList.add(command1);
-
-    arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.ZNODE, "==");
-    command1 = new TestCommand(CommandType.VERIFY, new TestTrigger(1000, 500, recordNew), arg1);
-    commandList.add(command1);
-
-    Map<TestCommand, Boolean> results = TestExecutor.executeTest(commandList, ZK_ADDR);
-    for (Map.Entry<TestCommand, Boolean> entry : results.entrySet())
-    {
-      Assert.assertFalse(entry.getValue());
-    }
-
-    logger.info("END: " + new Date(System.currentTimeMillis()));
-  }
-
-
-  @Test ()
-  public void testDataTriggerWithTimeout() throws Exception
-  {
-    logger.info("RUN: " + new Date(System.currentTimeMillis()));
-    List<TestCommand> commandList = new ArrayList<TestCommand>();
-
-    // test case for data trigger with timeout
-    final String pathChild1 = PREFIX + "/dataTriggerWithTimeout_child1";
-
-    final ZNRecord record = getExampleZNRecord();
-    ZNRecord recordNew = new ZNRecord(record);
-    recordNew.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.AUTO.toString());
-    ZnodeOpArg arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.ZNODE, "+", recordNew);
-    TestCommand command1 = new TestCommand(CommandType.MODIFY, new TestTrigger(0, 8000, record), arg1);
-    commandList.add(command1);
-
-    arg1 = new ZnodeOpArg(pathChild1, ZnodePropertyType.ZNODE, "==");
-    command1 = new TestCommand(CommandType.VERIFY, new TestTrigger(9000, 500, recordNew), arg1);
-    commandList.add(command1);
-
-    // start a separate thread to change znode at pathChild1
-    new Thread()
-    {
-      @Override
-      public void run()
-      {
-        try
-        {
-          Thread.sleep(3000);
-          final ZkClient zkClient = new ZkClient(ZK_ADDR);
-          zkClient.setZkSerializer(new ZNRecordSerializer());
-          zkClient.createPersistent(pathChild1, true);
-          zkClient.writeData(pathChild1, record);
-        }
-        catch (InterruptedException e)
-        {
-          // TODO Auto-generated catch block
-          e.printStackTrace();
-        }
-      }
-    }.start();
-
-    Map<TestCommand, Boolean> results = TestExecutor.executeTest(commandList, ZK_ADDR);
-    for (Map.Entry<TestCommand, Boolean> entry : results.entrySet())
-    {
-      Assert.assertTrue(entry.getValue());
-      // System.out.println(entry.getValue() + ":" + entry.getKey());
-    }
-
-  }
-
-  ZkClient _zkClient;
-
-  @BeforeClass ()
-  public void beforeClass()
-  {
-    System.out.println("START " + getShortClassName() + " at "
-        + new Date(System.currentTimeMillis()));
-
-    _zkClient = new ZkClient(ZK_ADDR);
-    _zkClient.setZkSerializer(new ZNRecordSerializer());
-    if (_zkClient.exists(PREFIX))
-    {
-      _zkClient.deleteRecursive(PREFIX);
-    }
-
-  }
-
-  @AfterClass
-  public void afterClass()
-  {
-  	_zkClient.close();
-
-    System.out.println("END " + getShortClassName() + " at "
-        + new Date(System.currentTimeMillis()));
-
-  }
-
-  private ZNRecord getExampleZNRecord()
-  {
-    ZNRecord record = new ZNRecord("TestDB");
-    record.setSimpleField(IdealStateProperty.IDEAL_STATE_MODE.toString(), IdealStateModeProperty.CUSTOMIZED.toString());
-    Map<String, String> map = new HashMap<String, String>();
-    map.put("localhost_12918", "MASTER");
-    map.put("localhost_12919", "SLAVE");
-    record.setMapField("TestDB_0", map);
-
-    List<String> list = new ArrayList<String>();
-    list.add("localhost_12918");
-    list.add("localhost_12919");
-    record.setListField("TestDB_0", list);
-    return record;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/ZkTestHelper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/ZkTestHelper.java b/helix-core/src/test/java/com/linkedin/helix/ZkTestHelper.java
deleted file mode 100644
index 2925aa1..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/ZkTestHelper.java
+++ /dev/null
@@ -1,173 +0,0 @@
-package com.linkedin.helix;
-
-import java.util.Map;
-import java.util.concurrent.CountDownLatch;
-
-import org.I0Itec.zkclient.IZkStateListener;
-import org.I0Itec.zkclient.ZkConnection;
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.ZooKeeper.States;
-
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.manager.zk.ZKHelixDataAccessor;
-import com.linkedin.helix.manager.zk.ZKHelixManager;
-import com.linkedin.helix.manager.zk.ZkBaseDataAccessor;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.ExternalView;
-
-public class ZkTestHelper
-{
-  private static Logger LOG = Logger.getLogger(ZkTestHelper.class);
-
-  static
-  {
-    // Logger.getRootLogger().setLevel(Level.DEBUG);
-  }
-
-  // zkClusterManager that exposes zkclient
-  public static class TestZkHelixManager extends ZKHelixManager
-  {
-
-    public TestZkHelixManager(String clusterName,
-                              String instanceName,
-                              InstanceType instanceType,
-                              String zkConnectString) throws Exception
-    {
-      super(clusterName, instanceName, instanceType, zkConnectString);
-      // TODO Auto-generated constructor stub
-    }
-
-    public ZkClient getZkClient()
-    {
-      return _zkClient;
-    }
-
-  }
-
-  public static void expireSession(final ZkClient zkClient) throws Exception
-  {
-    final CountDownLatch waitExpire = new CountDownLatch(1);
-
-    IZkStateListener listener = new IZkStateListener()
-    {
-      @Override
-      public void handleStateChanged(KeeperState state) throws Exception
-      {
-        // System.err.println("handleStateChanged. state: " + state);
-      }
-
-      @Override
-      public void handleNewSession() throws Exception
-      {
-        // make sure zkclient is connected again
-        zkClient.waitUntilConnected();
-
-        ZkConnection connection = ((ZkConnection) zkClient.getConnection());
-        ZooKeeper curZookeeper = connection.getZookeeper();
-
-        LOG.info("handleNewSession. sessionId: "
-            + Long.toHexString(curZookeeper.getSessionId()));
-        waitExpire.countDown();
-      }
-    };
-
-    zkClient.subscribeStateChanges(listener);
-
-    ZkConnection connection = ((ZkConnection) zkClient.getConnection());
-    ZooKeeper curZookeeper = connection.getZookeeper();
-    LOG.info("Before expiry. sessionId: " + Long.toHexString(curZookeeper.getSessionId()));
-
-    Watcher watcher = new Watcher()
-    {
-      @Override
-      public void process(WatchedEvent event)
-      {
-        LOG.info("Process watchEvent: " + event);
-      }
-    };
-
-    final ZooKeeper dupZookeeper =
-        new ZooKeeper(connection.getServers(),
-                      curZookeeper.getSessionTimeout(),
-                      watcher,
-                      curZookeeper.getSessionId(),
-                      curZookeeper.getSessionPasswd());
-    // wait until connected, then close
-    while (dupZookeeper.getState() != States.CONNECTED)
-    {
-      Thread.sleep(10);
-    }
-    dupZookeeper.close();
-
-    // make sure session expiry really happens
-    waitExpire.await();
-    zkClient.unsubscribeStateChanges(listener);
-
-    connection = (ZkConnection) zkClient.getConnection();
-    curZookeeper = connection.getZookeeper();
-
-    // System.err.println("zk: " + oldZookeeper);
-    LOG.info("After expiry. sessionId: " + Long.toHexString(curZookeeper.getSessionId()));
-  }
-
-  /*
-   * stateMap: partition->instance->state
-   */
-  public static boolean verifyState(ZkClient zkclient,
-                                    String clusterName,
-                                    String resourceName,
-                                    Map<String, Map<String, String>> expectStateMap,
-                                    String op)
-  {
-    boolean result = true;
-    ZkBaseDataAccessor<ZNRecord> baseAccessor =
-        new ZkBaseDataAccessor<ZNRecord>(zkclient);
-    ZKHelixDataAccessor accessor = new ZKHelixDataAccessor(clusterName, baseAccessor);
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ExternalView extView = accessor.getProperty(keyBuilder.externalView(resourceName));
-    Map<String, Map<String, String>> actualStateMap = extView.getRecord().getMapFields();
-    for (String partition : actualStateMap.keySet())
-    {
-      for (String expectPartiton : expectStateMap.keySet())
-      {
-        if (!partition.matches(expectPartiton))
-        {
-          continue;
-        }
-
-        Map<String, String> actualInstanceStateMap = actualStateMap.get(partition);
-        Map<String, String> expectInstanceStateMap = expectStateMap.get(expectPartiton);
-        for (String instance : actualInstanceStateMap.keySet())
-        {
-          for (String expectInstance : expectStateMap.get(expectPartiton).keySet())
-          {
-            if (!instance.matches(expectInstance))
-            {
-              continue;
-            }
-
-            String actualState = actualInstanceStateMap.get(instance);
-            String expectState = expectInstanceStateMap.get(expectInstance);
-            boolean equals = expectState.equals(actualState);
-            if (op.equals("==") && !equals || op.equals("!=") && equals)
-            {
-              System.out.println(partition + "/" + instance
-                  + " state mismatch. actual state: " + actualState + ", but expect: "
-                  + expectState + ", op: " + op);
-              result = false;
-            }
-
-          }
-        }
-
-      }
-    }
-    return result;
-  }
-  
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/ZkUnitTestBase.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/ZkUnitTestBase.java b/helix-core/src/test/java/com/linkedin/helix/ZkUnitTestBase.java
deleted file mode 100644
index 8b50978..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/ZkUnitTestBase.java
+++ /dev/null
@@ -1,428 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.I0Itec.zkclient.IZkStateListener;
-import org.I0Itec.zkclient.ZkConnection;
-import org.I0Itec.zkclient.ZkServer;
-import org.apache.log4j.Logger;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.ZooKeeper;
-import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.AfterSuite;
-import org.testng.annotations.BeforeSuite;
-
-import com.linkedin.helix.ConfigScope.ConfigScopeProperty;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.controller.pipeline.Pipeline;
-import com.linkedin.helix.controller.pipeline.Stage;
-import com.linkedin.helix.controller.pipeline.StageContext;
-import com.linkedin.helix.controller.stages.ClusterEvent;
-import com.linkedin.helix.manager.zk.ZKHelixAdmin;
-import com.linkedin.helix.manager.zk.ZKHelixDataAccessor;
-import com.linkedin.helix.manager.zk.ZNRecordSerializer;
-import com.linkedin.helix.manager.zk.ZkBaseDataAccessor;
-import com.linkedin.helix.manager.zk.ZkClient;
-import com.linkedin.helix.model.IdealState;
-import com.linkedin.helix.model.IdealState.IdealStateModeProperty;
-import com.linkedin.helix.model.InstanceConfig;
-import com.linkedin.helix.model.LiveInstance;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.model.Message.Attributes;
-import com.linkedin.helix.model.Message.MessageType;
-import com.linkedin.helix.model.StateModelDefinition;
-import com.linkedin.helix.tools.StateModelConfigGenerator;
-import com.linkedin.helix.util.HelixUtil;
-
-// TODO merge code with ZkIntegrationTestBase
-public class ZkUnitTestBase
-{
-  private static Logger LOG = Logger.getLogger(ZkUnitTestBase.class);
-  protected static ZkServer _zkServer = null;
-  protected static ZkClient _gZkClient;
-
-  public static final String ZK_ADDR = "localhost:2185";
-  protected static final String CLUSTER_PREFIX = "CLUSTER";
-  protected static final String CONTROLLER_CLUSTER_PREFIX = "CONTROLLER_CLUSTER";
-
-  @BeforeSuite(alwaysRun = true)
-  public void beforeSuite() throws Exception
-  {
-    _zkServer = TestHelper.startZkSever(ZK_ADDR);
-    AssertJUnit.assertTrue(_zkServer != null);
-
-    // System.out.println("Number of open zkClient before ZkUnitTests: "
-    // + ZkClient.getNumberOfConnections());
-
-    _gZkClient = new ZkClient(ZK_ADDR);
-    _gZkClient.setZkSerializer(new ZNRecordSerializer());
-  }
-
-  @AfterSuite(alwaysRun = true)
-  public void afterTest()
-  {
-    TestHelper.stopZkServer(_zkServer);
-    _zkServer = null;
-    _gZkClient.close();
-
-    // System.out.println("Number of open zkClient after ZkUnitTests: "
-    // + ZkClient.getNumberOfConnections());
-
-  }
-
-  protected String getShortClassName()
-  {
-    String className = this.getClass().getName();
-    return className.substring(className.lastIndexOf('.') + 1);
-  }
-
-  protected String getCurrentLeader(ZkClient zkClient, String clusterName)
-  {
-    String leaderPath =
-        HelixUtil.getControllerPropertyPath(clusterName, PropertyType.LEADER);
-    ZNRecord leaderRecord = zkClient.<ZNRecord> readData(leaderPath);
-    if (leaderRecord == null)
-    {
-      return null;
-    }
-
-    String leader = leaderRecord.getSimpleField(PropertyType.LEADER.toString());
-    return leader;
-  }
-
-  protected void stopCurrentLeader(ZkClient zkClient,
-                                   String clusterName,
-                                   Map<String, Thread> threadMap,
-                                   Map<String, HelixManager> managerMap)
-  {
-    String leader = getCurrentLeader(zkClient, clusterName);
-    Assert.assertTrue(leader != null);
-    System.out.println("stop leader:" + leader + " in " + clusterName);
-    Assert.assertTrue(leader != null);
-
-    HelixManager manager = managerMap.remove(leader);
-    Assert.assertTrue(manager != null);
-    manager.disconnect();
-
-    Thread thread = threadMap.remove(leader);
-    Assert.assertTrue(thread != null);
-    thread.interrupt();
-
-    boolean isNewLeaderElected = false;
-    try
-    {
-      // Thread.sleep(2000);
-      for (int i = 0; i < 5; i++)
-      {
-        Thread.sleep(1000);
-        String newLeader = getCurrentLeader(zkClient, clusterName);
-        if (!newLeader.equals(leader))
-        {
-          isNewLeaderElected = true;
-          System.out.println("new leader elected: " + newLeader + " in " + clusterName);
-          break;
-        }
-      }
-    }
-    catch (InterruptedException e)
-    {
-      e.printStackTrace();
-    }
-    if (isNewLeaderElected == false)
-    {
-      System.out.println("fail to elect a new leader elected in " + clusterName);
-    }
-    AssertJUnit.assertTrue(isNewLeaderElected);
-  }
-
-  public void verifyInstance(ZkClient zkClient,
-                             String clusterName,
-                             String instance,
-                             boolean wantExists)
-  {
-    // String instanceConfigsPath = HelixUtil.getConfigPath(clusterName);
-    String instanceConfigsPath =
-        PropertyPathConfig.getPath(PropertyType.CONFIGS,
-                                   clusterName,
-                                   ConfigScopeProperty.PARTICIPANT.toString());
-    String instanceConfigPath = instanceConfigsPath + "/" + instance;
-    String instancePath = HelixUtil.getInstancePath(clusterName, instance);
-    AssertJUnit.assertEquals(wantExists, zkClient.exists(instanceConfigPath));
-    AssertJUnit.assertEquals(wantExists, zkClient.exists(instancePath));
-  }
-
-  public void verifyResource(ZkClient zkClient,
-                             String clusterName,
-                             String resource,
-                             boolean wantExists)
-  {
-    String resourcePath = HelixUtil.getIdealStatePath(clusterName) + "/" + resource;
-    AssertJUnit.assertEquals(wantExists, zkClient.exists(resourcePath));
-  }
-
-  public void verifyEnabled(ZkClient zkClient,
-                            String clusterName,
-                            String instance,
-                            boolean wantEnabled)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor(zkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    InstanceConfig config = accessor.getProperty(keyBuilder.instanceConfig(instance));
-    AssertJUnit.assertEquals(wantEnabled, config.getInstanceEnabled());
-  }
-
-  public void verifyReplication(ZkClient zkClient,
-                                String clusterName,
-                                String resource,
-                                int repl)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor(zkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    IdealState idealState = accessor.getProperty(keyBuilder.idealStates(resource));
-    for (String partitionName : idealState.getPartitionSet())
-    {
-      if (idealState.getIdealStateMode() == IdealStateModeProperty.AUTO)
-      {
-        AssertJUnit.assertEquals(repl, idealState.getPreferenceList(partitionName).size());
-      }
-      else if (idealState.getIdealStateMode() == IdealStateModeProperty.CUSTOMIZED)
-      {
-        AssertJUnit.assertEquals(repl, idealState.getInstanceStateMap(partitionName)
-                                                 .size());
-      }
-    }
-  }
-
-  protected void simulateSessionExpiry(ZkConnection zkConnection) throws IOException,
-      InterruptedException
-  {
-    ZooKeeper oldZookeeper = zkConnection.getZookeeper();
-    LOG.info("Old sessionId = " + oldZookeeper.getSessionId());
-
-    Watcher watcher = new Watcher()
-    {
-      @Override
-      public void process(WatchedEvent event)
-      {
-        LOG.info("In New connection, process event:" + event);
-      }
-    };
-
-    ZooKeeper newZookeeper =
-        new ZooKeeper(zkConnection.getServers(),
-                      oldZookeeper.getSessionTimeout(),
-                      watcher,
-                      oldZookeeper.getSessionId(),
-                      oldZookeeper.getSessionPasswd());
-    LOG.info("New sessionId = " + newZookeeper.getSessionId());
-    // Thread.sleep(3000);
-    newZookeeper.close();
-    Thread.sleep(10000);
-    oldZookeeper = zkConnection.getZookeeper();
-    LOG.info("After session expiry sessionId = " + oldZookeeper.getSessionId());
-  }
-
-  protected void simulateSessionExpiry(ZkClient zkClient) throws IOException,
-      InterruptedException
-  {
-    IZkStateListener listener = new IZkStateListener()
-    {
-      @Override
-      public void handleStateChanged(KeeperState state) throws Exception
-      {
-        LOG.info("In Old connection, state changed:" + state);
-      }
-
-      @Override
-      public void handleNewSession() throws Exception
-      {
-        LOG.info("In Old connection, new session");
-      }
-    };
-    zkClient.subscribeStateChanges(listener);
-    ZkConnection connection = ((ZkConnection) zkClient.getConnection());
-    ZooKeeper oldZookeeper = connection.getZookeeper();
-    LOG.info("Old sessionId = " + oldZookeeper.getSessionId());
-
-    Watcher watcher = new Watcher()
-    {
-      @Override
-      public void process(WatchedEvent event)
-      {
-        LOG.info("In New connection, process event:" + event);
-      }
-    };
-
-    ZooKeeper newZookeeper =
-        new ZooKeeper(connection.getServers(),
-                      oldZookeeper.getSessionTimeout(),
-                      watcher,
-                      oldZookeeper.getSessionId(),
-                      oldZookeeper.getSessionPasswd());
-    LOG.info("New sessionId = " + newZookeeper.getSessionId());
-    // Thread.sleep(3000);
-    newZookeeper.close();
-    Thread.sleep(10000);
-    connection = (ZkConnection) zkClient.getConnection();
-    oldZookeeper = connection.getZookeeper();
-    LOG.info("After session expiry sessionId = " + oldZookeeper.getSessionId());
-  }
-
-  protected void setupStateModel(String clusterName)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor(_gZkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    StateModelConfigGenerator generator = new StateModelConfigGenerator();
-    StateModelDefinition masterSlave =
-        new StateModelDefinition(generator.generateConfigForMasterSlave());
-    accessor.setProperty(keyBuilder.stateModelDef(masterSlave.getId()), masterSlave);
-
-    StateModelDefinition leaderStandby =
-        new StateModelDefinition(generator.generateConfigForLeaderStandby());
-    accessor.setProperty(keyBuilder.stateModelDef(leaderStandby.getId()), leaderStandby);
-
-    StateModelDefinition onlineOffline =
-        new StateModelDefinition(generator.generateConfigForOnlineOffline());
-    accessor.setProperty(keyBuilder.stateModelDef(onlineOffline.getId()), onlineOffline);
-
-  }
-
-  protected List<IdealState> setupIdealState(String clusterName,
-                                             int[] nodes,
-                                             String[] resources,
-                                             int partitions,
-                                             int replicas)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor(_gZkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    List<IdealState> idealStates = new ArrayList<IdealState>();
-    List<String> instances = new ArrayList<String>();
-    for (int i : nodes)
-    {
-      instances.add("localhost_" + i);
-    }
-
-    for (String resourceName : resources)
-    {
-      IdealState idealState = new IdealState(resourceName);
-      for (int p = 0; p < partitions; p++)
-      {
-        List<String> value = new ArrayList<String>();
-        for (int r = 0; r < replicas; r++)
-        {
-          int n = nodes[(p + r) % nodes.length];
-          value.add("localhost_" + n);
-        }
-        idealState.getRecord().setListField(resourceName + "_" + p, value);
-      }
-
-      idealState.setReplicas(Integer.toString(replicas));
-      idealState.setStateModelDefRef("MasterSlave");
-      idealState.setIdealStateMode(IdealStateModeProperty.AUTO.toString());
-      idealState.setNumPartitions(partitions);
-      idealStates.add(idealState);
-
-      // System.out.println(idealState);
-      accessor.setProperty(keyBuilder.idealStates(resourceName), idealState);
-    }
-    return idealStates;
-  }
-
-  protected void setupLiveInstances(String clusterName, int[] liveInstances)
-  {
-    ZKHelixDataAccessor accessor =
-        new ZKHelixDataAccessor(clusterName, new ZkBaseDataAccessor(_gZkClient));
-    Builder keyBuilder = accessor.keyBuilder();
-
-    for (int i = 0; i < liveInstances.length; i++)
-    {
-      String instance = "localhost_" + liveInstances[i];
-      LiveInstance liveInstance = new LiveInstance(instance);
-      liveInstance.setSessionId("session_" + liveInstances[i]);
-      liveInstance.setHelixVersion("0.0.0");
-      accessor.setProperty(keyBuilder.liveInstance(instance), liveInstance);
-    }
-  }
-
-  protected void setupInstances(String clusterName, int[] instances)
-  {
-    HelixAdmin admin = new ZKHelixAdmin(_gZkClient);
-    for (int i = 0; i < instances.length; i++)
-    {
-      String instance = "localhost_" + instances[i];
-      InstanceConfig instanceConfig = new InstanceConfig(instance);
-      instanceConfig.setHostName("localhost");
-      instanceConfig.setPort("" + instances[i]);
-      instanceConfig.setInstanceEnabled(true);
-      admin.addInstance(clusterName, instanceConfig);
-    }
-  }
-
-  protected void runPipeline(ClusterEvent event, Pipeline pipeline)
-  {
-    try
-    {
-      pipeline.handle(event);
-      pipeline.finish();
-    }
-    catch (Exception e)
-    {
-      LOG.error("Exception while executing pipeline:" + pipeline
-          + ". Will not continue to next pipeline", e);
-    }
-  }
-
-  protected void runStage(ClusterEvent event, Stage stage) throws Exception
-  {
-    StageContext context = new StageContext();
-    stage.init(context);
-    stage.preProcess();
-    stage.process(event);
-    stage.postProcess();
-  }
-
-  protected Message createMessage(MessageType type,
-                                  String msgId,
-                                  String fromState,
-                                  String toState,
-                                  String resourceName,
-                                  String tgtName)
-  {
-    Message msg = new Message(type.toString(), msgId);
-    msg.setFromState(fromState);
-    msg.setToState(toState);
-    msg.getRecord().setSimpleField(Attributes.RESOURCE_NAME.toString(), resourceName);
-    msg.setTgtName(tgtName);
-    return msg;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddAlerts.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddAlerts.java b/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddAlerts.java
deleted file mode 100644
index 9cf0ff8..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddAlerts.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix.alerts;
-
-import java.util.Map;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.Mocks.MockManager;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.controller.stages.HealthDataCache;
-
-public class TestAddAlerts
-{
-
-  protected static final String CLUSTER_NAME = "TestCluster";
-
-  MockManager                   _helixManager;
-  AlertsHolder                  _alertsHolder;
-
-  public final String           EXP          = AlertParser.EXPRESSION_NAME;
-  public final String           CMP          = AlertParser.COMPARATOR_NAME;
-  public final String           CON          = AlertParser.CONSTANT_NAME;
-
-  @BeforeMethod()
-  public void setup()
-  {
-    _helixManager = new MockManager(CLUSTER_NAME);
-    _alertsHolder = new AlertsHolder(_helixManager, new HealthDataCache());
-  }
-
-  public boolean alertRecordContains(ZNRecord rec, String alertName)
-  {
-    Map<String, Map<String, String>> alerts = rec.getMapFields();
-    return alerts.containsKey(alertName);
-  }
-
-  public int alertsSize(ZNRecord rec)
-  {
-    Map<String, Map<String, String>> alerts = rec.getMapFields();
-    return alerts.size();
-  }
-
-  @Test()
-  public void testAddAlert() throws Exception
-  {
-    String alert =
-        EXP + "(accumulate()(dbFoo.partition10.latency))" + CMP + "(GREATER)" + CON
-            + "(10)";
-    _alertsHolder.addAlert(alert);
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.alerts()).getRecord();
-    System.out.println("alert: " + alert);
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(alertRecordContains(rec, alert));
-    AssertJUnit.assertEquals(1, alertsSize(rec));
-  }
-
-  @Test()
-  public void testAddTwoAlerts() throws Exception
-  {
-    String alert1 =
-        EXP + "(accumulate()(dbFoo.partition10.latency))" + CMP + "(GREATER)" + CON
-            + "(10)";
-    String alert2 =
-        EXP + "(accumulate()(dbFoo.partition10.latency))" + CMP + "(GREATER)" + CON
-            + "(100)";
-    _alertsHolder.addAlert(alert1);
-    _alertsHolder.addAlert(alert2);
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.alerts()).getRecord();
-    // System.out.println("alert: "+alert1);
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(alertRecordContains(rec, alert1));
-    AssertJUnit.assertTrue(alertRecordContains(rec, alert2));
-    AssertJUnit.assertEquals(2, alertsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddTwoWildcardAlert() throws Exception
-  {
-    String alert1 =
-        EXP + "(accumulate()(dbFoo.partition*.put*))" + CMP + "(GREATER)" + CON + "(10)";
-    _alertsHolder.addAlert(alert1);
-    
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.alerts()).getRecord();
-    // System.out.println("alert: "+alert1);
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(alertRecordContains(rec, alert1));
-    AssertJUnit.assertEquals(1, alertsSize(rec));
-  }
-
-  // add 2 wildcard alert here
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddPersistentStats.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddPersistentStats.java b/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddPersistentStats.java
deleted file mode 100644
index 8391d91..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAddPersistentStats.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix.alerts;
-
-import java.util.Map;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.HelixDataAccessor;
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.Mocks.MockManager;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.controller.stages.HealthDataCache;
-
-public class TestAddPersistentStats
-{
-
-  protected static final String CLUSTER_NAME = "TestCluster";
-
-  MockManager                   _helixManager;
-  StatsHolder                   _statsHolder;
-
-  @BeforeMethod(groups = { "unitTest" })
-  public void setup()
-  {
-    _helixManager = new MockManager(CLUSTER_NAME);
-    _statsHolder = new StatsHolder(_helixManager, new HealthDataCache());
-  }
-
-  public boolean statRecordContains(ZNRecord rec, String statName)
-  {
-    Map<String, Map<String, String>> stats = rec.getMapFields();
-    return stats.containsKey(statName);
-  }
-
-  public int statsSize(ZNRecord rec)
-  {
-    Map<String, Map<String, String>> stats = rec.getMapFields();
-    return stats.size();
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddStat() throws Exception
-  {
-    String stat = "window(5)(dbFoo.partition10.latency)";
-    _statsHolder.addStat(stat);
-    _statsHolder.persistStats();
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.persistantStat()).getRecord();
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(statRecordContains(rec, stat));
-    AssertJUnit.assertEquals(1, statsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddTwoStats() throws Exception
-  {
-    String stat1 = "window(5)(dbFoo.partition10.latency)";
-    _statsHolder.addStat(stat1);
-    _statsHolder.persistStats();
-    String stat2 = "window(5)(dbFoo.partition11.latency)";
-    _statsHolder.addStat(stat2);
-    _statsHolder.persistStats();
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.persistantStat()).getRecord();
-
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(statRecordContains(rec, stat1));
-    AssertJUnit.assertTrue(statRecordContains(rec, stat2));
-    AssertJUnit.assertEquals(2, statsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddDuplicateStat() throws Exception
-  {
-    String stat = "window(5)(dbFoo.partition10.latency)";
-    _statsHolder.addStat(stat);
-    _statsHolder.addStat(stat);
-    _statsHolder.persistStats();
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.persistantStat()).getRecord();
-
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(statRecordContains(rec, stat));
-    AssertJUnit.assertEquals(1, statsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddPairOfStats() throws Exception
-  {
-    String exp = "accumulate()(dbFoo.partition10.latency, dbFoo.partition10.count)";
-    _statsHolder.addStat(exp);
-    _statsHolder.persistStats();
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.persistantStat()).getRecord();
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(statRecordContains(rec,
-                                              "accumulate()(dbFoo.partition10.latency)"));
-    AssertJUnit.assertTrue(statRecordContains(rec,
-                                              "accumulate()(dbFoo.partition10.count)"));
-    AssertJUnit.assertEquals(2, statsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddStatsWithOperators() throws Exception
-  {
-    String exp =
-        "accumulate()(dbFoo.partition10.latency, dbFoo.partition10.count)|EACH|ACCUMULATE|DIVIDE";
-    _statsHolder.addStat(exp);
-    _statsHolder.persistStats();
-
-    HelixDataAccessor accessor = _helixManager.getHelixDataAccessor();
-    Builder keyBuilder = accessor.keyBuilder();
-
-    ZNRecord rec = accessor.getProperty(keyBuilder.persistantStat()).getRecord();
-
-    System.out.println("rec: " + rec.toString());
-    AssertJUnit.assertTrue(statRecordContains(rec,
-                                              "accumulate()(dbFoo.partition10.latency)"));
-    AssertJUnit.assertTrue(statRecordContains(rec,
-                                              "accumulate()(dbFoo.partition10.count)"));
-    AssertJUnit.assertEquals(2, statsSize(rec));
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddNonExistentAggregator() throws Exception
-  {
-    String exp = "fakeagg()(dbFoo.partition10.latency)";
-    boolean caughtException = false;
-    try
-    {
-      _statsHolder.addStat(exp);
-    }
-    catch (HelixException e)
-    {
-      caughtException = true;
-    }
-    AssertJUnit.assertTrue(caughtException);
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testGoodAggregatorBadArgs() throws Exception
-  {
-    String exp = "accumulate(10)(dbFoo.partition10.latency)";
-    boolean caughtException = false;
-    try
-    {
-      _statsHolder.addStat(exp);
-    }
-    catch (HelixException e)
-    {
-      caughtException = true;
-    }
-    AssertJUnit.assertTrue(caughtException);
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddBadNestingStat1() throws Exception
-  {
-    String exp = "window((5)(dbFoo.partition10.latency)";
-    boolean caughtException = false;
-    try
-    {
-      _statsHolder.addStat(exp);
-    }
-    catch (HelixException e)
-    {
-      caughtException = true;
-    }
-    AssertJUnit.assertTrue(caughtException);
-  }
-
-  @Test(groups = { "unitTest" })
-  public void testAddBadNestingStat2() throws Exception
-  {
-    String exp = "window(5)(dbFoo.partition10.latency))";
-    boolean caughtException = false;
-    try
-    {
-      _statsHolder.addStat(exp);
-    }
-    catch (HelixException e)
-    {
-      caughtException = true;
-    }
-    AssertJUnit.assertTrue(caughtException);
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/alerts/TestAlertValidation.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAlertValidation.java b/helix-core/src/test/java/com/linkedin/helix/alerts/TestAlertValidation.java
deleted file mode 100644
index ab202cb..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/alerts/TestAlertValidation.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Copyright (C) 2012 LinkedIn Inc <op...@linkedin.com>
- *
- * Licensed 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 com.linkedin.helix.alerts;
-
-import org.testng.annotations.Test;
-import org.testng.AssertJUnit;
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.HelixException;
-import com.linkedin.helix.alerts.AlertParser;
-
-@Test
-public class TestAlertValidation {
-
-	public final String EXP = AlertParser.EXPRESSION_NAME;
-	public final String CMP = AlertParser.COMPARATOR_NAME;
-	public final String CON = AlertParser.CONSTANT_NAME;
-
-	@Test
-	public void testSimple() {
-		String alertName = EXP + "(accumulate()(dbFoo.partition10.latency)) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertFalse(caughtException);
-	}
-	
-	@Test
-	public void testSingleInSingleOut() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition10.latency)|EXPAND) " + CMP
-				+ "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertFalse(caughtException);
-	}
-
-	@Test
-	public void testDoubleInDoubleOut() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition10.latency, dbFoo.partition11.latency)|EXPAND) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertTrue(caughtException);
-	}
-
-	@Test
-	public void testTwoStageOps() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition*.latency, dbFoo.partition*.count)|EXPAND|DIVIDE) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertFalse(caughtException);
-	}
-
-	@Test
-	public void testTwoListsIntoOne() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition10.latency, dbFoo.partition11.count)|SUM) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertFalse(caughtException);
-	}
-
-	@Test
-	public void testSumEach() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition*.latency, dbFoo.partition*.count)|EXPAND|SUMEACH|DIVIDE) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertFalse(caughtException);
-	}
-
-	@Test
-	public void testNeedTwoTuplesGetOne() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition*.latency)|EXPAND|DIVIDE) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertTrue(caughtException);
-	}
-
-	@Test
-	public void testExtraPipe() {
-		String alertName = EXP + "(accumulate()(dbFoo.partition10.latency)|) "
-				+ CMP + "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertTrue(caughtException);
-	}
-
-	@Test
-	public void testAlertUnknownOp() {
-		String alertName = EXP
-				+ "(accumulate()(dbFoo.partition10.latency)|BADOP) " + CMP
-				+ "(GREATER) " + CON + "(10)";
-		boolean caughtException = false;
-		try {
-			AlertParser.validateAlert(alertName);
-		} catch (HelixException e) {
-			caughtException = true;
-			e.printStackTrace();
-		}
-		AssertJUnit.assertTrue(caughtException);
-	}
-}