Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Steven Jacobs (Code Review)
Steven Jacobs has submitted this change and it was merged.

Change subject: Add user-stream for Twitter Adaptor
..


Add user-stream for Twitter Adaptor

1. Add user-stream option for Twitter Adaptor
2. Refactor part of TwitterRecordReaderFactory
3. To create a user-stream feed, using following ddl:
  create feed TwitterFeed using twitter_user_stream(
  ("format"="twitter-status"),
  ("type-name"="Tweet"),
  ...
   // rest is same as push feed

Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Reviewed-on: https://asterix-gerrit.ics.uci.edu/1272
Reviewed-by: Steven Jacobs 
Tested-by: Jenkins 
Integration-Tests: Jenkins 
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DatasourceFactoryProvider.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/TwitterUtil.java
5 files changed, 251 insertions(+), 76 deletions(-)

Approvals:
  Steven Jacobs: Looks good to me, approved
  Jenkins: Verified; Verified

Objections:
  Jenkins: Violations found



diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
index 9ead8a9..bd7 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
@@ -26,6 +26,8 @@
 import org.apache.asterix.external.dataflow.AbstractFeedDataFlowController;
 import org.apache.asterix.external.input.record.GenericRecord;
 import org.apache.asterix.external.util.FeedLogManager;
+import org.apache.asterix.external.util.TwitterUtil;
+import twitter4j.DirectMessage;
 import twitter4j.FilterQuery;
 import twitter4j.StallWarning;
 import twitter4j.Status;
@@ -33,6 +35,9 @@
 import twitter4j.StatusListener;
 import twitter4j.TwitterObjectFactory;
 import twitter4j.TwitterStream;
+import twitter4j.User;
+import twitter4j.UserList;
+import twitter4j.UserStreamListener;
 
 public class TwitterPushRecordReader implements IRecordReader {
 private LinkedBlockingQueue inputQ;
@@ -40,20 +45,32 @@
 private GenericRecord record;
 private boolean closed = false;
 
-public TwitterPushRecordReader(TwitterStream twitterStream, FilterQuery 
query) {
-record = new GenericRecord<>();
-inputQ = new LinkedBlockingQueue<>();
-this.twitterStream = 
twitterStream;//TwitterUtil.getTwitterStream(configuration);
-this.twitterStream.addListener(new TweetListener(inputQ));
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.TweetListener tweetListener,
+FilterQuery query) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
 this.twitterStream.filter(query);
 }
 
-public TwitterPushRecordReader(TwitterStream twitterStream) {
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.TweetListener tweetListener) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
+twitterStream.sample();
+}
+
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.UserTweetsListener tweetListener) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
+twitterStream.user();
+}
+
+private void init(TwitterStream twitterStream) {
 record = new GenericRecord<>();
 inputQ = new LinkedBlockingQueue<>();
-this.twitterStream = twitterStream;//
-this.twitterStream.addListener(new TweetListener(inputQ));
-twitterStream.sample();
+this.twitterStream = twitterStream;
 }
 
 @Override
@@ -89,46 +106,6 @@
 return false;
 }
 return true;
-}
-
-private class TweetListener implements StatusListener {
-
-private LinkedBlockingQueue inputQ;
-
-public TweetListener(LinkedBlockingQueue inputQ) {
-this.inputQ = inputQ;
-}
-
-@Override
-public void onStatus(Status tweet) {
-String jsonTweet = TwitterObjectFactory.getRawJSON(tweet);
-inputQ.add(

Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 3: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/989/ : 
SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 3:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/989/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 3: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 3:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/3098/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Xikui Wang (Code Review)
Hello Steven Jacobs, Jenkins,

I'd like you to reexamine a change.  Please visit

https://asterix-gerrit.ics.uci.edu/1272

to look at the new patch set (#3).

Change subject: Add user-stream for Twitter Adaptor
..

Add user-stream for Twitter Adaptor

1. Add user-stream option for Twitter Adaptor
2. Refactor part of TwitterRecordReaderFactory
3. To create a user-stream feed, using following ddl:
  create feed TwitterFeed using twitter_user_stream(
  ("format"="twitter-status"),
  ("type-name"="Tweet"),
  ...
   // rest is same as push feed

Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DatasourceFactoryProvider.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/TwitterUtil.java
5 files changed, 251 insertions(+), 76 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/72/1272/3
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 3
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2: Code-Review+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

+2

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Xikui Wang (Code Review)
Xikui Wang has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

(1 comment)

Yes. The user of twitter feed needs to apply for Twitter API using certain 
twitter account. That's the account they are monitoring. :)

https://asterix-gerrit.ics.uci.edu/#/c/1272/2/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
File 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java:

Line 119: ? new 
TwitterPushRecordReader(TwitterUtil.getTwitterStream(configuration),
> I'm guessing this doesn't get closed until the feed is dropped?
Yes. Until the feed is stopped or dropped.


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-20 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

(3 comments)

Oh, so this is something that is already sent in the "push feed?"

https://asterix-gerrit.ics.uci.edu/#/c/1272/2/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
File 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java:

Line 68: }
> Yeah. Basically the only part that could be shrunk is the tweetList
Okay, let's just leave as it is then.


https://asterix-gerrit.ics.uci.edu/#/c/1272/2/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
File 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java:

Line 119: ? new 
TwitterPushRecordReader(TwitterUtil.getTwitterStream(configuration),
> BLOCKER SonarQube violation:
I'm guessing this doesn't get closed until the feed is dropped?


Line 121: : new 
TwitterPushRecordReader(TwitterUtil.getTwitterStream(configuration),
> BLOCKER SonarQube violation:
I'm guessing this doesn't get closed until the feed is dropped?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-19 Thread Xikui Wang (Code Review)
Xikui Wang has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

(1 comment)

The user whose access token is used in the feed creation, is the one that we 
are monitoring.

https://asterix-gerrit.ics.uci.edu/#/c/1272/2/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
File 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java:

Line 68: }
> Can we extract the common code from these three constructors and move it to
Yeah. Basically the only part that could be shrunk is the 
tweetListener.setInputQ(inputQ). But the tweetListener(s) are not the same in 
them, should I cast all to be tweetListener?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: Xikui Wang 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-14 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

Also, the commit message doesn't show how to pass the user we want to listen to.

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-14 Thread Steven Jacobs (Code Review)
Steven Jacobs has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

(1 comment)

https://asterix-gerrit.ics.uci.edu/#/c/1272/2/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
File 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java:

Line 68: }
Can we extract the common code from these three constructors and move it to 
init?


-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-Reviewer: Steven Jacobs 
Gerrit-Reviewer: Till Westmann 
Gerrit-Reviewer: abdullah alamoudi 
Gerrit-HasComments: Yes


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-13 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/904/ : 
SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-13 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/904/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 2:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2994/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Xikui Wang (Code Review)
Hello Jenkins,

I'd like you to reexamine a change.  Please visit

https://asterix-gerrit.ics.uci.edu/1272

to look at the new patch set (#2).

Change subject: Add user-stream for Twitter Adaptor
..

Add user-stream for Twitter Adaptor

1. Add user-stream option for Twitter Adaptor
2. Refactor part of TwitterRecordReaderFactory
3. To create a user-stream feed, using following ddl:
  create feed TwitterFeed using twitter_user_stream(
  ("format"="twitter-status"),
  ("type-name"="Tweet"),
  ...
   // rest is same as push feed

Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DatasourceFactoryProvider.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/TwitterUtil.java
5 files changed, 251 insertions(+), 76 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/72/1272/2
-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 2
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 1: Integration-Tests+1

Integration Tests Successful

https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/896/ : 
SUCCESS

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 1:

Integration Tests Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-integration-tests/896/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Jenkins (Code Review)
Jenkins has posted comments on this change.

Change subject: Add user-stream for Twitter Adaptor
..


Patch Set 1:

Build Started 
https://asterix-jenkins.ics.uci.edu/job/asterix-gerrit-notopic/2985/

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1272
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Xikui Wang 
Gerrit-Reviewer: Jenkins 
Gerrit-HasComments: No


Change in asterixdb[master]: Add user-stream for Twitter Adaptor

2016-10-12 Thread Xikui Wang (Code Review)
Xikui Wang has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1272

Change subject: Add user-stream for Twitter Adaptor
..

Add user-stream for Twitter Adaptor

1. Add user-stream option for Twitter Adaptor
2. Refactor part of TwitterRecordReaderFactory
3. To create a user-stream feed, using following ddl:
  create feed TwitterFeed using twitter_user_stream(
  ("format"="twitter-status"),
  ("type-name"="Tweet"),
  ...
   // rest is same as push feed

Change-Id: I99cdd4cb667306d378317616f9811dfce3e6d838
---
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterRecordReaderFactory.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/provider/DatasourceFactoryProvider.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/ExternalDataConstants.java
M 
asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/util/TwitterUtil.java
5 files changed, 278 insertions(+), 93 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/72/1272/1

diff --git 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
index 9ead8a9..c296bc6 100644
--- 
a/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
+++ 
b/asterixdb/asterix-external-data/src/main/java/org/apache/asterix/external/input/record/reader/twitter/TwitterPushRecordReader.java
@@ -26,6 +26,8 @@
 import org.apache.asterix.external.dataflow.AbstractFeedDataFlowController;
 import org.apache.asterix.external.input.record.GenericRecord;
 import org.apache.asterix.external.util.FeedLogManager;
+import org.apache.asterix.external.util.TwitterUtil;
+import twitter4j.DirectMessage;
 import twitter4j.FilterQuery;
 import twitter4j.StallWarning;
 import twitter4j.Status;
@@ -33,27 +35,43 @@
 import twitter4j.StatusListener;
 import twitter4j.TwitterObjectFactory;
 import twitter4j.TwitterStream;
+import twitter4j.User;
+import twitter4j.UserList;
+import twitter4j.UserStreamListener;
 
 public class TwitterPushRecordReader implements IRecordReader {
 private LinkedBlockingQueue inputQ;
 private TwitterStream twitterStream;
 private GenericRecord record;
+private StatusListener tweetListener;
 private boolean closed = false;
 
-public TwitterPushRecordReader(TwitterStream twitterStream, FilterQuery 
query) {
-record = new GenericRecord<>();
-inputQ = new LinkedBlockingQueue<>();
-this.twitterStream = 
twitterStream;//TwitterUtil.getTwitterStream(configuration);
-this.twitterStream.addListener(new TweetListener(inputQ));
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.TweetListener tweetListener,
+FilterQuery query) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
 this.twitterStream.filter(query);
 }
 
-public TwitterPushRecordReader(TwitterStream twitterStream) {
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.TweetListener tweetListener) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
+twitterStream.sample();
+}
+
+public TwitterPushRecordReader(TwitterStream twitterStream, 
TwitterUtil.UserTweetsListener tweetListener) {
+init(twitterStream);
+tweetListener.setInputQ(inputQ);
+this.twitterStream.addListener(tweetListener);
+twitterStream.user();
+}
+
+private void init(TwitterStream twitterStream) {
 record = new GenericRecord<>();
 inputQ = new LinkedBlockingQueue<>();
-this.twitterStream = twitterStream;//
-this.twitterStream.addListener(new TweetListener(inputQ));
-twitterStream.sample();
+this.twitterStream = twitterStream;
 }
 
 @Override
@@ -89,46 +107,6 @@
 return false;
 }
 return true;
-}
-
-private class TweetListener implements StatusListener {
-
-private LinkedBlockingQueue inputQ;
-
-public TweetListener(LinkedBlockingQueue inputQ) {
-this.inputQ = inputQ;
-}
-
-@Override
-public void onStatus(Status tweet) {
-String jsonTweet = TwitterObjectFactory.getRawJSON(tweet);
-inputQ.add(jsonTweet);
-}
-
-@Override
-public void onExcept