Skip to content

Commit 4512f8b

Browse files
working on #138
1 parent 88662b1 commit 4512f8b

23 files changed

+342
-47
lines changed

src/main/java/org/woehlke/twitterwall/conf/TwitterwallSchedulerProperties.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,8 @@ public static class Facade {
126126

127127
private List<Long> idTwitterToFetchForUserControllerTest = new ArrayList<Long>();
128128

129+
private List<String> screenNamesToFetchForUserControllerTest = new ArrayList<String>();
130+
129131
public List<Long> getIdTwitterToFetchForTweetTest() {
130132
return idTwitterToFetchForTweetTest;
131133
}
@@ -141,6 +143,14 @@ public List<Long> getIdTwitterToFetchForUserControllerTest() {
141143
public void setIdTwitterToFetchForUserControllerTest(List<Long> idTwitterToFetchForUserControllerTest) {
142144
this.idTwitterToFetchForUserControllerTest = idTwitterToFetchForUserControllerTest;
143145
}
146+
147+
public List<String> getScreenNamesToFetchForUserControllerTest() {
148+
return screenNamesToFetchForUserControllerTest;
149+
}
150+
151+
public void setScreenNamesToFetchForUserControllerTest(List<String> screenNamesToFetchForUserControllerTest) {
152+
this.screenNamesToFetchForUserControllerTest = screenNamesToFetchForUserControllerTest;
153+
}
144154
}
145155

146156
public Facade getFacade() {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint;
2+
3+
import org.springframework.messaging.Message;
4+
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
5+
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
6+
7+
public interface CreateImprintUser {
8+
9+
Message<TwitterProfileMessage> createImprintUser(Message<TaskMessage> mqMessage);
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint;
2+
3+
import org.springframework.messaging.Message;
4+
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
5+
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
6+
7+
import java.util.List;
8+
9+
public interface CreateTestDataForUsers {
10+
11+
List<TwitterProfileMessage> splitMessage(Message<TaskMessage> message);
12+
}
Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.woehlke.twitterwall.scheduled.mq.endoint;
22

33
import org.springframework.messaging.Message;
4-
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
54
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
65

76
public interface FetchDataFromRemoteTwitterApi {
@@ -11,6 +10,4 @@ public interface FetchDataFromRemoteTwitterApi {
1110
void fetchUsersFromDefinedUserList(Message<TaskMessage> mqMessage);
1211

1312
void createTestDataForUser(Message<TaskMessage> mqMessage);
14-
15-
Message<TwitterProfileMessage> createImprintUser(Message<TaskMessage> mqMessage);
1613
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint;
2+
3+
import org.springframework.messaging.Message;
4+
import org.woehlke.twitterwall.oodm.entities.User;
5+
import org.woehlke.twitterwall.scheduled.mq.msg.UserResultList;
6+
7+
import java.util.List;
8+
9+
public interface UserFinisher {
10+
11+
UserResultList finish(Message<List<User>> incomingMessageList);
12+
}

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/UserPersistor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66

77
public interface UserPersistor {
88

9-
User persistUser(Message<UserMessage> incomingUserMessage);
9+
UserMessage persistUser(Message<UserMessage> incomingUserMessage);
1010
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint.impl;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.integration.support.MessageBuilder;
5+
import org.springframework.messaging.Message;
6+
import org.springframework.social.twitter.api.TwitterProfile;
7+
import org.springframework.stereotype.Component;
8+
import org.woehlke.twitterwall.conf.TwitterwallFrontendProperties;
9+
import org.woehlke.twitterwall.scheduled.mq.endoint.CreateImprintUser;
10+
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
11+
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
12+
import org.woehlke.twitterwall.scheduled.service.backend.TwitterApiService;
13+
14+
@Component("mqCreateImprintUser")
15+
public class CreateImprintUserImpl implements CreateImprintUser {
16+
17+
private final TwitterApiService twitterApiService;
18+
19+
private final TwitterwallFrontendProperties twitterwallFrontendProperties;
20+
21+
@Autowired
22+
public CreateImprintUserImpl(TwitterApiService twitterApiService, TwitterwallFrontendProperties twitterwallFrontendProperties) {
23+
this.twitterApiService = twitterApiService;
24+
this.twitterwallFrontendProperties = twitterwallFrontendProperties;
25+
}
26+
27+
@Override
28+
public Message<TwitterProfileMessage> createImprintUser(Message<TaskMessage> mqMessageIn) {
29+
String logMsg = "createImprintUser: ";
30+
TaskMessage receivedMessage = mqMessageIn.getPayload();
31+
String screenName = twitterwallFrontendProperties.getImprintScreenName();
32+
TwitterProfile twitterProfile = twitterApiService.getUserProfileForScreenName(screenName);
33+
TwitterProfileMessage outMsg = new TwitterProfileMessage(receivedMessage,screenName,twitterProfile);
34+
Message<TwitterProfileMessage> mqMessageOut = MessageBuilder.withPayload(outMsg).copyHeaders(mqMessageIn.getHeaders())
35+
.setHeader("twitter_profile_id", twitterProfile.getId())
36+
.build();
37+
return mqMessageOut;
38+
}
39+
}
40+
41+

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/impl/CreateTestDataForTweetsImpl.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.woehlke.twitterwall.scheduled.mq.endoint.impl;
22

33
import org.springframework.beans.factory.annotation.Autowired;
4-
import org.springframework.integration.splitter.AbstractMessageSplitter;
54
import org.springframework.messaging.Message;
65
import org.springframework.social.twitter.api.Tweet;
76
import org.springframework.stereotype.Component;
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package org.woehlke.twitterwall.scheduled.mq.endoint.impl;
2+
3+
import org.springframework.messaging.Message;
4+
import org.springframework.social.twitter.api.TwitterProfile;
5+
import org.springframework.stereotype.Component;
6+
import org.woehlke.twitterwall.conf.TwitterwallSchedulerProperties;
7+
import org.woehlke.twitterwall.oodm.entities.Task;
8+
import org.woehlke.twitterwall.oodm.service.TaskService;
9+
import org.woehlke.twitterwall.scheduled.mq.endoint.CreateTestDataForUsers;
10+
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
11+
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
12+
import org.woehlke.twitterwall.scheduled.service.backend.TwitterApiService;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
17+
@Component("mqCreateTestDataForUsers")
18+
public class CreateTestDataForUsersImpl implements CreateTestDataForUsers {
19+
20+
private final TwitterwallSchedulerProperties twitterwallSchedulerProperties;
21+
22+
private final TwitterApiService twitterApiService;
23+
24+
private final TaskService taskService;
25+
26+
public CreateTestDataForUsersImpl(TwitterwallSchedulerProperties twitterwallSchedulerProperties, TwitterApiService twitterApiService, TaskService taskService) {
27+
this.twitterwallSchedulerProperties = twitterwallSchedulerProperties;
28+
this.twitterApiService = twitterApiService;
29+
this.taskService = taskService;
30+
}
31+
32+
@Override
33+
public List<TwitterProfileMessage> splitMessage(Message<TaskMessage> message) {
34+
List<TwitterProfileMessage> userProfileList = new ArrayList<>();
35+
TaskMessage msgIn = message.getPayload();
36+
long id = msgIn.getTaskId();
37+
Task task = taskService.findById(id);
38+
task = taskService.start(task);
39+
List<String> userIdList = twitterwallSchedulerProperties.getFacade().getScreenNamesToFetchForUserControllerTest();
40+
for (String screenName : userIdList) {
41+
TwitterProfile userProfile = twitterApiService.getUserProfileForScreenName(screenName);
42+
TwitterProfileMessage userMsg = new TwitterProfileMessage(msgIn,userProfile);
43+
userProfileList.add(userMsg);
44+
}
45+
return userProfileList;
46+
}
47+
}

src/main/java/org/woehlke/twitterwall/scheduled/mq/endoint/impl/FetchDataFromRemoteTwitterApiImpl.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,13 @@
33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
55
import org.springframework.beans.factory.annotation.Autowired;
6-
import org.springframework.integration.support.MessageBuilder;
76
import org.springframework.messaging.Message;
8-
import org.springframework.social.twitter.api.TwitterProfile;
97
import org.springframework.stereotype.Component;
108
import org.woehlke.twitterwall.conf.TwitterwallFrontendProperties;
119
import org.woehlke.twitterwall.oodm.entities.Task;
1210
import org.woehlke.twitterwall.oodm.service.TaskService;
1311
import org.woehlke.twitterwall.scheduled.service.backend.TwitterApiService;
1412
import org.woehlke.twitterwall.scheduled.mq.endoint.FetchDataFromRemoteTwitterApi;
15-
import org.woehlke.twitterwall.scheduled.mq.msg.TwitterProfileMessage;
1613
import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
1714

1815
@Component("mqFetchDataFromRemoteTwitterApi")
@@ -64,17 +61,4 @@ public void createTestDataForUser(Message<TaskMessage> mqMessage) {
6461
this.react(logMsg, mqMessage);
6562
}
6663

67-
@Override
68-
public Message<TwitterProfileMessage> createImprintUser(Message<TaskMessage> mqMessageIn) {
69-
String logMsg = "createImprintUser: ";
70-
TaskMessage receivedMessage = mqMessageIn.getPayload();
71-
String screenName = twitterwallFrontendProperties.getImprintScreenName();
72-
TwitterProfile twitterProfile = twitterApiService.getUserProfileForScreenName(screenName);
73-
TwitterProfileMessage outMsg = new TwitterProfileMessage(receivedMessage,screenName,twitterProfile);
74-
Message<TwitterProfileMessage> mqMessageOut = MessageBuilder.withPayload(outMsg).copyHeaders(mqMessageIn.getHeaders())
75-
.setHeader("twitter_profile_id", twitterProfile.getId())
76-
.build();
77-
return mqMessageOut;
78-
}
79-
8064
}

0 commit comments

Comments
 (0)