package com.eswaraj.tasks; import java.util.Map; import java.util.Random; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.topology.base.BaseRichSpout; import backtype.storm.tuple.Fields; import backtype.storm.tuple.Values; import backtype.storm.utils.Utils; public class TestSpout extends BaseRichSpout{ private SpoutOutputCollector spoutOutputCollector; /** * */ private static final long serialVersionUID = 1L; public void ack(Object arg0) { System.out.println("TestSpout:ack "+ arg0); } public void activate() { System.out.println("TestSpout:Activate"); } public void close() { System.out.println("TestSpout:Close"); } public void deactivate() { System.out.println("TestSpout:deactivate"); } public void fail(Object arg0) { System.out.println("TestSpout:fail-"+arg0); } public void nextTuple() { System.out.println("TestSpout:nextTuple"); Utils.sleep(100); final String[] words = new String[] {"nathan", "mike", "jackson", "golda", "bertels"}; final Random rand = new Random(); final String word = words[rand.nextInt(words.length)]; spoutOutputCollector.emit(new Values(word)); } public void open(Map arg0, TopologyContext arg1, SpoutOutputCollector spoutOutputCollector) { System.out.println("TestSpout:open"); this.spoutOutputCollector = spoutOutputCollector; } public void declareOutputFields(OutputFieldsDeclarer declarer) { System.out.println("TestSpout:declareOutputFields"); declarer.declare(new Fields("word")); } public Map<String, Object> getComponentConfiguration() { System.out.println("TestSpout:getComponentConfiguration"); return null; } }