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
[30/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/main/scripts/integration-test/script/driver_cmd_dict.py
----------------------------------------------------------------------
diff --git a/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py b/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
index 1be9209..3968c86 100644
--- a/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
+++ b/helix-core/src/main/scripts/integration-test/script/driver_cmd_dict.py
@@ -147,7 +147,7 @@ cmd_direct_call={
,"IVY_DIR/org/restlet/org.restlet/1.1.10/org.restlet-1.1.10.jar"
,"IVY_DIR/com/noelios/restlet/com.noelios.restlet/1.1.10/com.noelios.restlet-1.1.10.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.tools.ClusterSetup"
+ ,"class_name":"org.apache.helix.tools.ClusterSetup"
,"before_cmd":"../../../mvn package -Dmaven.test.skip.exec=true" # build jar first
}
@@ -168,7 +168,7 @@ cmd_direct_call={
,"IVY_DIR/org/apache/commons/commons-math/2.1/commons-math-2.1.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.mock.storage.DummyProcess"
+ ,"class_name":"org.apache.helix.mock.storage.DummyProcess"
,"before_cmd":"../../../mvn package -Dmaven.test.skip.exec=true" # build jar first
}
@@ -191,7 +191,7 @@ cmd_direct_call={
,"IVY_DIR/com/noelios/restlet/com.noelios.restlet/1.1.10/com.noelios.restlet-1.1.10.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.mock.storage.MockHealthReportParticipant"
+ ,"class_name":"org.apache.helix.mock.storage.MockHealthReportParticipant"
,"before_cmd":"../../../mvn package -Dmaven.test.skip.exec=true" # build jar first
}
@@ -213,7 +213,7 @@ cmd_direct_call={
,"IVY_DIR/org/restlet/org.restlet/1.1.10/org.restlet-1.1.10.jar"
,"IVY_DIR/com/noelios/restlet/com.noelios.restlet/1.1.10/com.noelios.restlet-1.1.10.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.controller.HelixControllerMain"
+ ,"class_name":"org.apache.helix.controller.HelixControllerMain"
,"before_cmd":"../../../mvn package -Dmaven.test.skip.exec=true" # build jar first
}
@@ -234,7 +234,7 @@ cmd_direct_call={
,"IVY_DIR/org/restlet/org.restlet/1.1.10/org.restlet-1.1.10.jar"
,"IVY_DIR/com/noelios/restlet/com.noelios.restlet/1.1.10/com.noelios.restlet-1.1.10.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.tools.ClusterStateVerifier"
+ ,"class_name":"org.apache.helix.tools.ClusterStateVerifier"
,"before_cmd":"../../../mvn package -Dmaven.test.skip.exec=true" # build jar first
}
@@ -246,7 +246,7 @@ cmd_direct_call={
,"IVY_DIR/commons-cli/commons-cli/1.2/commons-cli-1.2.jar"
,"IVY_DIR/commons-math/commons-math/2.1/commons-math-2.1.jar"
]+cm_jar_files
- ,"class_name":"com.linkedin.helix.mock.storage.MockStorageProcess"
+ ,"class_name":"org.apache.helix.mock.storage.MockStorageProcess"
}
}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/conf/testng.xml
----------------------------------------------------------------------
diff --git a/helix-core/src/test/conf/testng.xml b/helix-core/src/test/conf/testng.xml
index 1455d97..ec58b3a 100644
--- a/helix-core/src/test/conf/testng.xml
+++ b/helix-core/src/test/conf/testng.xml
@@ -20,21 +20,21 @@
<suite name="Suite" parallel="none">
<test name="Test" preserve-order="true">
<packages>
- <package name="com.linkedin.helix.*"/>
+ <package name="org.apache.helix.*"/>
<!--
- <package name="com.linkedin.helix.messaging.handling"/>
- <package name="com.linkedin.helix.agent.file"/>
- <package name="com.linkedin.helix.monitoring"/>
- <package name="com.linkedin.helix.store.zk"/>
- <package name="com.linkedin.helix.messaging"/>
- <package name="com.linkedin.helix.controller.stages"/>
- <package name="com.linkedin.helix.store.file"/>
- <package name="com.linkedin.helix.store"/>
- <package name="com.linkedin.helix.monitoring.mbeans"/>
- <package name="com.linkedin.helix.participant"/>
- <package name="com.linkedin.helix"/>
- <package name="com.linkedin.helix.agent.zk"/>
- <package name="com.linkedin.helix.integration"/>
+ <package name="org.apache.helix.messaging.handling"/>
+ <package name="org.apache.helix.agent.file"/>
+ <package name="org.apache.helix.monitoring"/>
+ <package name="org.apache.helix.store.zk"/>
+ <package name="org.apache.helix.messaging"/>
+ <package name="org.apache.helix.controller.stages"/>
+ <package name="org.apache.helix.store.file"/>
+ <package name="org.apache.helix.store"/>
+ <package name="org.apache.helix.monitoring.mbeans"/>
+ <package name="org.apache.helix.participant"/>
+ <package name="org.apache.helix"/>
+ <package name="org.apache.helix.agent.zk"/>
+ <package name="org.apache.helix.integration"/>
-->
</packages>
</test>
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/AppTest.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/AppTest.java b/helix-core/src/test/java/com/linkedin/helix/AppTest.java
deleted file mode 100644
index 3a887cb..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/AppTest.java
+++ /dev/null
@@ -1,189 +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.testng.annotations.Test;
-import java.io.IOException;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-
-import org.I0Itec.zkclient.IDefaultNameSpace;
-import org.I0Itec.zkclient.IZkChildListener;
-import org.I0Itec.zkclient.IZkStateListener;
-import org.I0Itec.zkclient.ZkClient;
-import org.I0Itec.zkclient.ZkServer;
-import org.I0Itec.zkclient.serialize.BytesPushThroughSerializer;
-import org.apache.zookeeper.CreateMode;
-import org.apache.zookeeper.WatchedEvent;
-import org.apache.zookeeper.Watcher;
-import org.apache.zookeeper.Watcher.Event.EventType;
-import org.apache.zookeeper.ZooKeeper;
-import org.apache.zookeeper.Watcher.Event.KeeperState;
-import org.apache.zookeeper.ZooDefs.Ids;
-import org.apache.zookeeper.data.ACL;
-
-import com.linkedin.helix.model.Message;
-
-/**
- * Unit test for simple App.
- */
-public class AppTest
-{
- /**
- * Create the test case
- *
- * @param testName
- * name of the test case
- */
- public AppTest(String testName)
- {
- }
-
- @Test(enabled = false)
- private static void testChrootWithZkClient() throws Exception
- {
- ZkClient client = new ZkClient("localhost:2181/foo");
- IZkStateListener stateChangeListener = new IZkStateListener()
- {
-
- @Override
- public void handleStateChanged(KeeperState state) throws Exception
- {
- System.out
- .println("AppTest.main(...).new IZkStateListener() {...}.handleStateChanged()"
- + state);
- }
-
- @Override
- public void handleNewSession() throws Exception
- {
- System.out
- .println("AppTest.main(...).new IZkStateListener() {...}.handleNewSession()");
- }
- };
- client.subscribeStateChanges(stateChangeListener);
- boolean waitUntilConnected = client.waitUntilConnected(10000,
- TimeUnit.MILLISECONDS);
- System.out.println("Connected " + waitUntilConnected);
- client.waitForKeeperState(KeeperState.Disconnected, 20000,
- TimeUnit.MILLISECONDS);
- // server.start();
- client.waitUntilConnected();
- Thread.currentThread().join();
- }
-
- @Test(enabled = false)
- private static void testChroot() throws Exception
- {
- Watcher watcher = new Watcher()
- {
- @Override
- public void process(WatchedEvent event)
- {
- System.out.println("Event:" + event);
- }
- };
- ZooKeeper zk = new ZooKeeper("localhost:2181/foo", 6000, watcher);
- // uncommenting this line will not cause infinite connect/disconnect
- // zk.create("/", new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
-
- zk.exists("/", true);
- System.out
- .println("Stop the server and restart it when you see this message");
- Thread.currentThread().join();
- }
-
- @Test(enabled = false)
- private static void testZKClient() throws InterruptedException
- {
- IDefaultNameSpace defaultNameSpace = new IDefaultNameSpace()
- {
- @Override
- public void createDefaultNameSpace(ZkClient zkClient)
- {
- }
- };
- String dataDir = "/tmp/dataDir";
- String logDir = "/tmp/logDir";
- // ZkServer server = new ZkServer(dataDir, logDir, defaultNameSpace, 2181);
- // server.start();
-
- ZkClient client = new ZkClient("localhost:2181/foo");
- IZkStateListener stateChangeListener = new IZkStateListener()
- {
-
- @Override
- public void handleStateChanged(KeeperState state) throws Exception
- {
- System.out
- .println("AppTest.main(...).new IZkStateListener() {...}.handleStateChanged()"
- + state);
- }
-
- @Override
- public void handleNewSession() throws Exception
- {
- System.out
- .println("AppTest.main(...).new IZkStateListener() {...}.handleNewSession()");
- }
- };
- client.subscribeStateChanges(stateChangeListener);
- boolean waitUntilConnected = client.waitUntilConnected(10000,
- TimeUnit.MILLISECONDS);
- System.out.println("Connected " + waitUntilConnected);
- IZkChildListener listener1 = new IZkChildListener()
- {
-
- @Override
- public void handleChildChange(String parentPath,
- List<String> currentChilds) throws Exception
- {
- System.out.println("listener 1 Change at path:" + parentPath);
- }
- };
- IZkChildListener listener2 = new IZkChildListener()
- {
- @Override
- public void handleChildChange(String parentPath,
- List<String> currentChilds) throws Exception
- {
- System.out.println("listener2 Change at path:" + parentPath);
- }
- };
-
- client.subscribeChildChanges("/", listener1);
- client.subscribeChildChanges("/foo", listener2);
-
- // server.shutdown();
- client.waitForKeeperState(KeeperState.Disconnected, 20000,
- TimeUnit.MILLISECONDS);
- // server.start();
- client.waitUntilConnected();
-
- Thread.sleep(1000);
- client.setZkSerializer(new BytesPushThroughSerializer());
- client.create("/test", new byte[0], CreateMode.EPHEMERAL);
- Thread.sleep(1000);
- }
-
- public static void main(String[] args) throws Exception
- {
- //testChroot();
- // testZKClient();
- // testChrootWithZkClient();
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/DummyProcessThread.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/DummyProcessThread.java b/helix-core/src/test/java/com/linkedin/helix/DummyProcessThread.java
deleted file mode 100644
index c61d287..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/DummyProcessThread.java
+++ /dev/null
@@ -1,75 +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;
-
-import com.linkedin.helix.mock.storage.DummyProcess.DummyLeaderStandbyStateModelFactory;
-import com.linkedin.helix.mock.storage.DummyProcess.DummyOnlineOfflineStateModelFactory;
-import com.linkedin.helix.mock.storage.DummyProcess.DummyStateModelFactory;
-import com.linkedin.helix.participant.StateMachineEngine;
-
-public class DummyProcessThread implements Runnable
-{
- private static final Logger LOG = Logger.getLogger(DummyProcessThread.class);
-
- HelixManager _manager;
- String _instanceName;
-
- public DummyProcessThread(HelixManager manager, String instanceName)
- {
- _manager = manager;
- _instanceName = instanceName;
- }
-
- @Override
- public void run()
- {
- try
- {
- DummyStateModelFactory stateModelFactory = new DummyStateModelFactory(0);
-// StateMachineEngine genericStateMachineHandler =
-// new StateMachineEngine();
- StateMachineEngine stateMach = _manager.getStateMachineEngine();
- stateMach.registerStateModelFactory("MasterSlave", stateModelFactory);
-
- DummyLeaderStandbyStateModelFactory stateModelFactory1 = new DummyLeaderStandbyStateModelFactory(10);
- DummyOnlineOfflineStateModelFactory stateModelFactory2 = new DummyOnlineOfflineStateModelFactory(10);
- stateMach.registerStateModelFactory("LeaderStandby", stateModelFactory1);
- stateMach.registerStateModelFactory("OnlineOffline", stateModelFactory2);
-// _manager.getMessagingService()
-// .registerMessageHandlerFactory(MessageType.STATE_TRANSITION.toString(),
-// genericStateMachineHandler);
-
- _manager.connect();
- Thread.currentThread().join();
- }
- catch (InterruptedException e)
- {
- String msg =
- "participant:" + _instanceName + ", " + Thread.currentThread().getName()
- + " interrupted";
- LOG.info(msg);
- // System.err.println(msg);
- }
- 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/ExternalCommand.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/ExternalCommand.java b/helix-core/src/test/java/com/linkedin/helix/ExternalCommand.java
deleted file mode 100644
index 0a19f2c..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/ExternalCommand.java
+++ /dev/null
@@ -1,389 +0,0 @@
-package com.linkedin.helix;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.TimeoutException;
-
-import org.apache.log4j.Logger;
-
-/**
-* This class encapsulates a java <code>Process</code> to handle properly
-* output and error and preventing potential deadlocks. The idea is that the
-* command is executed and you can get the error or output. Simple to use.
-* Should not be used for big outputs because they are buffered internally.
-*
-* @author ypujante@linkedin.com
-*/
-public class ExternalCommand
-{
- public static final String MODULE = ExternalCommand.class.getName();
- public static final Logger LOG = Logger.getLogger(MODULE);
-
- private final ProcessBuilder _processBuilder;
-
- private Process _process;
- private InputReader _out;
- private InputReader _err;
-
- private static class InputReader extends Thread
- {
- private static final int BUFFER_SIZE = 2048;
-
- private final InputStream _in;
- private final ByteArrayOutputStream _out;
- private boolean _running = false;
-
- InputReader(InputStream in)
- {
- _in = in;
- _out = new ByteArrayOutputStream();
- }
-
- @Override
- public void run()
- {
- _running = true;
-
- byte[] buf = new byte[BUFFER_SIZE];
- int n = 0;
- try
- {
- while((n = _in.read(buf)) != -1)
- _out.write(buf, 0, n);
- }
- catch(IOException e)
- {
- LOG.error("error while reading external command", e);
- }
-
- _running = false;
- }
-
- public byte[] getOutput()
- {
- if(_running)
- throw new IllegalStateException("wait for process to be completed");
-
- return _out.toByteArray();
- }
- }
- /**
-* Constructor */
- public ExternalCommand(ProcessBuilder processBuilder)
- {
- _processBuilder = processBuilder;
- }
-
- /**
-* After creating the command, you have to start it...
-*
-* @throws IOException
-*/
- public void start() throws IOException
- {
- _process = _processBuilder.start();
- _out = new InputReader(new BufferedInputStream(_process.getInputStream()));
- _err = new InputReader(new BufferedInputStream(_process.getErrorStream()));
-
- _out.start();
- _err.start();
- }
-
- /**
-* @see ProcessBuilder
-*/
- public Map<String, String> getEnvironment()
- {
- return _processBuilder.environment();
- }
-
- /**
-* @see ProcessBuilder
-*/
- public File getWorkingDirectory()
- {
- return _processBuilder.directory();
- }
-
- /**
-* @see ProcessBuilder
-*/
- public void setWorkingDirectory(File directory)
- {
- _processBuilder.directory(directory);
- }
-
- /**
-* @see ProcessBuilder
-*/
- public boolean getRedirectErrorStream()
- {
- return _processBuilder.redirectErrorStream();
- }
-
- /**
-* @see ProcessBuilder
-*/
- public void setRedirectErrorStream(boolean redirectErrorStream)
- {
- _processBuilder.redirectErrorStream(redirectErrorStream);
- }
-
- public byte[] getOutput() throws InterruptedException
- {
- waitFor();
- return _out.getOutput();
- }
-
- public byte[] getError() throws InterruptedException
- {
- waitFor();
- return _err.getOutput();
- }
-
- /**
-* Returns the output as a string.
-*
-* @param encoding
-* @return encoded string
-* @throws InterruptedException
-* @throws UnsupportedEncodingException
-*/
- public String getStringOutput(String encoding) throws InterruptedException,
- UnsupportedEncodingException
- {
- return new String(getOutput(), encoding);
- }
-
- /**
-* Returns the output as a string. Uses encoding "UTF-8".
-*
-* @return utf8 encoded string
-* @throws InterruptedException
-*/
- public String getStringOutput() throws InterruptedException
- {
- try
- {
- return getStringOutput("UTF-8");
- }
- catch(UnsupportedEncodingException e)
- {
- // should not happen
- throw new RuntimeException(e);
- }
- }
-
- /**
-* Returns the error as a string.
-*
-* @param encoding
-* @return error as string
-* @throws InterruptedException
-* @throws UnsupportedEncodingException
-*/
- public String getStringError(String encoding) throws InterruptedException,
- UnsupportedEncodingException
- {
- return new String(getError(), encoding);
- }
-
- /**
-* Returns the error as a string. Uses encoding "UTF-8".
-*
-* @return error as string
-* @throws InterruptedException
-*/
- public String getStringError() throws InterruptedException
- {
- try
- {
- return getStringError("UTF-8");
- }
- catch(UnsupportedEncodingException e)
- {
- // should not happen
- throw new RuntimeException(e);
- }
- }
-
- /**
-* Properly waits until everything is complete: joins on the thread that
-* reads the output, joins on the thread that reads the error and finally
-* wait for the process to be finished.
-* @return the status code of the process.
-*
-* @throws InterruptedException
-*/
- public int waitFor() throws InterruptedException
- {
- if(_process == null)
- throw new IllegalStateException("you must call start first");
-
- _out.join();
- _err.join();
- return _process.waitFor();
- }
-
- /**
-* Properly waits until everything is complete: joins on the thread that
-* reads the output, joins on the thread that reads the error and finally
-* wait for the process to be finished.
-* If the process has not completed before the timeout, throws a
-* {@link TimeoutException}
-* @return the status code of the process.
-*
-* @throws TimeoutException
-* @throws InterruptedException
-*/
- public int waitFor(long timeout) throws InterruptedException, TimeoutException
- {
- if(_process == null)
- throw new IllegalStateException("you must call start first");
-
-// Chronos c = new Chronos();
- _out.join(timeout);
-// timeout -= c.tick();
- if (timeout <= 0)
- throw new TimeoutException("Wait timed out");
- _err.join(timeout);
-// timeout -= c.tick();
- if (timeout <= 0)
- throw new TimeoutException("Wait timed out");
-
- // there is no timeout in this API, not much we can do here
- // waiting on the other two threads should give us some safety
- return _process.waitFor();
- }
-
- public int exitValue()
- {
- if(_process == null)
- throw new IllegalStateException("you must call start first");
-
- return _process.exitValue();
- }
-
- public void destroy()
- {
- if(_process == null)
- throw new IllegalStateException("you must call start first");
-
- _process.destroy();
- }
-
- /**
-* Creates an external process from the command. It is not started and you have to call
-* start on it!
-*
-* @param commands the command to execute
-* @return the process */
- public static ExternalCommand create(String... commands)
- {
- ExternalCommand ec = new ExternalCommand(new ProcessBuilder(commands));
- return ec;
- }
-
- /**
-* Creates an external process from the command. It is not started and you have to call
-* start on it!
-*
-* @param commands the command to execute
-* @return the process */
- public static ExternalCommand create(List<String> commands)
- {
- ExternalCommand ec = new ExternalCommand(new ProcessBuilder(commands));
- return ec;
- }
-
- /**
-* Creates an external process from the command. The command is executed.
-*
-* @param commands the commands to execute
-* @return the process
-* @throws IOException if there is an error */
- public static ExternalCommand start(String... commands) throws IOException
- {
- ExternalCommand ec = new ExternalCommand(new ProcessBuilder(commands));
- ec.start();
- return ec;
- }
-
- /**
-* Executes the external command in the given working directory and waits for it to be
-* finished.
-*
-* @param workingDirectory the root directory from where to run the command
-* @param command the command to execute (should be relative to the working directory
-* @param args the arguments to the command
-* @return the process */
- public static ExternalCommand execute(File workingDirectory,
- String command,
- String... args)
- throws IOException, InterruptedException
- {
- try
- {
- return executeWithTimeout(workingDirectory, command, 0, args);
- }
- catch (TimeoutException e)
- {
- // Can't happen!
- throw new IllegalStateException(MODULE + ".execute: Unexpected timeout occurred!");
- }
- }
-
-/**
-* Executes the external command in the given working directory and waits (until timeout
-* is elapsed) for it to be finished.
-*
-* @param workingDirectory
-* the root directory from where to run the command
-* @param command
-* the command to execute (should be relative to the working directory
-* @param timeout
-* the maximum amount of time to wait for this external command (in ms). If
-* this value is less than or equal to 0, timeout is ignored
-* @param args
-* the arguments to the command
-* @return the process
-*/
- public static ExternalCommand executeWithTimeout(File workingDirectory,
- String command,
- long timeout,
- String... args)
- throws IOException, InterruptedException, TimeoutException
- {
- List<String> arguments = new ArrayList<String>(args.length + 1);
-
- arguments.add(new File(workingDirectory, command).getAbsolutePath());
- arguments.addAll(Arrays.asList(args));
-
- ExternalCommand cmd = ExternalCommand.create(arguments);
-
- cmd.setWorkingDirectory(workingDirectory);
-
- cmd.setRedirectErrorStream(true);
-
- cmd.start();
-
- /* Use timeout if it is a valid value! */
- if (timeout <= 0)
- cmd.waitFor();
- else
- cmd.waitFor(timeout);
-
- if (LOG.isDebugEnabled())
- LOG.debug(cmd.getStringOutput());
-
- return cmd;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/Mocks.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/Mocks.java b/helix-core/src/test/java/com/linkedin/helix/Mocks.java
deleted file mode 100644
index 8cf0fc8..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/Mocks.java
+++ /dev/null
@@ -1,765 +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.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.Future;
-
-import org.I0Itec.zkclient.DataUpdater;
-import org.I0Itec.zkclient.IZkChildListener;
-import org.I0Itec.zkclient.IZkDataListener;
-import org.apache.zookeeper.data.Stat;
-
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.healthcheck.HealthReportProvider;
-import com.linkedin.helix.healthcheck.ParticipantHealthReportCollector;
-import com.linkedin.helix.messaging.AsyncCallback;
-import com.linkedin.helix.messaging.handling.HelixTaskExecutor;
-import com.linkedin.helix.messaging.handling.HelixTaskResult;
-import com.linkedin.helix.messaging.handling.MessageHandlerFactory;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.participant.StateMachineEngine;
-import com.linkedin.helix.participant.statemachine.StateModel;
-import com.linkedin.helix.participant.statemachine.StateModelInfo;
-import com.linkedin.helix.participant.statemachine.Transition;
-import com.linkedin.helix.store.PropertyStore;
-import com.linkedin.helix.store.zk.ZkHelixPropertyStore;
-
-public class Mocks {
- public static class MockBaseDataAccessor implements BaseDataAccessor<ZNRecord> {
- Map<String, ZNRecord> map = new HashMap<String, ZNRecord>();
-
- @Override
- public boolean create(String path, ZNRecord record, int options) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean set(String path, ZNRecord record, int options) {
- System.err.println("Store.write()" + System.currentTimeMillis());
- map.put(path, record);
- try {
- Thread.sleep(50);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- return true;
- }
-
- @Override
- public boolean update(String path, DataUpdater<ZNRecord> updater,
- int options) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean remove(String path, int options) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean[] createChildren(List<String> paths,
- List<ZNRecord> records, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean[] setChildren(List<String> paths,
- List<ZNRecord> records, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean[] updateChildren(List<String> paths,
- List<DataUpdater<ZNRecord>> updaters, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean[] remove(List<String> paths, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public ZNRecord get(String path, Stat stat, int options) {
- return map.get(path);
- }
-
- @Override
- public List<ZNRecord> get(List<String> paths, List<Stat> stats,
- int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public List<ZNRecord> getChildren(String parentPath, List<Stat> stats,
- int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public List<String> getChildNames(String parentPath, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean exists(String path, int options) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean[] exists(List<String> paths, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Stat[] getStats(List<String> paths, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Stat getStat(String path, int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void subscribeDataChanges(String path, IZkDataListener listener)
- {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void unsubscribeDataChanges(String path, IZkDataListener listener)
- {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public List<String> subscribeChildChanges(String path, IZkChildListener listener)
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void unsubscribeChildChanges(String path, IZkChildListener listener)
- {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void reset()
- {
- // TODO Auto-generated method stub
-
- }
-
-// @Override
-// public boolean subscribe(String path, IZkListener listener) {
-// // TODO Auto-generated method stub
-// return false;
-// }
-//
-// @Override
-// public boolean unsubscribe(String path, IZkListener listener) {
-// // TODO Auto-generated method stub
-// return false;
-// }
-
- }
-
- public static class MockStateModel extends StateModel {
- boolean stateModelInvoked = false;
-
- public void onBecomeMasterFromSlave(Message msg,
- NotificationContext context) {
- stateModelInvoked = true;
- }
-
- public void onBecomeSlaveFromOffline(Message msg,
- NotificationContext context) {
- stateModelInvoked = true;
- }
- }
-
- @StateModelInfo(states = "{'OFFLINE','SLAVE','MASTER'}", initialState = "OFFINE")
- public static class MockStateModelAnnotated extends StateModel {
- boolean stateModelInvoked = false;
-
- @Transition(from = "SLAVE", to = "MASTER")
- public void slaveToMaster(Message msg, NotificationContext context) {
- stateModelInvoked = true;
- }
-
- @Transition(from = "OFFLINE", to = "SLAVE")
- public void offlineToSlave(Message msg, NotificationContext context) {
- stateModelInvoked = true;
- }
- }
-
- public static class MockHelixTaskExecutor extends HelixTaskExecutor {
- boolean completionInvoked = false;
-
- @Override
- protected void reportCompletion(Message message) {
- System.out.println("Mocks.MockCMTaskExecutor.reportCompletion()");
- completionInvoked = true;
- }
-
- public boolean isDone(String taskId) {
- Future<HelixTaskResult> future = _taskMap.get(taskId);
- if (future != null) {
- return future.isDone();
- }
- return false;
- }
- }
-
- public static class MockManager implements HelixManager {
- MockAccessor accessor;
-
- private final String _clusterName;
- private final String _sessionId;
- String _instanceName;
- ClusterMessagingService _msgSvc;
- private String _version;
-
- public MockManager() {
- this("testCluster-" + Math.random() * 10000 % 999);
- }
-
- public MockManager(String clusterName) {
- _clusterName = clusterName;
- accessor = new MockAccessor(clusterName);
- _sessionId = UUID.randomUUID().toString();
- _instanceName = "testInstanceName";
- _msgSvc = new MockClusterMessagingService();
- }
-
- @Override
- public void disconnect() {
-
- }
-
- @Override
- public void addIdealStateChangeListener(
- IdealStateChangeListener listener) throws Exception {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addLiveInstanceChangeListener(
- LiveInstanceChangeListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addConfigChangeListener(ConfigChangeListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addMessageListener(MessageListener listener,
- String instanceName) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addCurrentStateChangeListener(
- CurrentStateChangeListener listener, String instanceName,
- String sessionId) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void addExternalViewChangeListener(
- ExternalViewChangeListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public DataAccessor getDataAccessor() {
- return null;
- }
-
- @Override
- public String getClusterName() {
- return _clusterName;
- }
-
- @Override
- public String getInstanceName() {
- return _instanceName;
- }
-
- @Override
- public void connect() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public String getSessionId() {
- return _sessionId;
- }
-
- @Override
- public boolean isConnected() {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public long getLastNotificationTime() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public void addControllerListener(ControllerChangeListener listener) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public boolean removeListener(Object listener) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public HelixAdmin getClusterManagmentTool() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public ClusterMessagingService getMessagingService() {
- // TODO Auto-generated method stub
- return _msgSvc;
- }
-
- @Override
- public ParticipantHealthReportCollector getHealthReportCollector() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public InstanceType getInstanceType() {
- return InstanceType.PARTICIPANT;
- }
-
- @Override
- public PropertyStore<ZNRecord> getPropertyStore() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public String getVersion() {
- return _version;
- }
-
- public void setVersion(String version) {
- _version = version;
- }
-
- @Override
- public void addHealthStateChangeListener(
- HealthStateChangeListener listener, String instanceName)
- throws Exception {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public StateMachineEngine getStateMachineEngine() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean isLeader() {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public ConfigAccessor getConfigAccessor() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void startTimerTasks() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void stopTimerTasks() {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public HelixDataAccessor getHelixDataAccessor() {
- return accessor;
- }
-
- @Override
- public void addPreConnectCallback(PreConnectCallback callback) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public ZkHelixPropertyStore<ZNRecord> getHelixPropertyStore()
- {
- // TODO Auto-generated method stub
- return null;
- }
-
- }
-
- public static class MockAccessor implements HelixDataAccessor // DataAccessor
- {
- private final String _clusterName;
- Map<String, ZNRecord> data = new HashMap<String, ZNRecord>();
- private final Builder _propertyKeyBuilder;
-
- public MockAccessor() {
- this("testCluster-" + Math.random() * 10000 % 999);
- }
-
- public MockAccessor(String clusterName) {
- _clusterName = clusterName;
- _propertyKeyBuilder = new PropertyKey.Builder(_clusterName);
- }
-
- Map<String, ZNRecord> map = new HashMap<String, ZNRecord>();
-
- @Override
- // public boolean setProperty(PropertyType type, HelixProperty value,
- // String... keys)
- public boolean setProperty(PropertyKey key, HelixProperty value) {
- // return setProperty(type, value.getRecord(), keys);
- String path = key.getPath();
- data.put(path, value.getRecord());
- return true;
- }
-
- // @Override
- // public boolean setProperty(PropertyType type, ZNRecord value,
- // String... keys)
- // {
- // String path = PropertyPathConfig.getPath(type, _clusterName, keys);
- // data.put(path, value);
- // return true;
- // }
-
- // @Override
- // public boolean updateProperty(PropertyType type, HelixProperty value,
- // String... keys)
- // {
- // return updateProperty(type, value.getRecord(), keys);
- // }
-
- @Override
- public <T extends HelixProperty> boolean updateProperty(
- PropertyKey key, T value) {
- // String path = PropertyPathConfig.getPath(type, _clusterName,
- // keys);
- String path = key.getPath();
- PropertyType type = key.getType();
- if (type.updateOnlyOnExists) {
- if (data.containsKey(path)) {
- if (type.mergeOnUpdate) {
- ZNRecord znRecord = new ZNRecord(data.get(path));
- znRecord.merge(value.getRecord());
- data.put(path, znRecord);
- } else {
- data.put(path, value.getRecord());
- }
- }
- } else {
- if (type.mergeOnUpdate) {
- if (data.containsKey(path)) {
- ZNRecord znRecord = new ZNRecord(data.get(path));
- znRecord.merge(value.getRecord());
- data.put(path, znRecord);
- } else {
- data.put(path, value.getRecord());
- }
- } else {
- data.put(path, value.getRecord());
- }
- }
-
- return true;
- }
-
- // @Override
- // public <T extends HelixProperty> T getProperty(Class<T> clazz,
- // PropertyType type,
- // String... keys)
- // {
- // ZNRecord record = getProperty(type, keys);
- // if (record == null)
- // {
- // return null;
- // }
- // return HelixProperty.convertToTypedInstance(clazz, record);
- // }
-
- @SuppressWarnings("unchecked")
- @Override
- public <T extends HelixProperty> T getProperty(PropertyKey key)
- // public ZNRecord getProperty(PropertyType type, String... keys)
- {
- // String path = PropertyPathConfig.getPath(type, _clusterName,
- // keys);
- String path = key.getPath();
- return (T) HelixProperty.convertToTypedInstance(key.getTypeClass(),
- data.get(path));
- }
-
- @Override
- public boolean removeProperty(PropertyKey key)
- // public boolean removeProperty(PropertyType type, String... keys)
- {
- String path = key.getPath(); // PropertyPathConfig.getPath(type,
- // _clusterName, keys);
- data.remove(path);
- return true;
- }
-
- @Override
- public List<String> getChildNames(PropertyKey propertyKey)
- // public List<String> getChildNames(PropertyType type, String... keys)
- {
- List<String> child = new ArrayList<String>();
- String path = propertyKey.getPath(); // PropertyPathConfig.getPath(type,
- // _clusterName, keys);
- for (String key : data.keySet()) {
- if (key.startsWith(path)) {
- String[] keySplit = key.split("\\/");
- String[] pathSplit = path.split("\\/");
- if (keySplit.length > pathSplit.length) {
- child.add(keySplit[pathSplit.length + 1]);
- }
- }
- }
- return child;
- }
-
- // @Override
- // public <T extends HelixProperty> List<T> getChildValues(Class<T>
- // clazz, PropertyType type,
- // String... keys)
- // {
- // List<ZNRecord> list = getChildValues(type, keys);
- // return HelixProperty.convertToTypedList(clazz, list);
- // }
-
- @SuppressWarnings("unchecked")
- @Override
- public <T extends HelixProperty> List<T> getChildValues(
- PropertyKey propertyKey)
- // public List<ZNRecord> getChildValues(PropertyType type, String...
- // keys)
- {
- List<ZNRecord> childs = new ArrayList<ZNRecord>();
- String path = propertyKey.getPath(); // PropertyPathConfig.getPath(type,
- // _clusterName, keys);
- for (String key : data.keySet()) {
- if (key.startsWith(path)) {
- String[] keySplit = key.split("\\/");
- String[] pathSplit = path.split("\\/");
- if (keySplit.length - pathSplit.length == 1) {
- ZNRecord record = data.get(key);
- if (record != null) {
- childs.add(record);
- }
- } else {
- System.out.println("keySplit:"
- + Arrays.toString(keySplit));
- System.out.println("pathSplit:"
- + Arrays.toString(pathSplit));
- }
- }
- }
- return (List<T>) HelixProperty.convertToTypedList(
- propertyKey.getTypeClass(), childs);
- }
-
- @Override
- public <T extends HelixProperty> Map<String, T> getChildValuesMap(
- PropertyKey key)
- // public <T extends HelixProperty> Map<String, T>
- // getChildValuesMap(Class<T> clazz,
- // PropertyType type, String... keys)
- {
- List<T> list = getChildValues(key);
- return HelixProperty.convertListToMap(list);
- }
-
- @Override
- public <T extends HelixProperty> boolean createProperty(
- PropertyKey key, T value) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public <T extends HelixProperty> boolean[] createChildren(
- List<PropertyKey> keys, List<T> children) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public <T extends HelixProperty> boolean[] setChildren(
- List<PropertyKey> keys, List<T> children) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public Builder keyBuilder() {
- return _propertyKeyBuilder;
- }
-
- @Override
- public BaseDataAccessor getBaseDataAccessor() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public <T extends HelixProperty> boolean[] updateChildren(
- List<String> paths, List<DataUpdater<ZNRecord>> updaters,
- int options) {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public <T extends HelixProperty> List<T> getProperty(List<PropertyKey> keys)
- {
- List<T> list = new ArrayList<T>();
- for (PropertyKey key : keys)
- {
- @SuppressWarnings("unchecked")
- T t = (T)getProperty(key);
- list.add(t);
- }
- return list;
- }
- }
-
- public static class MockHealthReportProvider extends HealthReportProvider {
-
- @Override
- public Map<String, String> getRecentHealthReport() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public void resetStats() {
- // TODO Auto-generated method stub
-
- }
-
- }
-
- public static class MockClusterMessagingService implements
- ClusterMessagingService {
-
- @Override
- public int send(Criteria recipientCriteria, Message message) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public int send(Criteria receipientCriteria, Message message,
- AsyncCallback callbackOnReply, int timeOut) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public int sendAndWait(Criteria receipientCriteria, Message message,
- AsyncCallback callbackOnReply, int timeOut) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public void registerMessageHandlerFactory(String type,
- MessageHandlerFactory factory) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public int send(Criteria receipientCriteria, Message message,
- AsyncCallback callbackOnReply, int timeOut, int retryCount) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public int sendAndWait(Criteria receipientCriteria, Message message,
- AsyncCallback callbackOnReply, int timeOut, int retryCount) {
- // TODO Auto-generated method stub
- return 0;
- }
-
- }
-// >>>>>>> 5ef256eeced461eae733d568ad730aabeda3c0f2
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/ScriptTestHelper.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/ScriptTestHelper.java b/helix-core/src/test/java/com/linkedin/helix/ScriptTestHelper.java
deleted file mode 100644
index 12ae227..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/ScriptTestHelper.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package com.linkedin.helix;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.concurrent.TimeoutException;
-
-import org.apache.log4j.Logger;
-import org.testng.Assert;
-
-public class ScriptTestHelper
-{
- private static final Logger LOG = Logger.getLogger(ScriptTestHelper.class);
-
- public static final String INTEGRATION_SCRIPT_DIR = "src/main/scripts/integration-test/script";
- public static final String INTEGRATION_TEST_DIR = "src/main/scripts/integration-test/testcases";
- public static final long EXEC_TIMEOUT = 1200;
-
- public static String getPrefix()
- {
- StringBuilder prefixBuilder = new StringBuilder("");
- String prefix = "";
- String filepath = INTEGRATION_SCRIPT_DIR;
- File integrationScriptDir = new File(filepath);
-
- while (!integrationScriptDir.exists())
- {
- prefixBuilder.append("../");
- prefix = prefixBuilder.toString();
-
- integrationScriptDir = new File(prefix + filepath);
-
- // Give up
- if (prefix.length() > 30)
- {
- return "";
- }
- }
- return new File(prefix).getAbsolutePath() + "/";
- }
-
- public static ExternalCommand runCommandLineTest(String testName, String... arguments) throws IOException, InterruptedException,
- TimeoutException
- {
- ExternalCommand cmd = ExternalCommand.executeWithTimeout(new File(getPrefix() + INTEGRATION_TEST_DIR),
- testName, EXEC_TIMEOUT, arguments);
- int exitValue = cmd.exitValue();
- String output = cmd.getStringOutput("UTF8");
-
- if (0 == exitValue)
- {
- LOG.info("Test " + testName + " has run. ExitCode=" + exitValue + ". Command output: " + output);
- }
- else
- {
- LOG.warn("Test " + testName + " is FAILING. ExitCode=" + exitValue + ". Command output: " + output);
- Assert.fail(output);
-// return cmd;
- }
- return cmd;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestClusterviewSerializer.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestClusterviewSerializer.java b/helix-core/src/test/java/com/linkedin/helix/TestClusterviewSerializer.java
deleted file mode 100644
index 60ef816..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestClusterviewSerializer.java
+++ /dev/null
@@ -1,73 +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.File;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.ClusterView;
-import com.linkedin.helix.ZNRecord;
-import com.linkedin.helix.manager.file.StaticFileHelixManager;
-import com.linkedin.helix.tools.ClusterViewSerializer;
-
-public class TestClusterviewSerializer
-{
- @Test ()
- public void testClusterviewSerializer() throws Exception
- {
- List<StaticFileHelixManager.DBParam> dbParams = new ArrayList<StaticFileHelixManager.DBParam>();
- // dbParams.add(new FileBasedClusterManager.DBParam("BizFollow", 1));
- dbParams.add(new StaticFileHelixManager.DBParam("BizProfile", 1));
- // dbParams.add(new FileBasedClusterManager.DBParam("EspressoDB", 10));
- // dbParams.add(new FileBasedClusterManager.DBParam("MailboxDB", 128));
- // dbParams.add(new FileBasedClusterManager.DBParam("MyDB", 8));
- // dbParams.add(new FileBasedClusterManager.DBParam("schemata", 1));
- // String[] nodesInfo = { "localhost:8900", "localhost:8901",
- // "localhost:8902", "localhost:8903",
- // "localhost:8904" };
- String[] nodesInfo = { "localhost:12918" };
- int replication = 0;
-
- ClusterView view = StaticFileHelixManager.generateStaticConfigClusterView(nodesInfo, dbParams, replication);
- view.setExternalView(new LinkedList<ZNRecord>());
- String file = "/tmp/clusterView.json";
- // ClusterViewSerializer serializer = new ClusterViewSerializer(file);
-
- // byte[] bytes;
- ClusterViewSerializer.serialize(view, new File(file));
- // String str1 = new String(bytes);
- ClusterView restoredView = ClusterViewSerializer.deserialize(new File(file));
- // logger.info(restoredView);
-
- // byte[] bytes2 = serializer.serialize(restoredView);
-
- VerifyClusterViews(view, restoredView);
- }
-
- public void VerifyClusterViews(ClusterView view1, ClusterView view2)
- {
- AssertJUnit.assertEquals(view1.getPropertyLists().size(), view2.getPropertyLists().size());
- AssertJUnit.assertEquals(view1.getExternalView().size(), view2.getExternalView().size());
- AssertJUnit.assertEquals(view1.getMemberInstanceMap().size(), view2.getMemberInstanceMap().size());
- AssertJUnit.assertEquals(view1.getInstances().size(), view2.getInstances().size());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestConfigAccessor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestConfigAccessor.java b/helix-core/src/test/java/com/linkedin/helix/TestConfigAccessor.java
deleted file mode 100644
index d1e2cca..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestConfigAccessor.java
+++ /dev/null
@@ -1,147 +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.List;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.ConfigScope.ConfigScopeProperty;
-
-public class TestConfigAccessor extends ZkUnitTestBase
-{
- final String _className = getShortClassName();
- final String _clusterName = "CLUSTER_" + _className;
-
- @Test
- public void testZkConfigAccessor() throws Exception
- {
- TestHelper.setupCluster(_clusterName, ZK_ADDR, 12918, "localhost", "TestDB", 1, 10, 5, 3,
- "MasterSlave", true);
-
- ConfigAccessor appConfig = new ConfigAccessor(_gZkClient);
- ConfigScope clusterScope = new ConfigScopeBuilder().forCluster(_clusterName).build();
-
- // cluster scope config
- String clusterConfigValue = appConfig.get(clusterScope, "clusterConfigKey");
- Assert.assertNull(clusterConfigValue);
-
- appConfig.set(clusterScope, "clusterConfigKey", "clusterConfigValue");
- clusterConfigValue = appConfig.get(clusterScope, "clusterConfigKey");
- Assert.assertEquals(clusterConfigValue, "clusterConfigValue");
-
- // resource scope config
- ConfigScope resourceScope = new ConfigScopeBuilder().forCluster(_clusterName)
- .forResource("testResource").build();
- appConfig.set(resourceScope, "resourceConfigKey", "resourceConfigValue");
- String resourceConfigValue = appConfig.get(resourceScope, "resourceConfigKey");
- Assert.assertEquals(resourceConfigValue, "resourceConfigValue");
-
- // partition scope config
- ConfigScope partitionScope = new ConfigScopeBuilder().forCluster(_clusterName)
- .forResource("testResource").forPartition("testPartition").build();
- appConfig.set(partitionScope, "partitionConfigKey", "partitionConfigValue");
- String partitionConfigValue = appConfig.get(partitionScope, "partitionConfigKey");
- Assert.assertEquals(partitionConfigValue, "partitionConfigValue");
-
- // participant scope config
- ConfigScope participantScope = new ConfigScopeBuilder().forCluster(_clusterName)
- .forParticipant("localhost_12918").build();
- appConfig.set(participantScope, "participantConfigKey", "participantConfigValue");
- String participantConfigValue = appConfig.get(participantScope, "participantConfigKey");
- Assert.assertEquals(participantConfigValue, "participantConfigValue");
-
- List<String> keys = appConfig.getKeys(ConfigScopeProperty.RESOURCE, _clusterName);
- Assert.assertEquals(keys.size(), 1, "should be [testResource]");
- Assert.assertEquals(keys.get(0), "testResource");
-
- keys = appConfig.getKeys(ConfigScopeProperty.CLUSTER, _clusterName);
- Assert.assertEquals(keys.size(), 1, "should be [" + _clusterName + "]");
- Assert.assertEquals(keys.get(0), _clusterName);
-
- keys = appConfig.getKeys(ConfigScopeProperty.PARTICIPANT, _clusterName);
- Assert.assertEquals(keys.size(), 5, "should be [localhost_12918~22] sorted");
- Assert.assertEquals(keys.get(0), "localhost_12918");
- Assert.assertEquals(keys.get(4), "localhost_12922");
-
- keys = appConfig.getKeys(ConfigScopeProperty.PARTITION, _clusterName, "testResource");
- Assert.assertEquals(keys.size(), 1, "should be [testPartition]");
- Assert.assertEquals(keys.get(0), "testPartition");
-
- keys = appConfig.getKeys(ConfigScopeProperty.RESOURCE, _clusterName, "testResource");
- Assert.assertEquals(keys.size(), 1, "should be [resourceConfigKey]");
- Assert.assertEquals(keys.get(0), "resourceConfigKey");
-
- keys = appConfig.getKeys(ConfigScopeProperty.CLUSTER, _clusterName, _clusterName);
- Assert.assertEquals(keys.size(), 1, "should be [clusterConfigKey]");
- Assert.assertEquals(keys.get(0), "clusterConfigKey");
-
- keys = appConfig.getKeys(ConfigScopeProperty.PARTICIPANT, _clusterName, "localhost_12918");
- Assert.assertEquals(keys.size(), 4, "should be [HELIX_ENABLED, HELIX_HOST, HELIX_PORT, participantConfigKey]");
- Assert.assertEquals(keys.get(3), "participantConfigKey");
-
- keys = appConfig.getKeys(ConfigScopeProperty.PARTITION, _clusterName, "testResource", "testPartition");
- Assert.assertEquals(keys.size(), 1, "should be [partitionConfigKey]");
- Assert.assertEquals(keys.get(0), "partitionConfigKey");
-
- // test configAccessor.remove()
- appConfig.remove(clusterScope, "clusterConfigKey");
- clusterConfigValue = appConfig.get(clusterScope, "clusterConfigKey");
- Assert.assertNull(clusterConfigValue, "Should be null since it's removed");
-
- appConfig.remove(resourceScope, "resourceConfigKey");
- resourceConfigValue = appConfig.get(resourceScope, "resourceConfigKey");
- Assert.assertNull(resourceConfigValue, "Should be null since it's removed");
-
- appConfig.remove(partitionScope, "partitionConfigKey");
- partitionConfigValue = appConfig.get(partitionScope, "partitionConfigKey");
- Assert.assertNull(partitionConfigValue, "Should be null since it's removed");
-
- appConfig.remove(participantScope, "participantConfigKey");
- participantConfigValue = appConfig.get(partitionScope, "participantConfigKey");
- Assert.assertNull(participantConfigValue, "Should be null since it's removed");
-
- // negative tests
- try
- {
- new ConfigScopeBuilder().forPartition("testPartition").build();
- Assert.fail("Should fail since cluster name is not set");
- } catch (Exception e)
- {
- // OK
- }
-
- try
- {
- new ConfigScopeBuilder().forCluster("testCluster").forPartition("testPartition").build();
- Assert.fail("Should fail since resource name is not set");
- } catch (Exception e)
- {
- // OK
- }
-
- try
- {
- new ConfigScopeBuilder().forParticipant("testParticipant").build();
- Assert.fail("Should fail since cluster name is not set");
- } catch (Exception e)
- {
- // OK
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestEspressoStorageClusterIdealState.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestEspressoStorageClusterIdealState.java b/helix-core/src/test/java/com/linkedin/helix/TestEspressoStorageClusterIdealState.java
deleted file mode 100644
index 1dff848..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestEspressoStorageClusterIdealState.java
+++ /dev/null
@@ -1,319 +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.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-
-import org.testng.Assert;
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.model.IdealState;
-import com.linkedin.helix.tools.ClusterSetup;
-import com.linkedin.helix.tools.IdealStateCalculatorForStorageNode;
-
-
-public class TestEspressoStorageClusterIdealState
-{
- @Test ()
- public void testEspressoStorageClusterIdealState() throws Exception
- {
- List<String> instanceNames = new ArrayList<String>();
- for(int i = 0;i < 5; i++)
- {
- instanceNames.add("localhost:123" + i);
- }
- int partitions = 8, replicas = 0;
- Map<String, Object> result0 = IdealStateCalculatorForStorageNode.calculateInitialIdealState(instanceNames, partitions, replicas);
- Verify(result0, partitions,replicas);
-
- partitions = 8192;
- replicas = 3;
-
- instanceNames.clear();
- for(int i = 0;i < 20; i++)
- {
- instanceNames.add("localhost:123" + i);
- }
- Map<String, Object> resultOriginal = IdealStateCalculatorForStorageNode.calculateInitialIdealState(instanceNames, partitions, replicas);
-
- Verify(resultOriginal, partitions,replicas);
- printStat(resultOriginal);
-
- Map<String, Object> result1 = IdealStateCalculatorForStorageNode.calculateInitialIdealState(instanceNames, partitions, replicas);
-
- List<String> instanceNames2 = new ArrayList<String>();
- for(int i = 30;i < 35; i++)
- {
- instanceNames2.add("localhost:123" + i);
- }
-
- IdealStateCalculatorForStorageNode.calculateNextIdealState(instanceNames2, result1);
-
- List<String> instanceNames3 = new ArrayList<String>();
- for(int i = 35;i < 40; i++)
- {
- instanceNames3.add("localhost:123" + i);
- }
-
- IdealStateCalculatorForStorageNode.calculateNextIdealState(instanceNames3, result1);
- Double masterKeepRatio = 0.0, slaveKeepRatio = 0.0;
- Verify(result1, partitions,replicas);
- double[] result = compareResult(resultOriginal, result1);
- masterKeepRatio = result[0];
- slaveKeepRatio = result[1];
- Assert.assertTrue(0.66 < masterKeepRatio && 0.67 > masterKeepRatio);
- Assert.assertTrue(0.66 < slaveKeepRatio && 0.67 > slaveKeepRatio);
-
- }
-
- @Test
- public void testRebalance2()
- {
- int partitions = 1256, replicas = 3;
- List<String> instanceNames = new ArrayList<String>();
-
- for(int i = 0;i < 10; i++)
- {
- instanceNames.add("localhost:123" + i);
- }
-
- Map<String, Object> resultOriginal = IdealStateCalculatorForStorageNode.calculateInitialIdealState(instanceNames, partitions, replicas);
-
- ZNRecord idealState1 = IdealStateCalculatorForStorageNode.convertToZNRecord(resultOriginal, "TestDB", "MASTER", "SLAVE");
-
- Map<String, Object> result1 = ClusterSetup.buildInternalIdealState(new IdealState(idealState1));
-
- List<String> instanceNames2 = new ArrayList<String>();
- for(int i = 30;i < 35; i++)
- {
- instanceNames2.add("localhost:123" + i);
- }
-
- Map<String, Object> result2 = IdealStateCalculatorForStorageNode.calculateNextIdealState(instanceNames2, result1);
-
- Verify(resultOriginal, partitions,replicas);
- Verify(result2, partitions,replicas);
- Double masterKeepRatio = 0.0, slaveKeepRatio = 0.0;
- double[] result = compareResult(resultOriginal, result2);
- masterKeepRatio = result[0];
- slaveKeepRatio = result[1];
- Assert.assertTrue(0.66 < masterKeepRatio && 0.67 > masterKeepRatio);
- Assert.assertTrue(0.66 < slaveKeepRatio && 0.67 > slaveKeepRatio);
- }
-
- public static void Verify(Map<String, Object> result, int partitions, int replicas)
- {
- Map<String, List<Integer>> masterAssignmentMap = (Map<String, List<Integer>>) (result.get("MasterAssignmentMap"));
- Map<String, Map<String, List<Integer>>> nodeSlaveAssignmentMap = (Map<String, Map<String, List<Integer>>>)(result.get("SlaveAssignmentMap"));
-
- AssertJUnit.assertTrue( partitions == (Integer)(result.get("partitions")));
-
- // Verify master partitions covers all master partitions on each node
- Map<Integer, Integer> masterCounterMap = new TreeMap<Integer, Integer>();
- for(int i = 0;i<partitions; i++)
- {
- masterCounterMap.put(i, 0);
- }
-
- int minMasters = Integer.MAX_VALUE, maxMasters = Integer.MIN_VALUE;
- for(String instanceName : masterAssignmentMap.keySet())
- {
- List<Integer> masterList = masterAssignmentMap.get(instanceName);
- // the assert needs to be changed when weighting is introduced
- // AssertJUnit.assertTrue(masterList.size() == partitions /masterAssignmentMap.size() | masterList.size() == (partitions /masterAssignmentMap.size()+1) );
-
- for(Integer x : masterList)
- {
- AssertJUnit.assertTrue(masterCounterMap.get(x) == 0);
- masterCounterMap.put(x,1);
- }
- if(minMasters > masterList.size())
- {
- minMasters = masterList.size();
- }
- if(maxMasters < masterList.size())
- {
- maxMasters = masterList.size();
- }
- }
- // Master partition should be evenly distributed most of the time
- System.out.println("Masters: max: "+maxMasters+" Min:"+ minMasters);
- // Each master partition should occur only once
- for(int i = 0;i < partitions; i++)
- {
- AssertJUnit.assertTrue(masterCounterMap.get(i) == 1);
- }
- AssertJUnit.assertTrue(masterCounterMap.size() == partitions);
-
- // for each node, verify the master partitions and the slave partition assignment map
- if(replicas == 0)
- {
- AssertJUnit.assertTrue(nodeSlaveAssignmentMap.size() == 0);
- return;
- }
-
- AssertJUnit.assertTrue(masterAssignmentMap.size() == nodeSlaveAssignmentMap.size());
- for(String instanceName: masterAssignmentMap.keySet())
- {
- AssertJUnit.assertTrue(nodeSlaveAssignmentMap.containsKey(instanceName));
-
- Map<String, List<Integer>> slaveAssignmentMap = nodeSlaveAssignmentMap.get(instanceName);
- Map<Integer, Integer> slaveCountMap = new TreeMap<Integer, Integer>();
- List<Integer> masterList = masterAssignmentMap.get(instanceName);
-
- for(Integer masterPartitionId : masterList)
- {
- slaveCountMap.put(masterPartitionId, 0);
- }
- // Make sure that masterList are covered replica times by the slave assignment.
- int minSlaves = Integer.MAX_VALUE, maxSlaves = Integer.MIN_VALUE;
- for(String hostInstance : slaveAssignmentMap.keySet())
- {
- List<Integer> slaveAssignment = slaveAssignmentMap.get(hostInstance);
- Set<Integer> occurenceSet = new HashSet<Integer>();
-
- // Each slave should occur only once in the list, since the list is per-node slaves
- for(Integer slavePartition : slaveAssignment)
- {
- AssertJUnit.assertTrue(!occurenceSet.contains(slavePartition));
- occurenceSet.add(slavePartition);
-
- slaveCountMap.put(slavePartition, slaveCountMap.get(slavePartition) + 1);
- }
- if(minSlaves > slaveAssignment.size())
- {
- minSlaves = slaveAssignment.size();
- }
- if(maxSlaves < slaveAssignment.size())
- {
- maxSlaves = slaveAssignment.size();
- }
- }
- // check if slave distribution is even
- AssertJUnit.assertTrue(maxSlaves - minSlaves <= 1);
- // System.out.println("Slaves: max: "+maxSlaves+" Min:"+ minSlaves);
-
- // for each node, the slave assignment map should cover the masters for exactly replica
- // times
- AssertJUnit.assertTrue(slaveCountMap.size() == masterList.size());
- for(Integer masterPartitionId : masterList)
- {
- AssertJUnit.assertTrue(slaveCountMap.get(masterPartitionId) == replicas);
- }
- }
-
- }
-
- public void printStat(Map<String, Object> result)
- {
- // print out master distribution
-
- // print out slave distribution
-
- }
-
- public static double [] compareResult(Map<String, Object> result1, Map<String, Object> result2)
- {
- double [] result = new double[2];
- Map<String, List<Integer>> masterAssignmentMap1 = (Map<String, List<Integer>>) (result1.get("MasterAssignmentMap"));
- Map<String, Map<String, List<Integer>>> nodeSlaveAssignmentMap1 = (Map<String, Map<String, List<Integer>>>)(result1.get("SlaveAssignmentMap"));
-
- Map<String, List<Integer>> masterAssignmentMap2 = (Map<String, List<Integer>>) (result2.get("MasterAssignmentMap"));
- Map<String, Map<String, List<Integer>>> nodeSlaveAssignmentMap2 = (Map<String, Map<String, List<Integer>>>)(result2.get("SlaveAssignmentMap"));
-
- int commonMasters = 0;
- int commonSlaves = 0;
- int partitions = (Integer)(result1.get("partitions"));
- int replicas = (Integer)(result1.get("replicas"));
-
- AssertJUnit.assertTrue((Integer)(result2.get("partitions")) == partitions);
- AssertJUnit.assertTrue((Integer)(result2.get("replicas")) == replicas);
-
- // masterMap1 maps from partition id to the holder instance name
- Map<Integer, String> masterMap1 = new TreeMap<Integer, String>();
- for(String instanceName : masterAssignmentMap1.keySet())
- {
- List<Integer> masterList1 = masterAssignmentMap1.get(instanceName);
- for(Integer partition : masterList1)
- {
- AssertJUnit.assertTrue(!masterMap1.containsKey(partition));
- masterMap1.put(partition, instanceName);
- }
- }
- // go through masterAssignmentMap2 and find out the common number
- for(String instanceName : masterAssignmentMap2.keySet())
- {
- List<Integer> masterList2 = masterAssignmentMap2.get(instanceName);
- for(Integer partition : masterList2)
- {
- if(masterMap1.get(partition).equalsIgnoreCase(instanceName))
- {
- commonMasters ++;
- }
- }
- }
-
- result[0] = 1.0*commonMasters/partitions;
- System.out.println(commonMasters + " master partitions are kept, "+ (partitions - commonMasters) + " moved, keep ratio:" + 1.0*commonMasters/partitions);
-
- // maps from the partition id to the instance names that holds its slave partition
- Map<Integer, Set<String>> slaveMap1 = new TreeMap<Integer, Set<String>>();
- for(String instanceName : nodeSlaveAssignmentMap1.keySet())
- {
- Map<String, List<Integer>> slaveAssignment1 = nodeSlaveAssignmentMap1.get(instanceName);
- for(String slaveHostName : slaveAssignment1.keySet())
- {
- List<Integer> slaveList = slaveAssignment1.get(slaveHostName);
- for(Integer partition : slaveList)
- {
- if(!slaveMap1.containsKey(partition))
- {
- slaveMap1.put(partition, new TreeSet<String>());
- }
- AssertJUnit.assertTrue(!slaveMap1.get(partition).contains(slaveHostName));
- slaveMap1.get(partition).add(slaveHostName);
- }
- }
- }
-
- for(String instanceName : nodeSlaveAssignmentMap2.keySet())
- {
- Map<String, List<Integer>> slaveAssignment2 = nodeSlaveAssignmentMap2.get(instanceName);
- for(String slaveHostName : slaveAssignment2.keySet())
- {
- List<Integer> slaveList = slaveAssignment2.get(slaveHostName);
- for(Integer partition : slaveList)
- {
- if(slaveMap1.get(partition).contains(slaveHostName))
- {
- commonSlaves++;
- }
- }
- }
- }
- result[1] = 1.0*commonSlaves/partitions/replicas;
- System.out.println(commonSlaves + " slave partitions are kept, " + (partitions * replicas - commonSlaves)+ " moved. keep ratio:"+1.0*commonSlaves/partitions/replicas);
- return result;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestGetProperty.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestGetProperty.java b/helix-core/src/test/java/com/linkedin/helix/TestGetProperty.java
deleted file mode 100644
index 09799e0..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestGetProperty.java
+++ /dev/null
@@ -1,48 +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.io.InputStream;
-import java.util.Properties;
-
-import org.testng.Assert;
-import org.testng.annotations.Test;
-
-public class TestGetProperty
-{
- @Test
- public void testGetProperty()
- {
- String version;
- Properties props = new Properties();
-
- try
- {
- InputStream stream = Thread.currentThread().getContextClassLoader()
- .getResourceAsStream("cluster-manager-version.properties");
- props.load(stream);
- version = props.getProperty("clustermanager.version");
- Assert.assertNotNull(version);
- System.out.println("cluster-manager-version:" + version);
- }
- catch (IOException e)
- {
- // e.printStackTrace();
- Assert.fail("could not open cluster-manager-version.properties. ", e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestGroupCommit.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestGroupCommit.java b/helix-core/src/test/java/com/linkedin/helix/TestGroupCommit.java
deleted file mode 100644
index 002a739..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestGroupCommit.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.linkedin.helix;
-
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-
-public class TestGroupCommit
-{
- // @Test
- public void testGroupCommit() throws InterruptedException
- {
- final BaseDataAccessor<ZNRecord> accessor = new Mocks.MockBaseDataAccessor();
- final GroupCommit commit = new GroupCommit();
- ExecutorService newFixedThreadPool = Executors.newFixedThreadPool(400);
- for (int i = 0; i < 2400; i++)
- {
- Runnable runnable = new MyClass(accessor, commit, i);
- newFixedThreadPool.submit(runnable);
- }
- Thread.sleep(10000);
- System.out.println(accessor.get("test", null, 0));
- System.out.println(accessor.get("test", null, 0).getSimpleFields().size());
- }
-
-}
-
-class MyClass implements Runnable
-{
- private final BaseDataAccessor<ZNRecord> store;
- private final GroupCommit commit;
- private final int i;
-
- public MyClass(BaseDataAccessor<ZNRecord> store, GroupCommit commit, int i)
- {
- this.store = store;
- this.commit = commit;
- this.i = i;
- }
-
- @Override
- public void run()
- {
- // System.out.println("START " + System.currentTimeMillis() + " --"
- // + Thread.currentThread().getId());
- ZNRecord znRecord = new ZNRecord("test");
- znRecord.setSimpleField("test_id" + i, "" + i);
- commit.commit(store, 0, "test", znRecord);
- store.get("test", null, 0).getSimpleField("");
- // System.out.println("END " + System.currentTimeMillis() + " --"
- // + Thread.currentThread().getId());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskExecutor.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskExecutor.java b/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskExecutor.java
deleted file mode 100644
index 91bc141..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskExecutor.java
+++ /dev/null
@@ -1,87 +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.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.Mocks.MockHelixTaskExecutor;
-import com.linkedin.helix.Mocks.MockManager;
-import com.linkedin.helix.Mocks.MockStateModel;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.messaging.handling.AsyncCallbackService;
-import com.linkedin.helix.messaging.handling.HelixStateTransitionHandler;
-import com.linkedin.helix.model.CurrentState;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.model.Message.MessageType;
-import com.linkedin.helix.model.StateModelDefinition;
-import com.linkedin.helix.tools.StateModelConfigGenerator;
-
-public class TestHelixTaskExecutor
-{
-
- @Test()
- public void testCMTaskExecutor() throws Exception
- {
- System.out.println("START TestCMTaskExecutor");
- String msgId = "TestMessageId";
- Message message = new Message(MessageType.TASK_REPLY, msgId);
-
- message.setMsgId(msgId);
- message.setSrcName("cm-instance-0");
- message.setTgtName("cm-instance-1");
- message.setTgtSessionId("1234");
- message.setFromState("Offline");
- message.setToState("Slave");
- message.setPartitionName("TestDB_0");
- message.setResourceName("TestDB");
- message.setStateModelDef("MasterSlave");
-
- MockManager manager = new MockManager("clusterName");
- // DataAccessor accessor = manager.getDataAccessor();
- HelixDataAccessor accessor = manager.getHelixDataAccessor();
- StateModelConfigGenerator generator = new StateModelConfigGenerator();
- StateModelDefinition stateModelDef =
- new StateModelDefinition(generator.generateConfigForMasterSlave());
- Builder keyBuilder = accessor.keyBuilder();
- accessor.setProperty(keyBuilder.stateModelDef("MasterSlave"), stateModelDef);
-
- MockHelixTaskExecutor executor = new MockHelixTaskExecutor();
- MockStateModel stateModel = new MockStateModel();
- NotificationContext context;
- executor.registerMessageHandlerFactory(MessageType.TASK_REPLY.toString(),
- new AsyncCallbackService());
- // String clusterName =" testcluster";
- context = new NotificationContext(manager);
- CurrentState currentStateDelta = new CurrentState("TestDB");
- currentStateDelta.setState("TestDB_0", "OFFLINE");
- HelixStateTransitionHandler handler =
- new HelixStateTransitionHandler(stateModel,
- message,
- context,
- currentStateDelta,
- executor);
-
- executor.scheduleTask(message, handler, context);
- while (!executor.isDone(msgId + "/" + message.getPartitionName()))
- {
- Thread.sleep(500);
- }
- AssertJUnit.assertTrue(stateModel.stateModelInvoked);
- System.out.println("END TestCMTaskExecutor");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-helix/blob/3cb7a1c9/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskHandler.java
----------------------------------------------------------------------
diff --git a/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskHandler.java b/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskHandler.java
deleted file mode 100644
index a7d9c3b..0000000
--- a/helix-core/src/test/java/com/linkedin/helix/TestHelixTaskHandler.java
+++ /dev/null
@@ -1,127 +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.Date;
-
-import org.testng.AssertJUnit;
-import org.testng.annotations.Test;
-
-import com.linkedin.helix.Mocks.MockManager;
-import com.linkedin.helix.Mocks.MockStateModel;
-import com.linkedin.helix.Mocks.MockStateModelAnnotated;
-import com.linkedin.helix.PropertyKey.Builder;
-import com.linkedin.helix.messaging.handling.HelixStateTransitionHandler;
-import com.linkedin.helix.messaging.handling.HelixTask;
-import com.linkedin.helix.messaging.handling.HelixTaskExecutor;
-import com.linkedin.helix.model.CurrentState;
-import com.linkedin.helix.model.Message;
-import com.linkedin.helix.model.Message.MessageType;
-import com.linkedin.helix.model.StateModelDefinition;
-import com.linkedin.helix.tools.StateModelConfigGenerator;
-
-public class TestHelixTaskHandler
-{
- @Test()
- public void testInvocation() throws Exception
- {
- HelixTaskExecutor executor = new HelixTaskExecutor();
- System.out.println("START TestCMTaskHandler.testInvocation()");
- Message message = new Message(MessageType.STATE_TRANSITION, "Some unique id");
-
- message.setSrcName("cm-instance-0");
- message.setTgtSessionId("1234");
- message.setFromState("Offline");
- message.setToState("Slave");
- message.setPartitionName("TestDB_0");
- message.setMsgId("Some unique message id");
- message.setResourceName("TestDB");
- message.setTgtName("localhost");
- message.setStateModelDef("MasterSlave");
- message.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
- MockStateModel stateModel = new MockStateModel();
- NotificationContext context;
- MockManager manager = new MockManager("clusterName");
-// DataAccessor accessor = manager.getDataAccessor();
- HelixDataAccessor accessor = manager.getHelixDataAccessor();
- StateModelConfigGenerator generator = new StateModelConfigGenerator();
- StateModelDefinition stateModelDef = new StateModelDefinition(
- generator.generateConfigForMasterSlave());
- Builder keyBuilder = accessor.keyBuilder();
- accessor.setProperty(keyBuilder.stateModelDef("MasterSlave"), stateModelDef);
-
- context = new NotificationContext(manager);
- CurrentState currentStateDelta = new CurrentState("TestDB");
- currentStateDelta.setState("TestDB_0", "OFFLINE");
-
- HelixStateTransitionHandler stHandler = new HelixStateTransitionHandler(stateModel, message,
- context, currentStateDelta, executor);
- HelixTask handler;
- handler = new HelixTask(message, context, stHandler, executor);
- handler.call();
- AssertJUnit.assertTrue(stateModel.stateModelInvoked);
- System.out.println("END TestCMTaskHandler.testInvocation() at "
- + new Date(System.currentTimeMillis()));
- }
-
- @Test()
- public void testInvocationAnnotated() throws Exception
- {
- System.out.println("START TestCMTaskHandler.testInvocationAnnotated() at "
- + new Date(System.currentTimeMillis()));
- HelixTaskExecutor executor = new HelixTaskExecutor();
- Message message = new Message(MessageType.STATE_TRANSITION, "Some unique id");
- message.setSrcName("cm-instance-0");
- message.setTgtSessionId("1234");
- message.setFromState("Offline");
- message.setToState("Slave");
- message.setPartitionName("TestDB_0");
- message.setMsgId("Some unique message id");
- message.setResourceName("TestDB");
- message.setTgtName("localhost");
- message.setStateModelDef("MasterSlave");
- message.setStateModelFactoryName(HelixConstants.DEFAULT_STATE_MODEL_FACTORY);
- MockStateModelAnnotated stateModel = new MockStateModelAnnotated();
- NotificationContext context;
-
- MockManager manager = new MockManager("clusterName");
-// DataAccessor accessor = manager.getDataAccessor();
- HelixDataAccessor accessor = manager.getHelixDataAccessor();
-
- StateModelConfigGenerator generator = new StateModelConfigGenerator();
- StateModelDefinition stateModelDef = new StateModelDefinition(
- generator.generateConfigForMasterSlave());
-// accessor.setProperty(PropertyType.STATEMODELDEFS, stateModelDef, "MasterSlave");
- Builder keyBuilder = accessor.keyBuilder();
- accessor.setProperty(keyBuilder.stateModelDef("MasterSlave"), stateModelDef);
-
-
- context = new NotificationContext(manager);
-
- CurrentState currentStateDelta = new CurrentState("TestDB");
- currentStateDelta.setState("TestDB_0", "OFFLINE");
-
- HelixStateTransitionHandler stHandler = new HelixStateTransitionHandler(stateModel, message,
- context, currentStateDelta, executor);
-
- HelixTask handler = new HelixTask(message, context, stHandler, executor);
- handler.call();
- AssertJUnit.assertTrue(stateModel.stateModelInvoked);
- System.out.println("END TestCMTaskHandler.testInvocationAnnotated() at "
- + new Date(System.currentTimeMillis()));
- }
-
-}