package com.alipay.bluewhale.core.custom; import java.lang.reflect.Constructor; import java.nio.ByteBuffer; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.Map.Entry; import org.apache.log4j.Logger; import backtype.storm.generated.JavaObject; import backtype.storm.generated.JavaObjectArg; import backtype.storm.grouping.CustomStreamGrouping; import com.alipay.bluewhale.core.cluster.StormClusterState; import com.alipay.bluewhale.core.daemon.NodePort; import com.alipay.bluewhale.core.task.common.TaskInfo; import com.alipay.bluewhale.core.thrift.Thrift; import com.alipay.bluewhale.core.utils.StormUtils; /** * mvn clean package assembly:assembly -Dmaven.test.skip=true * * @author yannian * @version $Id: Separate.java, v 0.1 2012-4-28 ����3:13:31 yannian Exp $ */ public class CustomAssignment { private static Logger LOG = Logger.getLogger(CustomAssignment.class); public static String TOPOLOGY_CUSTOM_ASSIGNMENT = "topology.assignment.custom"; public static IAssignment getAssignmentInstance(Map topology_conf) { String customClassName = null; Object repClassName= topology_conf.get(TOPOLOGY_CUSTOM_ASSIGNMENT); if (repClassName != null) { customClassName = String.valueOf(repClassName); } LOG.info("CustomAssignment:"+customClassName); if(customClassName==null) { return null; } return instance(customClassName); } private static IAssignment instance(String clsName) { try { Class[] paraTypes = new Class[0]; Object[] paraValues = new Object[0]; Class clas = Class.forName(clsName); Constructor cons = clas.getConstructor(paraTypes); return (IAssignment) cons.newInstance(paraValues); } catch (Exception e) { LOG.error("instance fail", e); } return null; } }