package backtype.storm.contrib.hbase.examples; import java.util.ArrayList; import java.util.List; import java.util.Map; import backtype.storm.spout.SpoutOutputCollector; import backtype.storm.task.TopologyContext; import backtype.storm.topology.IRichSpout; import backtype.storm.topology.OutputFieldsDeclarer; import backtype.storm.tuple.Fields; import backtype.storm.tuple.Values; @SuppressWarnings("serial") public class TestSpout implements IRichSpout { List<Values> values; SpoutOutputCollector _collector; @SuppressWarnings("rawtypes") @Override public void open(Map conf, TopologyContext context, SpoutOutputCollector collector) { this._collector = collector; values = new ArrayList<Values>(); values.add(new Values("http://bit.ly/ZK6t", "www.arsenal.com/home", "kinley", "20120816")); values.add(new Values("http://bit.ly/LsaBa", "www.baltimoreravens.com/", "kinley", "20120816")); values.add(new Values("http://bit.ly/2VL7eA", "www.49ers.com/", "kinley", "20120816")); values.add(new Values("http://bit.ly/9ZJhuY", "www.buccaneers.com/index.html", "kinley", "20120816")); values.add(new Values("http://atmlb.com/7NG4sm", "baltimore.orioles.mlb.com/", "kinley", "20120816")); } @Override public void close() { } @Override public void activate() { } @Override public void deactivate() { } @Override public void nextTuple() { int rand = (int) (Math.random() * 1000); _collector.emit(values.get(rand % values.size())); } @Override public void ack(Object msgId) { } @Override public void fail(Object msgId) { } @Override public void declareOutputFields(OutputFieldsDeclarer declarer) { declarer.declare(new Fields("shortid", "url", "user", "date")); } @Override public Map<String, Object> getComponentConfiguration() { return null; } }