Skip to content

Commit 0ef27a2

Browse files
working on #247, working on #248, working on #249, working on #250, working on #251, working on #252, working on #253
1 parent 6e8b620 commit 0ef27a2

30 files changed

+731
-48
lines changed

src/main/java/org/woehlke/twitterwall/oodm/service/UserListService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import org.woehlke.twitterwall.oodm.entities.UserList;
44
import org.woehlke.twitterwall.oodm.service.common.DomainServiceWithIdTwitter;
5+
import org.woehlke.twitterwall.oodm.service.common.DomainServiceWithTask;
56

6-
public interface UserListService extends DomainServiceWithIdTwitter<UserList> {
7+
public interface UserListService extends DomainServiceWithIdTwitter<UserList>,DomainServiceWithTask<UserList> {
78

89
}

src/main/java/org/woehlke/twitterwall/oodm/service/impl/UserListServiceImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
55
import org.springframework.beans.factory.annotation.Autowired;
6-
import org.springframework.data.domain.Page;
7-
import org.springframework.data.domain.Pageable;
86
import org.springframework.stereotype.Service;
97
import org.springframework.transaction.annotation.Propagation;
108
import org.springframework.transaction.annotation.Transactional;
@@ -17,7 +15,7 @@
1715
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
1816
public class UserListServiceImpl extends DomainServiceWithTaskImpl<UserList> implements UserListService {
1917

20-
private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class);
18+
private static final Logger log = LoggerFactory.getLogger(UserListServiceImpl.class);
2119

2220
private final UserListRepository domainRepository;
2321

src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/TwitterwallMessageBuilder.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import org.springframework.messaging.Message;
44
import org.springframework.social.twitter.api.Tweet;
55
import org.springframework.social.twitter.api.TwitterProfile;
6+
import org.springframework.social.twitter.api.UserList;
67
import org.woehlke.twitterwall.oodm.entities.Task;
78
import org.woehlke.twitterwall.oodm.entities.User;
89
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
910
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
11+
import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
1012
import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
1113

1214
public interface TwitterwallMessageBuilder {
@@ -32,4 +34,6 @@ public interface TwitterwallMessageBuilder {
3234
Message<UserMessage> buildUserMessage(Message<TaskMessage> mqMessageIn, User imprintUser);
3335

3436
void waitForApi();
37+
38+
Message<UserListMessage> buildUserListMessage(Message<TaskMessage> incomingTaskMessage, UserList userList, int loopId, int loopAll);
3539
}

src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/impl/TwitterwallMessageBuilderImpl.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
import org.springframework.messaging.Message;
88
import org.springframework.social.twitter.api.Tweet;
99
import org.springframework.social.twitter.api.TwitterProfile;
10+
import org.springframework.social.twitter.api.UserList;
1011
import org.springframework.stereotype.Component;
1112
import org.woehlke.twitterwall.conf.properties.TwitterProperties;
1213
import org.woehlke.twitterwall.oodm.entities.Task;
1314
import org.woehlke.twitterwall.oodm.entities.User;
1415
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
1516
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
1617
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
18+
import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
1719
import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
1820

1921
@Component
@@ -148,6 +150,18 @@ public void waitForApi() {
148150
}
149151
}
150152

153+
@Override
154+
public Message<UserListMessage> buildUserListMessage(Message<TaskMessage> incomingTaskMessage, UserList userList, int loopId, int loopAll) {
155+
UserListMessage outputPayload = new UserListMessage(incomingTaskMessage.getPayload(),userList);
156+
Message<UserListMessage> mqMessageOut =
157+
MessageBuilder.withPayload(outputPayload)
158+
.copyHeaders(incomingTaskMessage.getHeaders())
159+
.setHeader("loop_id",loopId)
160+
.setHeader("loop_all",loopAll)
161+
.build();
162+
return mqMessageOut;
163+
}
164+
151165
@Autowired
152166
public TwitterwallMessageBuilderImpl(TwitterProperties twitterProperties) {
153167
this.twitterProperties = twitterProperties;
Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,57 @@
11
package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
22

3+
import org.springframework.beans.factory.annotation.Autowired;
34
import org.springframework.messaging.Message;
5+
import org.springframework.social.twitter.api.Tweet;
46
import org.springframework.stereotype.Component;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
9+
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
10+
import org.woehlke.twitterwall.oodm.service.TaskService;
11+
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
512
import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.FavoritesSplitter;
613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
714
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
15+
import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
816

17+
import java.util.ArrayList;
918
import java.util.List;
1019

1120
@Component("mqFavoritesSplitter")
1221
public class FavoritesSplitterImpl implements FavoritesSplitter {
22+
23+
private final TwitterApiService twitterApiService;
24+
25+
private final TaskService taskService;
26+
27+
private final CountedEntitiesService countedEntitiesService;
28+
29+
private final TwitterwallMessageBuilder twitterwallMessageBuilder;
30+
31+
@Autowired
32+
public FavoritesSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
33+
this.twitterApiService = twitterApiService;
34+
this.taskService = taskService;
35+
this.countedEntitiesService = countedEntitiesService;
36+
this.twitterwallMessageBuilder = twitterwallMessageBuilder;
37+
}
38+
1339
@Override
1440
public List<Message<TweetMessage>> splitTweetMessage(Message<TaskMessage> message) {
15-
return null;
41+
CountedEntities countedEntities = countedEntitiesService.countAll();
42+
List<Message<TweetMessage>> tweets = new ArrayList<>();
43+
TaskMessage msgIn = message.getPayload();
44+
long id = msgIn.getTaskId();
45+
Task task = taskService.findById(id);
46+
task = taskService.start(task,countedEntities);
47+
List<Tweet> twitterTweets = twitterApiService.getFavorites();
48+
int loopId = 0;
49+
int loopAll = twitterTweets.size();
50+
for (Tweet tweet: twitterTweets) {
51+
loopId++;
52+
Message<TweetMessage> mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
53+
tweets.add(mqMessageOut);
54+
}
55+
return tweets;
1656
}
1757
}
Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,57 @@
11
package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
22

3+
import org.springframework.beans.factory.annotation.Autowired;
34
import org.springframework.messaging.Message;
5+
import org.springframework.social.twitter.api.Tweet;
46
import org.springframework.stereotype.Component;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
9+
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
10+
import org.woehlke.twitterwall.oodm.service.TaskService;
11+
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
512
import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.HomeTimelineSplitter;
613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
714
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
15+
import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
816

17+
import java.util.ArrayList;
918
import java.util.List;
1019

1120
@Component("mqHomeTimelineSplitter")
1221
public class HomeTimelineSplitterImpl implements HomeTimelineSplitter {
1322

23+
private final TwitterApiService twitterApiService;
24+
25+
private final TaskService taskService;
26+
27+
private final CountedEntitiesService countedEntitiesService;
28+
29+
private final TwitterwallMessageBuilder twitterwallMessageBuilder;
30+
31+
@Autowired
32+
public HomeTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
33+
this.twitterApiService = twitterApiService;
34+
this.taskService = taskService;
35+
this.countedEntitiesService = countedEntitiesService;
36+
this.twitterwallMessageBuilder = twitterwallMessageBuilder;
37+
}
38+
1439
@Override
1540
public List<Message<TweetMessage>> splitTweetMessage(Message<TaskMessage> message) {
16-
return null;
41+
CountedEntities countedEntities = countedEntitiesService.countAll();
42+
List<Message<TweetMessage>> tweets = new ArrayList<>();
43+
TaskMessage msgIn = message.getPayload();
44+
long id = msgIn.getTaskId();
45+
Task task = taskService.findById(id);
46+
task = taskService.start(task,countedEntities);
47+
List<Tweet> twitterTweets = twitterApiService.getHomeTimeline();
48+
int loopId = 0;
49+
int loopAll = twitterTweets.size();
50+
for (Tweet tweet: twitterTweets) {
51+
loopId++;
52+
Message<TweetMessage> mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
53+
tweets.add(mqMessageOut);
54+
}
55+
return tweets;
1756
}
1857
}
Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,57 @@
11
package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
22

3+
import org.springframework.beans.factory.annotation.Autowired;
34
import org.springframework.messaging.Message;
5+
import org.springframework.social.twitter.api.Tweet;
46
import org.springframework.stereotype.Component;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
9+
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
10+
import org.woehlke.twitterwall.oodm.service.TaskService;
11+
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
512
import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.MentionsSplitter;
613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
714
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
15+
import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
816

17+
import java.util.ArrayList;
918
import java.util.List;
1019

1120
@Component("mqMentionsSplitter")
1221
public class MentionsSplitterImpl implements MentionsSplitter {
22+
23+
private final TwitterApiService twitterApiService;
24+
25+
private final TaskService taskService;
26+
27+
private final CountedEntitiesService countedEntitiesService;
28+
29+
private final TwitterwallMessageBuilder twitterwallMessageBuilder;
30+
31+
@Autowired
32+
public MentionsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
33+
this.twitterApiService = twitterApiService;
34+
this.taskService = taskService;
35+
this.countedEntitiesService = countedEntitiesService;
36+
this.twitterwallMessageBuilder = twitterwallMessageBuilder;
37+
}
38+
1339
@Override
1440
public List<Message<TweetMessage>> splitTweetMessage(Message<TaskMessage> message) {
15-
return null;
41+
CountedEntities countedEntities = countedEntitiesService.countAll();
42+
List<Message<TweetMessage>> tweets = new ArrayList<>();
43+
TaskMessage msgIn = message.getPayload();
44+
long id = msgIn.getTaskId();
45+
Task task = taskService.findById(id);
46+
task = taskService.start(task,countedEntities);
47+
List<Tweet> twitterTweets = twitterApiService.getMentions();
48+
int loopId = 0;
49+
int loopAll = twitterTweets.size();
50+
for (Tweet tweet: twitterTweets) {
51+
loopId++;
52+
Message<TweetMessage> mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
53+
tweets.add(mqMessageOut);
54+
}
55+
return tweets;
1656
}
1757
}
Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,58 @@
11
package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
22

3+
import org.springframework.beans.factory.annotation.Autowired;
34
import org.springframework.messaging.Message;
5+
import org.springframework.social.twitter.api.Tweet;
46
import org.springframework.stereotype.Component;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
9+
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
10+
import org.woehlke.twitterwall.oodm.service.TaskService;
11+
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
512
import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.RetweetsOfMeSplitter;
613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
714
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
15+
import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
816

17+
import java.util.ArrayList;
918
import java.util.List;
1019

1120
@Component("mqRetweetsOfMeSplitter")
1221
public class RetweetsOfMeSplitterImpl implements RetweetsOfMeSplitter {
1322

23+
private final TwitterApiService twitterApiService;
24+
25+
private final TaskService taskService;
26+
27+
private final CountedEntitiesService countedEntitiesService;
28+
29+
private final TwitterwallMessageBuilder twitterwallMessageBuilder;
30+
31+
@Autowired
32+
public RetweetsOfMeSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
33+
this.twitterApiService = twitterApiService;
34+
this.taskService = taskService;
35+
this.countedEntitiesService = countedEntitiesService;
36+
this.twitterwallMessageBuilder = twitterwallMessageBuilder;
37+
}
38+
39+
1440
@Override
1541
public List<Message<TweetMessage>> splitTweetMessage(Message<TaskMessage> message) {
16-
return null;
42+
CountedEntities countedEntities = countedEntitiesService.countAll();
43+
List<Message<TweetMessage>> tweets = new ArrayList<>();
44+
TaskMessage msgIn = message.getPayload();
45+
long id = msgIn.getTaskId();
46+
Task task = taskService.findById(id);
47+
task = taskService.start(task,countedEntities);
48+
List<Tweet> twitterTweets = twitterApiService.getRetweetsOfMe();
49+
int loopId = 0;
50+
int loopAll = twitterTweets.size();
51+
for (Tweet tweet: twitterTweets) {
52+
loopId++;
53+
Message<TweetMessage> mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
54+
tweets.add(mqMessageOut);
55+
}
56+
return tweets;
1757
}
1858
}
Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,58 @@
11
package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
22

3+
import org.springframework.beans.factory.annotation.Autowired;
34
import org.springframework.messaging.Message;
5+
import org.springframework.social.twitter.api.Tweet;
46
import org.springframework.stereotype.Component;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
9+
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
10+
import org.woehlke.twitterwall.oodm.service.TaskService;
11+
import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
512
import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.UserTimelineSplitter;
613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
714
import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
15+
import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
816

17+
import java.util.ArrayList;
918
import java.util.List;
1019

1120
@Component("mqUserTimelineSplitter")
1221
public class UserTimelineSplitterImpl implements UserTimelineSplitter {
1322

23+
24+
private final TwitterApiService twitterApiService;
25+
26+
private final TaskService taskService;
27+
28+
private final CountedEntitiesService countedEntitiesService;
29+
30+
private final TwitterwallMessageBuilder twitterwallMessageBuilder;
31+
32+
@Autowired
33+
public UserTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
34+
this.twitterApiService = twitterApiService;
35+
this.taskService = taskService;
36+
this.countedEntitiesService = countedEntitiesService;
37+
this.twitterwallMessageBuilder = twitterwallMessageBuilder;
38+
}
39+
1440
@Override
1541
public List<Message<TweetMessage>> splitTweetMessage(Message<TaskMessage> message) {
16-
return null;
42+
CountedEntities countedEntities = countedEntitiesService.countAll();
43+
List<Message<TweetMessage>> tweets = new ArrayList<>();
44+
TaskMessage msgIn = message.getPayload();
45+
long id = msgIn.getTaskId();
46+
Task task = taskService.findById(id);
47+
task = taskService.start(task,countedEntities);
48+
List<Tweet> twitterTweets = twitterApiService.getUserTimeline();
49+
int loopId = 0;
50+
int loopAll = twitterTweets.size();
51+
for (Tweet tweet: twitterTweets) {
52+
loopId++;
53+
Message<TweetMessage> mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
54+
tweets.add(mqMessageOut);
55+
}
56+
return tweets;
1757
}
1858
}

0 commit comments

Comments
 (0)