package com.taobao.meta.test; import java.io.File; import java.io.IOException; import java.util.Collection; import org.I0Itec.zkclient.ZkClient; import org.apache.commons.io.FileUtils; import com.taobao.metamorphosis.EnhancedBroker; import com.taobao.metamorphosis.client.Shutdownable; import com.taobao.metamorphosis.exception.MetaClientException; import com.taobao.metamorphosis.server.assembly.MetaMorphosisBroker; import com.taobao.metamorphosis.server.utils.MetaConfig; import com.taobao.metamorphosis.utils.MetaZookeeper; import com.taobao.metamorphosis.utils.ZkUtils; /** * * @author �޻� * @since 2011-7-12 ����10:46:30 */ public class Utils { public static final String diamondZKDataId = "metamorphosis.integrationTestZkConfig"; public static void clearDataDir(MetaConfig metaConfig) throws IOException { File dataDir = new File(metaConfig.getDataPath()); System.out.println("delete:" + dataDir); FileUtils.deleteDirectory(dataDir); } public static void clearConsumerInfoInZk(ZkClient zkClient, MetaZookeeper metaZookeeper) throws Exception { ZkUtils.deletePathRecursive(zkClient, metaZookeeper.consumersPath); Thread.sleep(5000); } public static void stopServers(Collection<MetaMorphosisBroker> brokers) { for (MetaMorphosisBroker broker : brokers) { if (broker == null) { continue; } broker.stop(); } } public static void stopWrapperServers(Collection<EnhancedBroker> brokers) { for (EnhancedBroker broker : brokers) { if (broker == null) { continue; } broker.stop(); } } public static int shutdown(Collection<? extends Shutdownable> collection) throws MetaClientException { int count = 0; if (collection != null && !collection.isEmpty()) { for (Shutdownable shutdownable : collection) { count += shutdown(shutdownable); } } return count; } public static int shutdown(Shutdownable shutdownable) throws MetaClientException { if (shutdownable != null) { shutdownable.shutdown(); return 1; } return 0; } public static byte[] getData(int size) { byte[] data = new byte[size]; for (int i = 0; i < size; i++) { data[i] = (byte) (i % 127); } return data; } }