package com.alipay.bluewhale.core.work.context; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import backtype.storm.generated.StormTopology; import backtype.storm.task.TopologyContext; import com.alipay.bluewhale.core.cluster.Common; import com.alipay.bluewhale.core.cluster.StormConfig; /** * ����ϵͳTopologyContext,��acker bolt�� * * @author yannian * */ public class SystemContextMake { private static Logger LOG = Logger.getLogger(SystemContextMake.class); private StormTopology topology; private Map stormConf; private String topologyId; private String workerId; private HashMap<Integer, String> tasksToComponent; public SystemContextMake(StormTopology topology, Map storm_conf, String topologyId, String worker_id, HashMap<Integer, String> tasksToComponent) { this.topology = topology; this.stormConf = storm_conf; this.topologyId = topologyId; this.workerId = worker_id; this.tasksToComponent = tasksToComponent; } public TopologyContext make(Integer task_id) { TopologyContext rtn = null; try { StormTopology systopology = Common.system_topology(stormConf,topology); String distroot = StormConfig.supervisor_stormdist_root(stormConf,topologyId); String resourcePath = StormConfig.supervisor_storm_resources_path(distroot); String workpid = StormConfig.worker_pids_root(stormConf, workerId); rtn = new TopologyContext(systopology, tasksToComponent, topologyId,resourcePath, workpid, task_id); } catch (Exception e) { LOG.error("SystemContextMake make", e); } return rtn; } }