package com.alipay.bluewhale.core.work.context;
import java.io.IOException;
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.StormConfig;
/**
* �����û���ʹ�õ�TopologyContext ���治����acker bolt
*
* @author yannian
*
*/
public class UserContextMake {
private static Logger LOG = Logger.getLogger(UserContextMake.class);
private StormTopology topology;
private Map storm_conf;
private String topologyId;
private String worker_id;
private HashMap<Integer, String> tasksToComponent;
public UserContextMake(StormTopology topology, Map storm_conf,
String topologyId, String worker_id,
HashMap<Integer, String> tasks_component) {
this.topology = topology;
this.storm_conf = storm_conf;
this.topologyId = topologyId;
this.worker_id = worker_id;
this.tasksToComponent = tasks_component;
}
public TopologyContext make(Integer task_id) {
TopologyContext rtn=null;
try {
String distroot = StormConfig.supervisor_stormdist_root(storm_conf,topologyId);
String resourcePath = StormConfig.supervisor_storm_resources_path(distroot);
String workpid = StormConfig.worker_pids_root(storm_conf, worker_id);
rtn = new TopologyContext(topology, tasksToComponent, topologyId,
resourcePath, workpid, task_id);
} catch (IOException e) {
LOG.error("UserContextMake make", e);
}
return rtn;
}
}