You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2012/01/10 03:51:51 UTC
svn commit: r1229457 - in
/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter:
./ consumer/ consumer/directmessage/ consumer/search/ consumer/streaming/
consumer/timeline/ data/ util/
Author: ningjiang
Date: Tue Jan 10 02:51:50 2012
New Revision: 1229457
URL: http://svn.apache.org/viewvc?rev=1229457&view=rev
Log:
CAMEL-4873 Twitter4J response objects as Exchange body
Modified:
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterComponent.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpoint.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/Twitter4JConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerDirect.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerPolling.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/directmessage/DirectMessageConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/streaming/StreamingConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/HomeConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/MentionsConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/PublicConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/RetweetsConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/UserConsumer.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/Status.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/User.java
camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterComponent.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterComponent.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterComponent.java Tue Jan 10 02:51:50 2012
@@ -42,7 +42,6 @@ public class TwitterComponent extends De
break;
}
- endpoint.initiate();
return endpoint;
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpoint.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpoint.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpoint.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpoint.java Tue Jan 10 02:51:50 2012
@@ -22,8 +22,6 @@ import twitter4j.Twitter;
public interface TwitterEndpoint extends Endpoint {
- void initiate();
-
Twitter getTwitter();
TwitterConfiguration getProperties();
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java Tue Jan 10 02:51:50 2012
@@ -38,16 +38,19 @@ public class TwitterEndpointDirect exten
this.properties = properties;
}
+ @Override
public Consumer createConsumer(Processor processor) throws Exception {
Twitter4JConsumer twitter4jConsumer = Twitter4JFactory.getConsumer(this, getEndpointUri());
return new TwitterConsumerDirect(this, processor, twitter4jConsumer);
}
+ @Override
public Producer createProducer() throws Exception {
return Twitter4JFactory.getProducer(this, getEndpointUri());
}
- public void initiate() {
+ @Override
+ protected void doStart() {
properties.checkComplete();
twitter = new TwitterFactory(properties.getConfiguration()).getInstance();
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java Tue Jan 10 02:51:50 2012
@@ -39,6 +39,7 @@ public class TwitterEndpointPolling exte
this.properties = properties;
}
+ @Override
public Consumer createConsumer(Processor processor) throws Exception {
Twitter4JConsumer twitter4jConsumer = Twitter4JFactory.getConsumer(this, getEndpointUri());
TwitterConsumer tc = new TwitterConsumerPolling(this, processor, twitter4jConsumer);
@@ -46,11 +47,13 @@ public class TwitterEndpointPolling exte
return tc;
}
+ @Override
public Producer createProducer() throws Exception {
return Twitter4JFactory.getProducer(this, getEndpointUri());
}
- public void initiate() {
+ @Override
+ protected void doStart() {
properties.checkComplete();
twitter = new TwitterFactory(properties.getConfiguration()).getInstance();
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/Twitter4JConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/Twitter4JConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/Twitter4JConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/Twitter4JConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,16 +16,25 @@
*/
package org.apache.camel.component.twitter.consumer;
-import java.util.Iterator;
-
-import org.apache.camel.component.twitter.data.Status;
+import java.io.Serializable;
+import java.util.List;
import twitter4j.TwitterException;
-public interface Twitter4JConsumer {
+public abstract class Twitter4JConsumer {
+
+ protected long lastId = 1;
+
+ // Can't assume that the end of the list will be the most recent ID.
+ // The Twitter API sometimes returns them slightly out of order.
+ protected void checkLastId(long newId) {
+ if (newId > lastId) {
+ lastId = newId;
+ }
+ }
- Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException;
+ public abstract List<? extends Serializable> pollConsume() throws TwitterException;
- Iterator<Status> requestDirectStatus() throws TwitterException;
+ public abstract List<? extends Serializable> directConsume() throws TwitterException;
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerDirect.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerDirect.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerDirect.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerDirect.java Tue Jan 10 02:51:50 2012
@@ -16,13 +16,13 @@
*/
package org.apache.camel.component.twitter.consumer;
+import java.io.Serializable;
import java.util.Iterator;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.direct.DirectConsumer;
import org.apache.camel.component.twitter.TwitterEndpoint;
-import org.apache.camel.component.twitter.data.Status;
/**
* Camel DirectConsumer implementation.
@@ -43,17 +43,10 @@ public class TwitterConsumerDirect exten
protected void doStart() throws Exception {
super.doStart();
- Iterator<Status> statusIterator = twitter4jConsumer.requestDirectStatus();
- while (statusIterator.hasNext()) {
- Status tStatus = statusIterator.next();
-
- Exchange e = getEndpoint().createExchange();
-
- e.getIn().setHeader("screenName", tStatus.getUser().getScreenName());
- e.getIn().setHeader("date", tStatus.getDate());
-
- e.getIn().setBody(tStatus);
-
+ Iterator<? extends Serializable> i = twitter4jConsumer.directConsume().iterator();
+ while (i.hasNext()) {
+ Exchange e = getEndpoint().createExchange();
+ e.getIn().setBody(i.next());
getProcessor().process(e);
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerPolling.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerPolling.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerPolling.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/TwitterConsumerPolling.java Tue Jan 10 02:51:50 2012
@@ -16,13 +16,13 @@
*/
package org.apache.camel.component.twitter.consumer;
+import java.io.Serializable;
import java.util.Iterator;
import java.util.concurrent.TimeUnit;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.component.twitter.TwitterEndpoint;
-import org.apache.camel.component.twitter.data.Status;
import org.apache.camel.impl.ScheduledPollConsumer;
/**
@@ -32,7 +32,6 @@ import org.apache.camel.impl.ScheduledPo
public class TwitterConsumerPolling extends ScheduledPollConsumer implements TwitterConsumer {
private Twitter4JConsumer twitter4jConsumer;
- private long lastStatusUpdateID = 1;
public TwitterConsumerPolling(TwitterEndpoint endpoint, Processor processor,
Twitter4JConsumer twitter4jConsumer) {
@@ -47,37 +46,17 @@ public class TwitterConsumerPolling exte
}
protected int poll() throws Exception {
- Iterator<Status> statusIterator = twitter4jConsumer.requestPollingStatus(lastStatusUpdateID);
+ Iterator<? extends Serializable> i = twitter4jConsumer.pollConsume().iterator();
int total = 0;
- while (statusIterator.hasNext()) {
- Status tStatus = statusIterator.next();
-
- // if (tStatus.getId() <= lastStatusUpdateID) {
- // return 0;
- // }
-
+ while (i.hasNext()) {
Exchange e = getEndpoint().createExchange();
-
- e.getIn().setHeader("screenName", tStatus.getUser().getScreenName());
- e.getIn().setHeader("date", tStatus.getDate());
-
- e.getIn().setBody(tStatus);
-
+ e.getIn().setBody(i.next());
getProcessor().process(e);
total++;
- // make sure it ignores updates that were already polled
- long newerStatusID = tStatus.getId();
- if (newerStatusID > lastStatusUpdateID) {
- lastStatusUpdateID = newerStatusID;
- }
}
return total;
}
-
- public long getLastStatusUpdateID() {
- return lastStatusUpdateID;
- }
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/directmessage/DirectMessageConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/directmessage/DirectMessageConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/directmessage/DirectMessageConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/directmessage/DirectMessageConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,13 +16,10 @@
*/
package org.apache.camel.component.twitter.consumer.directmessage;
-import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
import twitter4j.DirectMessage;
import twitter4j.Paging;
@@ -31,7 +28,7 @@ import twitter4j.TwitterException;
/**
* Consumes a user's direct messages
*/
-public class DirectMessageConsumer implements Twitter4JConsumer {
+public class DirectMessageConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -39,19 +36,15 @@ public class DirectMessageConsumer imple
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
- return getIterator(te.getTwitter().getDirectMessages(new Paging(lastStatusUpdateId)));
+ public List<DirectMessage> pollConsume() throws TwitterException {
+ List<DirectMessage> list = te.getTwitter().getDirectMessages(new Paging(lastId));
+ for (DirectMessage dm : list) {
+ checkLastId(dm.getId());
+ }
+ return list;
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
- return getIterator(te.getTwitter().getDirectMessages());
- }
-
- private Iterator<Status> getIterator(List<DirectMessage> messagesList) {
- List<Status> statusCamelTweet = new ArrayList<Status>(messagesList.size());
- for (Iterator<DirectMessage> i = messagesList.iterator(); i.hasNext();) {
- statusCamelTweet.add(new Status(i.next()));
- }
- return statusCamelTweet.iterator();
+ public List<DirectMessage> directConsume() throws TwitterException {
+ return te.getTwitter().getDirectMessages();
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/search/SearchConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,13 +16,10 @@
*/
package org.apache.camel.component.twitter.consumer.search;
-import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
import twitter4j.Query;
import twitter4j.QueryResult;
@@ -33,7 +30,7 @@ import twitter4j.TwitterException;
* Consumes search requests
*
*/
-public class SearchConsumer implements Twitter4JConsumer {
+public class SearchConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -41,28 +38,25 @@ public class SearchConsumer implements T
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
+ public List<Tweet> pollConsume() throws TwitterException {
String keywords = te.getProperties().getKeywords();
Query query = new Query(keywords);
- query.setSinceId(lastStatusUpdateId);
+ query.setSinceId(lastId);
return search(query);
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
+ public List<Tweet> directConsume() throws TwitterException {
String keywords = te.getProperties().getKeywords();
return search(new Query(keywords));
}
- private Iterator<Status> search(Query query) throws TwitterException {
+ private List<Tweet> search(Query query) throws TwitterException {
QueryResult qr = te.getTwitter().search(query);
List<Tweet> tweets = qr.getTweets();
- List<Status> statusCamel = new ArrayList<Status>(tweets.size());
- Iterator<Tweet> i = tweets.iterator();
- while (i.hasNext()) {
- statusCamel.add(new Status(i.next()));
- }
-
- return statusCamel.iterator();
+ for (Tweet t : tweets) {
+ checkLastId(t.getId());
+ }
+ return tweets;
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/streaming/StreamingConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/streaming/StreamingConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/streaming/StreamingConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/streaming/StreamingConsumer.java Tue Jan 10 02:51:50 2012
@@ -18,14 +18,12 @@ package org.apache.camel.component.twitt
import java.util.ArrayList;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
+import twitter4j.Status;
import twitter4j.StatusDeletionNotice;
import twitter4j.StatusListener;
import twitter4j.TwitterException;
@@ -34,7 +32,7 @@ import twitter4j.TwitterException;
* Super class providing consuming capabilities for the streaming API.
*
*/
-public class StreamingConsumer implements Twitter4JConsumer, StatusListener {
+public class StreamingConsumer extends Twitter4JConsumer implements StatusListener {
TwitterEndpoint te;
private List<Status> receivedStatuses = new ArrayList<Status>();
@@ -44,12 +42,12 @@ public class StreamingConsumer implement
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
+ public List<Status> pollConsume() throws TwitterException {
clear = true;
- return Collections.unmodifiableList(receivedStatuses).iterator();
+ return Collections.unmodifiableList(receivedStatuses);
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
+ public List<Status> directConsume() throws TwitterException {
// not used
return null;
}
@@ -61,12 +59,12 @@ public class StreamingConsumer implement
}
@Override
- public void onStatus(twitter4j.Status status) {
+ public void onStatus(Status status) {
if (clear) {
receivedStatuses.clear();
clear = false;
}
- receivedStatuses.add(TwitterConverter.convertStatus(status));
+ receivedStatuses.add(status);
}
@Override
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/HomeConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/HomeConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/HomeConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/HomeConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,22 +16,20 @@
*/
package org.apache.camel.component.twitter.consumer.timeline;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
import twitter4j.Paging;
+import twitter4j.Status;
import twitter4j.TwitterException;
/**
* Consumes the user's home timeline.
*
*/
-public class HomeConsumer implements Twitter4JConsumer {
+public class HomeConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -39,13 +37,15 @@ public class HomeConsumer implements Twi
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getHomeTimeline(new Paging(lastStatusUpdateId));
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> pollConsume() throws TwitterException {
+ List<Status> list = te.getTwitter().getHomeTimeline(new Paging(lastId));
+ for (Status s : list) {
+ checkLastId(s.getId());
+ }
+ return list;
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getHomeTimeline();
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> directConsume() throws TwitterException {
+ return te.getTwitter().getHomeTimeline();
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/MentionsConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/MentionsConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/MentionsConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/MentionsConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,21 +16,19 @@
*/
package org.apache.camel.component.twitter.consumer.timeline;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
import twitter4j.Paging;
+import twitter4j.Status;
import twitter4j.TwitterException;
/**
* Consumes tweets in which the user has been mentioned.
*/
-public class MentionsConsumer implements Twitter4JConsumer {
+public class MentionsConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -38,13 +36,15 @@ public class MentionsConsumer implements
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getMentions(new Paging(lastStatusUpdateId));
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> pollConsume() throws TwitterException {
+ List<Status> list = te.getTwitter().getMentions(new Paging(lastId));
+ for (Status s : list) {
+ checkLastId(s.getId());
+ }
+ return list;
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getMentions();
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> directConsume() throws TwitterException {
+ return te.getTwitter().getMentions();
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/PublicConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/PublicConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/PublicConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/PublicConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,21 +16,19 @@
*/
package org.apache.camel.component.twitter.consumer.timeline;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
+import twitter4j.Status;
import twitter4j.TwitterException;
/**
* Consumes the public timeline
*
*/
-public class PublicConsumer implements Twitter4JConsumer {
+public class PublicConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -38,16 +36,15 @@ public class PublicConsumer implements T
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
+ public List<Status> pollConsume() throws TwitterException {
return getPublicTimeline();
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
+ public List<Status> directConsume() throws TwitterException {
return getPublicTimeline();
}
- private Iterator<Status> getPublicTimeline() throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getPublicTimeline();
- return TwitterConverter.convertStatuses(statusList).iterator();
+ private List<Status> getPublicTimeline() throws TwitterException {
+ return te.getTwitter().getPublicTimeline();
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/RetweetsConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/RetweetsConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/RetweetsConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/RetweetsConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,22 +16,20 @@
*/
package org.apache.camel.component.twitter.consumer.timeline;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
import twitter4j.Paging;
+import twitter4j.Status;
import twitter4j.TwitterException;
/**
* Consumes a user's tweets that have been retweeted
*
*/
-public class RetweetsConsumer implements Twitter4JConsumer {
+public class RetweetsConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -39,13 +37,15 @@ public class RetweetsConsumer implements
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getRetweetsOfMe(new Paging(lastStatusUpdateId));
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> pollConsume() throws TwitterException {
+ List<Status> list = te.getTwitter().getRetweetsOfMe(new Paging(lastId));
+ for (Status s : list) {
+ checkLastId(s.getId());
+ }
+ return list;
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getRetweetsOfMe();
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> directConsume() throws TwitterException {
+ return te.getTwitter().getRetweetsOfMe();
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/UserConsumer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/UserConsumer.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/UserConsumer.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/consumer/timeline/UserConsumer.java Tue Jan 10 02:51:50 2012
@@ -16,21 +16,19 @@
*/
package org.apache.camel.component.twitter.consumer.timeline;
-import java.util.Iterator;
import java.util.List;
import org.apache.camel.component.twitter.TwitterEndpoint;
import org.apache.camel.component.twitter.consumer.Twitter4JConsumer;
-import org.apache.camel.component.twitter.data.Status;
-import org.apache.camel.component.twitter.util.TwitterConverter;
import twitter4j.Paging;
+import twitter4j.Status;
import twitter4j.TwitterException;
/**
* Consumes the timeline of a given user.
*/
-public class UserConsumer implements Twitter4JConsumer {
+public class UserConsumer extends Twitter4JConsumer {
TwitterEndpoint te;
@@ -38,14 +36,16 @@ public class UserConsumer implements Twi
this.te = te;
}
- public Iterator<Status> requestPollingStatus(long lastStatusUpdateId) throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getUserTimeline(te.getProperties().getUser(),
- new Paging(lastStatusUpdateId));
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> pollConsume() throws TwitterException {
+ List<Status> list = te.getTwitter().getUserTimeline(
+ te.getProperties().getUser(), new Paging(lastId));
+ for (Status s : list) {
+ checkLastId(s.getId());
+ }
+ return list;
}
- public Iterator<Status> requestDirectStatus() throws TwitterException {
- List<twitter4j.Status> statusList = te.getTwitter().getUserTimeline(te.getProperties().getUser());
- return TwitterConverter.convertStatuses(statusList).iterator();
+ public List<Status> directConsume() throws TwitterException {
+ return te.getTwitter().getUserTimeline(te.getProperties().getUser());
}
}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/Status.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/Status.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/Status.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/Status.java Tue Jan 10 02:51:50 2012
@@ -1,181 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.twitter.data;
-
-import java.util.Date;
-
-import twitter4j.DirectMessage;
-import twitter4j.Tweet;
-
-public class Status {
-
- private Date date;
- private User user;
- private long id;
- private String text;
- private boolean truncated;
- private GeoLocation geoLocation;
- private String inReplyToScreenName;
- private long inReplyToStatusId;
- private long inReplyToUserId;
- private long retweetCount;
- private Status retweetedStatus;
- private String source;
-
- public Status(twitter4j.Status s) {
- this.user = new User(s.getUser());
- this.id = s.getId();
- this.text = s.getText();
- this.date = s.getCreatedAt();
- this.truncated = s.isTruncated();
- this.inReplyToScreenName = s.getInReplyToScreenName();
- this.inReplyToStatusId = s.getInReplyToStatusId();
- this.inReplyToUserId = s.getInReplyToUserId();
- this.retweetCount = s.getRetweetCount();
- this.source = s.getSource();
-
- if (s.getGeoLocation() != null) {
- this.geoLocation = new GeoLocation(s.getGeoLocation());
- }
-
- if (s.getRetweetedStatus() != null) {
- this.retweetedStatus = new Status(s.getRetweetedStatus());
- }
- }
-
- public Status(Tweet s) {
- this.user = new User(s.getFromUser());
- this.id = s.getId();
- this.text = s.getText();
- this.date = s.getCreatedAt();
- this.source = s.getSource();
-
- if (s.getGeoLocation() != null) {
- this.geoLocation = new GeoLocation(s.getGeoLocation());
- }
- }
-
- public Status(DirectMessage dm) {
- this.date = dm.getCreatedAt();
- this.id = dm.getId();
- this.user = new User(dm.getSender());
- this.text = dm.getText();
- }
-
- public Date getDate() {
- return date;
- }
-
- public void setDate(Date date) {
- this.date = date;
- }
-
- public User getUser() {
- return user;
- }
-
- public void setUser(User user) {
- this.user = user;
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public String getText() {
- return text;
- }
-
- public void setText(String text) {
- this.text = text;
- }
-
- public boolean isTruncated() {
- return truncated;
- }
-
- public void setTruncated(boolean truncated) {
- this.truncated = truncated;
- }
-
- public GeoLocation getGeoLocation() {
- return geoLocation;
- }
-
- public void setGeoLocation(GeoLocation geoLocation) {
- this.geoLocation = geoLocation;
- }
-
- public String getInReplyToScreenName() {
- return inReplyToScreenName;
- }
-
- public void setInReplyToScreenName(String inReplyToScreenName) {
- this.inReplyToScreenName = inReplyToScreenName;
- }
-
- public long getInReplyToStatusId() {
- return inReplyToStatusId;
- }
-
- public void setInReplyToStatusId(long inReplyToStatusId) {
- this.inReplyToStatusId = inReplyToStatusId;
- }
-
- public long getInReplyToUserId() {
- return inReplyToUserId;
- }
-
- public void setInReplyToUserId(long inReplyToUserId) {
- this.inReplyToUserId = inReplyToUserId;
- }
-
- public long getRetweetCount() {
- return retweetCount;
- }
-
- public void setRetweetCount(long retweetCount) {
- this.retweetCount = retweetCount;
- }
-
- public Status getRetweetedStatus() {
- return retweetedStatus;
- }
-
- public void setRetweetedStatus(Status retweetedStatus) {
- this.retweetedStatus = retweetedStatus;
- }
-
- public String getSource() {
- return source;
- }
-
- public void setSource(String source) {
- this.source = source;
- }
-
- public String toString() {
- StringBuilder s = new StringBuilder();
- s.append(getDate()).append(" (").append(getUser().getScreenName()).append(") ");
- s.append(getText());
- return s.toString();
- }
-}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/User.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/User.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/User.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/data/User.java Tue Jan 10 02:51:50 2012
@@ -1,201 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.twitter.data;
-
-import java.net.URL;
-import java.util.Date;
-
-public class User {
-
- private String description;
- private String screenName;
- private URL profileUrl;
- private URL profileImageUrl;
- private String name;
- private String location;
- private int followersCount;
- private int accessLevel;
- private Date createdAt;
- private int favoritesCount;
- private int friendsCount;
- private long id;
- private String language;
- private int listedCount;
- private int statusesCount;
- private String timeZone;
- private URL url;
-
- public User(String name) {
- this.name = name;
- }
-
- public User(twitter4j.User user) {
- this.name = user.getName();
- this.screenName = user.getScreenName();
- this.profileImageUrl = user.getProfileImageURL();
- this.profileUrl = user.getURL();
- this.location = user.getLocation();
- this.description = user.getDescription();
- this.followersCount = user.getFollowersCount();
- this.accessLevel = user.getAccessLevel();
- this.createdAt = user.getCreatedAt();
- this.favoritesCount = user.getFavouritesCount();
- this.friendsCount = user.getFriendsCount();
- this.id = user.getId();
- this.language = user.getLang();
- this.listedCount = user.getListedCount();
- this.statusesCount = user.getStatusesCount();
- this.timeZone = user.getTimeZone();
- this.url = user.getURL();
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public String getScreenName() {
- return screenName;
- }
-
- public void setScreenName(String screenName) {
- this.screenName = screenName;
- }
-
- public URL getProfileUrl() {
- return profileUrl;
- }
-
- public void setProfileUrl(URL profileUrl) {
- this.profileUrl = profileUrl;
- }
-
- public URL getProfileImageUrl() {
- return profileImageUrl;
- }
-
- public void setProfileImageUrl(URL profileImageUrl) {
- this.profileImageUrl = profileImageUrl;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getLocation() {
- return location;
- }
-
- public void setLocation(String location) {
- this.location = location;
- }
-
- public int getFollowersCount() {
- return followersCount;
- }
-
- public void setFollowersCount(int followersCount) {
- this.followersCount = followersCount;
- }
-
- public int getAccessLevel() {
- return accessLevel;
- }
-
- public void setAccessLevel(int accessLevel) {
- this.accessLevel = accessLevel;
- }
-
- public Date getCreatedAt() {
- return createdAt;
- }
-
- public void setCreatedAt(Date createdAt) {
- this.createdAt = createdAt;
- }
-
- public int getFavoritesCount() {
- return favoritesCount;
- }
-
- public void setFavoritesCount(int favoritesCount) {
- this.favoritesCount = favoritesCount;
- }
-
- public int getFriendsCount() {
- return friendsCount;
- }
-
- public void setFriendsCount(int friendsCount) {
- this.friendsCount = friendsCount;
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public String getLanguage() {
- return language;
- }
-
- public void setLanguage(String language) {
- this.language = language;
- }
-
- public int getListedCount() {
- return listedCount;
- }
-
- public void setListedCount(int listedCount) {
- this.listedCount = listedCount;
- }
-
- public int getStatusesCount() {
- return statusesCount;
- }
-
- public void setStatusesCount(int statusesCount) {
- this.statusesCount = statusesCount;
- }
-
- public String getTimeZone() {
- return timeZone;
- }
-
- public void setTimeZone(String timeZone) {
- this.timeZone = timeZone;
- }
-
- public URL getUrl() {
- return url;
- }
-
- public void setUrl(URL url) {
- this.url = url;
- }
-}
Modified: camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java?rev=1229457&r1=1229456&r2=1229457&view=diff
==============================================================================
--- camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java (original)
+++ camel/trunk/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/util/TwitterConverter.java Tue Jan 10 02:51:50 2012
@@ -17,12 +17,12 @@
package org.apache.camel.component.twitter.util;
import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
import org.apache.camel.Converter;
-import org.apache.camel.component.twitter.data.Status;
+
+import twitter4j.DirectMessage;
+import twitter4j.Status;
+import twitter4j.Tweet;
/**
* Utility for converting between Twitter4J and camel-twitter data layers.
@@ -37,20 +37,25 @@ public final class TwitterConverter {
@Converter
public static String toString(Status status) throws ParseException {
- return status.toString();
+ StringBuilder s = new StringBuilder();
+ s.append(status.getCreatedAt()).append(" (").append(status.getUser().getScreenName()).append(") ");
+ s.append(status.getText());
+ return s.toString();
}
@Converter
- public static Status convertStatus(twitter4j.Status s) {
- return new Status(s);
+ public static String toString(Tweet tweet) throws ParseException {
+ StringBuilder s = new StringBuilder();
+ s.append(tweet.getCreatedAt()).append(" (").append(tweet.getFromUser()).append(") ");
+ s.append(tweet.getText());
+ return s.toString();
}
@Converter
- public static List<Status> convertStatuses(List<twitter4j.Status> ls) {
- List<Status> newLs = new ArrayList<Status>(ls.size());
- for (Iterator<twitter4j.Status> i = ls.iterator(); i.hasNext();) {
- newLs.add(convertStatus(i.next()));
- }
- return newLs;
+ public static String toString(DirectMessage dm) throws ParseException {
+ StringBuilder s = new StringBuilder();
+ s.append(dm.getCreatedAt()).append(" (").append(dm.getSenderScreenName()).append(") ");
+ s.append(dm.getText());
+ return s.toString();
}
}