Simple Camel Configuration of a Twitter Endpoint
I was asked just how my got the Twitter Stream working in my new Camel based project and how I managed the credentials.
The Twitter endpoint works like a dream and this is essentially what my code looks like. All you need is a secrets.properties file in alongside your java file.
Published at DZone with permission of Col Wilson, author and DZone MVB. (source)The Twitter endpoint works like a dream and this is essentially what my code looks like. All you need is a secrets.properties file in alongside your java file.
/**
* A Camel Java DSL Router
*/
public class MyRouteBuilder extends RouteBuilder {
private static final ResourceBundle SECRETS = ResourceBundle
.getBundle("myproject.secrets");
/**
* Let's configure the Camel routing rules using Java code...
*
* @throws UnsupportedEncodingException
*/
public void configure() throws UnsupportedEncodingException {
configureAccess();
String twitter = "twitter://streaming/filter?type=event&keywords="
+ URLEncoder.encode("london", "utf8");
from(twitter).filter(body().isInstanceOf(Status.class)).addAllSortsOfStuffHere().
}
private void configureAccess() {
// setup Twitter component
TwitterComponent tc = getContext().getComponent("twitter",
TwitterComponent.class);
tc.setAccessToken(SECRETS.getString("ACCESS_TOKEN"));
tc.setAccessTokenSecret(SECRETS.getString("ACCESS_TOKEN_SECRET"));
tc.setConsumerKey(SECRETS.getString("CONSUMER_KEY"));
tc.setConsumerSecret(SECRETS.getString("CONSUMER_SECRET"));
}
}(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





