This example shows you how to configure HornetQ to use the Twitter Connector Service.
HornetQ supports 2 types of Twitter connector, incoming and outgoing. Incoming connector consumes from twitter and forwards to a configurable address. Outgoing connector consumes from a configurable address and forwards to twitter.
In this example, incoming connector and outgoing conenctor is related to same twitter account. So if you send a message to an outgoing address, outgoing connector forwards it to twitter, and then incoming connector consumes it and forwards to incoming address.
All you need to do is edit the server0/hornetq-configuration.xml to use twitter connector.
<twitter-connectors>
<!-- consumes from twitter and forwards to queue.incomingQueue -->
<incoming-twitter-connector name="my-incoming-tweets">
<queue-name>queue.incomingQueue</queue-name>
<twitter-account>
<username>${twitter.username}</username>
<password>${twitter.password}</password>
</twitter-account>
<interval-seconds>60</interval-seconds>
</incoming-twitter-connector>
<!-- consumes from queue.outgoingQueue and forwards to twitter -->
<outgoing-twitter-connector name="my-outgoing-tweets">
<queue-name>queue.outgoingQueue</queue-name>
<twitter-account>
<username>${twitter.username}</username>
<password>${twitter.password}</password>
</twitter-account>
</outgoing-twitter-connector>
</twitter-connectors>
To run the example, simply type ./build.sh
(or build.bat
on windows) from this directory.
Also please remember to set the twitter user/pass in environment variable Before you run.
export TWITTER_USERNAME=your_twitter_username
export TWITTER_PASSWORD=your_twitter_password
./build.sh
on Windows:
set TWITTER_USERNAME=your_twitter_username
set TWITTER_PASSWORD=your_twitter_password
build.bat
csf = HornetQClient.createClientSessionFactory(new TransportConfiguration(NettyConnectorFactory.class.getName()));
session = csf.createSession(true,true);
ClientProducer cp = session.createProducer(OUTGOING_QUEUE);
ClientConsumer cc = session.createConsumer(INCOMING_QUEUE);
ClientMessage cm = session.createMessage(org.hornetq.api.core.Message.TEXT_TYPE,true);
String testMessage = System.currentTimeMillis() + ": twitter connector test example";
cm.getBodyBuffer().writeString(testMessage);
cp.send(cm);
session.start();
ClientMessage received = cc.receive(70 * 1000);
received.acknowledge();
String receivedText = received.getBodyBuffer().readString();
finally
block.
finally
{
if(session != null)
{
session.close();
}
if(csf != null)
{
csf.close();
}
}