Repository: camel Updated Branches: refs/heads/master 87b0aa413 -> 7cc51f45d
CAMEL-8093 Camel-Twitter, Adding Message headers for sinceid, maxid, user Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/f4860030 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f4860030 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f4860030 Branch: refs/heads/master Commit: f4860030435c740e040123e8e75615e6e0fd8154 Parents: 87b0aa4 Author: Andrea Cosentino <anco...@gmail.com> Authored: Thu Jul 2 17:37:25 2015 +0200 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu Jul 2 17:37:25 2015 +0200 ---------------------------------------------------------------------- .../component/twitter/TwitterConstants.java | 5 +++- .../twitter/producer/DirectMessageProducer.java | 5 ++++ .../twitter/producer/SearchProducer.java | 15 ++++++++++ .../twitter/SearchByExchangeDirectTest.java | 30 ++++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/f4860030/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConstants.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConstants.java index 40da5a8..a6e845b 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConstants.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConstants.java @@ -25,7 +25,10 @@ public final class TwitterConstants { public static final String TWITTER_SEARCH_LANGUAGE = "CamelTwitterSearchLanguage"; public static final String TWITTER_COUNT = "CamelTwitterCount"; - public static final String TWITTER_NUMBER_OF_PAGES = "CamelTwitterNumberOfPages"; + public static final String TWITTER_NUMBER_OF_PAGES = "CamelTwitterNumberOfPages"; + public static final String TWITTER_SINCEID = "CamelTwitterSinceId"; + public static final String TWITTER_MAXID = "CamelTwitterMaxId"; + public static final String TWITTER_USER = "CamelTwitterUser"; private TwitterConstants() { // utility http://git-wip-us.apache.org/repos/asf/camel/blob/f4860030/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/DirectMessageProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/DirectMessageProducer.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/DirectMessageProducer.java index 3c13f5a..6995e16 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/DirectMessageProducer.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/DirectMessageProducer.java @@ -18,7 +18,9 @@ package org.apache.camel.component.twitter.producer; import org.apache.camel.CamelExchangeException; import org.apache.camel.Exchange; +import org.apache.camel.component.twitter.TwitterConstants; import org.apache.camel.component.twitter.TwitterEndpoint; +import org.apache.camel.util.ObjectHelper; /** * Produces text as a direct message. @@ -32,6 +34,9 @@ public class DirectMessageProducer extends Twitter4JProducer { public void process(Exchange exchange) throws Exception { // send direct message String toUsername = te.getProperties().getUser(); + if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(TwitterConstants.TWITTER_USER, String.class))) { + toUsername = exchange.getIn().getHeader(TwitterConstants.TWITTER_USER, String.class); + } String text = exchange.getIn().getBody(String.class); if (toUsername.isEmpty()) { http://git-wip-us.apache.org/repos/asf/camel/blob/f4860030/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/SearchProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/SearchProducer.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/SearchProducer.java index ccc1922..408dd6f 100644 --- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/SearchProducer.java +++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/producer/SearchProducer.java @@ -56,6 +56,21 @@ public class SearchProducer extends Twitter4JProducer { if (te.getProperties().isFilterOld() && myLastId != 0) { query.setSinceId(myLastId); } + + // since id + Long sinceId = exchange.getIn().getHeader(TwitterConstants.TWITTER_SINCEID, Long.class); + if (sinceId == null) { + sinceId = te.getProperties().getSinceId(); + } + if (ObjectHelper.isNotEmpty(sinceId)) { + query.setSinceId(sinceId); + } + + // max id + Long maxId = exchange.getIn().getHeader(TwitterConstants.TWITTER_MAXID, Long.class); + if (ObjectHelper.isNotEmpty(maxId)) { + query.setMaxId(maxId); + } // language String lang = exchange.getIn().getHeader(TwitterConstants.TWITTER_SEARCH_LANGUAGE, String.class); http://git-wip-us.apache.org/repos/asf/camel/blob/f4860030/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchByExchangeDirectTest.java ---------------------------------------------------------------------- diff --git a/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchByExchangeDirectTest.java b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchByExchangeDirectTest.java index c5c0335..d8adc68 100644 --- a/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchByExchangeDirectTest.java +++ b/components/camel-twitter/src/test/java/org/apache/camel/component/twitter/SearchByExchangeDirectTest.java @@ -16,7 +16,9 @@ */ package org.apache.camel.component.twitter; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.apache.camel.Exchange; import org.apache.camel.Produce; @@ -64,6 +66,34 @@ public class SearchByExchangeDirectTest extends CamelTwitterTestSupport { log.info("Tweet: " + e.getIn().getBody(String.class)); } } + + @Test + public void testSearchTimelineWithDynamicQuerySinceId() throws Exception { + Map<String,Object> headers = new HashMap<String,Object>(); + headers.put(TwitterConstants.TWITTER_KEYWORDS, "java"); + headers.put(TwitterConstants.TWITTER_SINCEID, new Long(258347905419730944L)); + templateHeader.sendBodyAndHeaders(null, headers); + + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMinimumMessageCount(1); + mock.assertIsSatisfied(); + List<Exchange> tweets = mock.getExchanges(); + for (Exchange e : tweets) { + log.info("Tweet: " + e.getIn().getBody(String.class)); + } + } + + @Test + public void testSearchTimelineWithDynamicQuerySinceIdAndMaxId() throws Exception { + Map<String,Object> headers = new HashMap<String,Object>(); + headers.put(TwitterConstants.TWITTER_KEYWORDS, "java"); + headers.put(TwitterConstants.TWITTER_SINCEID, new Long(258347905419730944L)); + headers.put(TwitterConstants.TWITTER_MAXID, new Long(258348815243960320L)); + templateHeader.sendBodyAndHeaders(null, headers); + + MockEndpoint mock = getMockEndpoint("mock:result"); + mock.expectedMinimumMessageCount(0); + } @Test public void testDoubleSearchKeepingOld() throws Exception {