use of org.apache.storm.generated.ComponentObject in project storm by apache.
the class Task method mkTaskObject.
private Object mkTaskObject() {
StormTopology topology = systemTopologyContext.getRawTopology();
Map<String, SpoutSpec> spouts = topology.get_spouts();
Map<String, Bolt> bolts = topology.get_bolts();
Map<String, StateSpoutSpec> stateSpouts = topology.get_state_spouts();
Object result;
ComponentObject componentObject;
if (spouts.containsKey(componentId)) {
componentObject = spouts.get(componentId).get_spout_object();
} else if (bolts.containsKey(componentId)) {
componentObject = bolts.get(componentId).get_bolt_object();
} else if (stateSpouts.containsKey(componentId)) {
componentObject = stateSpouts.get(componentId).get_state_spout_object();
} else {
throw new RuntimeException("Could not find " + componentId + " in " + topology);
}
result = Utils.getSetComponentObject(componentObject);
if (result instanceof ShellComponent) {
if (spouts.containsKey(componentId)) {
result = new ShellSpout((ShellComponent) result);
} else {
result = new ShellBolt((ShellComponent) result);
}
}
if (result instanceof JavaObject) {
result = Thrift.instantiateJavaObject((JavaObject) result);
}
return result;
}
use of org.apache.storm.generated.ComponentObject in project storm by apache.
the class TopologySpoutLag method lag.
public static Map<String, Map<String, Object>> lag(StormTopology stormTopology, Map topologyConf) {
Map<String, Map<String, Object>> result = new HashMap<>();
Map<String, SpoutSpec> spouts = stormTopology.get_spouts();
String className = null;
for (Map.Entry<String, SpoutSpec> spout : spouts.entrySet()) {
try {
SpoutSpec spoutSpec = spout.getValue();
ComponentObject componentObject = spoutSpec.get_spout_object();
// FIXME: yes it's a trick so we might be better to find alternative way...
className = getClassNameFromComponentObject(componentObject);
logger.debug("spout classname: {}", className);
if (className.endsWith("storm.kafka.spout.KafkaSpout")) {
result.put(spout.getKey(), getLagResultForNewKafkaSpout(spout.getKey(), spoutSpec, topologyConf));
} else if (className.endsWith("storm.kafka.KafkaSpout")) {
result.put(spout.getKey(), getLagResultForOldKafkaSpout(spout.getKey(), spoutSpec, topologyConf));
}
} catch (Exception e) {
logger.warn("Exception thrown while getting lag for spout id: " + spout.getKey() + " and spout class: " + className);
logger.warn("Exception message:" + e.getMessage(), e);
}
}
return result;
}
Aggregations