package org.hackreduce.storm.example.twitter; import java.util.List; import com.google.common.base.Charsets; import twitter4j.conf.ConfigurationBuilder; import twitter4j.internal.json.z_T4JInternalFactory; import twitter4j.internal.json.z_T4JInternalJSONImplFactory; import twitter4j.internal.org.json.JSONObject; import backtype.storm.spout.Scheme; import backtype.storm.tuple.Fields; import backtype.storm.utils.Utils; public final class TweetScheme implements Scheme { private static final long serialVersionUID = -4589383226205015147L; private final z_T4JInternalFactory factory = new z_T4JInternalJSONImplFactory(new ConfigurationBuilder().build()); @Override public List<Object> deserialize(byte[] ser) { try { return Utils.tuple(factory.createStatus(new JSONObject(new String(ser, Charsets.UTF_8)))); } catch (Exception e) { // ignore non-parsable tweets return null; } } @Override public Fields getOutputFields() { return new Fields("tweet"); } }