in chatterbox-twitter/chatterbox-twitter-impl/src/main/java/org/apache/tomee/chatterbox/twitter/adapter/TwitterStreamingClient.java [67:97]
public void run() throws InterruptedException, ControlStreamException, IOException {
// Create an appropriately sized blocking queue
final BlockingQueue<String> queue = new LinkedBlockingQueue<String>(10000);
final UserstreamEndpoint endpoint = new UserstreamEndpoint();
final Authentication auth = new OAuth1(consumerKey, consumerSecret, accessToken, accessTokenSecret);
// Create a new BasicClient. By default gzip is enabled.
final BasicClient client = new ClientBuilder()
.hosts(Constants.SITESTREAM_HOST)
.endpoint(endpoint)
.authentication(auth)
.processor(new StringDelimitedProcessor(queue))
.build();
// Create an executor service which will spawn threads to do the actual work of parsing the incoming messages and
// calling the listeners on each message
final int numProcessingThreads = 4;
final ExecutorService service = Executors.newFixedThreadPool(numProcessingThreads);
// Wrap our BasicClient with the twitter4j client
t4jClient = new Twitter4jUserstreamClient(
client, queue, Lists.newArrayList(listener), service);
// Establish a connection
t4jClient.connect();
for (int threads = 0; threads < numProcessingThreads; threads++) {
// This must be called once per processing thread
t4jClient.process();
}
}