diff --git a/LICENSE b/LICENSE
new file mode 100644
index 00000000..37ec93a1
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,191 @@
+Apache License
+Version 2.0, January 2004
+http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+"License" shall mean the terms and conditions for use, reproduction, and
+distribution as defined by Sections 1 through 9 of this document.
+
+"Licensor" shall mean the copyright owner or entity authorized by the copyright
+owner that is granting the License.
+
+"Legal Entity" shall mean the union of the acting entity and all other entities
+that control, are controlled by, or are under common control with that entity.
+For the purposes of this definition, "control" means (i) the power, direct or
+indirect, to cause the direction or management of such entity, whether by
+contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the
+outstanding shares, or (iii) beneficial ownership of such entity.
+
+"You" (or "Your") shall mean an individual or Legal Entity exercising
+permissions granted by this License.
+
+"Source" form shall mean the preferred form for making modifications, including
+but not limited to software source code, documentation source, and configuration
+files.
+
+"Object" form shall mean any form resulting from mechanical transformation or
+translation of a Source form, including but not limited to compiled object code,
+generated documentation, and conversions to other media types.
+
+"Work" shall mean the work of authorship, whether in Source or Object form, made
+available under the License, as indicated by a copyright notice that is included
+in or attached to the work (an example is provided in the Appendix below).
+
+"Derivative Works" shall mean any work, whether in Source or Object form, that
+is based on (or derived from) the Work and for which the editorial revisions,
+annotations, elaborations, or other modifications represent, as a whole, an
+original work of authorship. For the purposes of this License, Derivative Works
+shall not include works that remain separable from, or merely link (or bind by
+name) to the interfaces of, the Work and Derivative Works thereof.
+
+"Contribution" shall mean any work of authorship, including the original version
+of the Work and any modifications or additions to that Work or Derivative Works
+thereof, that is intentionally submitted to Licensor for inclusion in the Work
+by the copyright owner or by an individual or Legal Entity authorized to submit
+on behalf of the copyright owner. For the purposes of this definition,
+"submitted" means any form of electronic, verbal, or written communication sent
+to the Licensor or its representatives, including but not limited to
+communication on electronic mailing lists, source code control systems, and
+issue tracking systems that are managed by, or on behalf of, the Licensor for
+the purpose of discussing and improving the Work, but excluding communication
+that is conspicuously marked or otherwise designated in writing by the copyright
+owner as "Not a Contribution."
+
+"Contributor" shall mean Licensor and any individual or Legal Entity on behalf
+of whom a Contribution has been received by Licensor and subsequently
+incorporated within the Work.
+
+2. Grant of Copyright License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable copyright license to reproduce, prepare Derivative Works of,
+publicly display, publicly perform, sublicense, and distribute the Work and such
+Derivative Works in Source or Object form.
+
+3. Grant of Patent License.
+
+Subject to the terms and conditions of this License, each Contributor hereby
+grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free,
+irrevocable (except as stated in this section) patent license to make, have
+made, use, offer to sell, sell, import, and otherwise transfer the Work, where
+such license applies only to those patent claims licensable by such Contributor
+that are necessarily infringed by their Contribution(s) alone or by combination
+of their Contribution(s) with the Work to which such Contribution(s) was
+submitted. If You institute patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Work or a
+Contribution incorporated within the Work constitutes direct or contributory
+patent infringement, then any patent licenses granted to You under this License
+for that Work shall terminate as of the date such litigation is filed.
+
+4. Redistribution.
+
+You may reproduce and distribute copies of the Work or Derivative Works thereof
+in any medium, with or without modifications, and in Source or Object form,
+provided that You meet the following conditions:
+
+You must give any other recipients of the Work or Derivative Works a copy of
+this License; and
+You must cause any modified files to carry prominent notices stating that You
+changed the files; and
+You must retain, in the Source form of any Derivative Works that You distribute,
+all copyright, patent, trademark, and attribution notices from the Source form
+of the Work, excluding those notices that do not pertain to any part of the
+Derivative Works; and
+If the Work includes a "NOTICE" text file as part of its distribution, then any
+Derivative Works that You distribute must include a readable copy of the
+attribution notices contained within such NOTICE file, excluding those notices
+that do not pertain to any part of the Derivative Works, in at least one of the
+following places: within a NOTICE text file distributed as part of the
+Derivative Works; within the Source form or documentation, if provided along
+with the Derivative Works; or, within a display generated by the Derivative
+Works, if and wherever such third-party notices normally appear. The contents of
+the NOTICE file are for informational purposes only and do not modify the
+License. You may add Your own attribution notices within Derivative Works that
+You distribute, alongside or as an addendum to the NOTICE text from the Work,
+provided that such additional attribution notices cannot be construed as
+modifying the License.
+You may add Your own copyright statement to Your modifications and may provide
+additional or different license terms and conditions for use, reproduction, or
+distribution of Your modifications, or for any such Derivative Works as a whole,
+provided Your use, reproduction, and distribution of the Work otherwise complies
+with the conditions stated in this License.
+
+5. Submission of Contributions.
+
+Unless You explicitly state otherwise, any Contribution intentionally submitted
+for inclusion in the Work by You to the Licensor shall be under the terms and
+conditions of this License, without any additional terms or conditions.
+Notwithstanding the above, nothing herein shall supersede or modify the terms of
+any separate license agreement you may have executed with Licensor regarding
+such Contributions.
+
+6. Trademarks.
+
+This License does not grant permission to use the trade names, trademarks,
+service marks, or product names of the Licensor, except as required for
+reasonable and customary use in describing the origin of the Work and
+reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty.
+
+Unless required by applicable law or agreed to in writing, Licensor provides the
+Work (and each Contributor provides its Contributions) on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied,
+including, without limitation, any warranties or conditions of TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are
+solely responsible for determining the appropriateness of using or
+redistributing the Work and assume any risks associated with Your exercise of
+permissions under this License.
+
+8. Limitation of Liability.
+
+In no event and under no legal theory, whether in tort (including negligence),
+contract, or otherwise, unless required by applicable law (such as deliberate
+and grossly negligent acts) or agreed to in writing, shall any Contributor be
+liable to You for damages, including any direct, indirect, special, incidental,
+or consequential damages of any character arising as a result of this License or
+out of the use or inability to use the Work (including but not limited to
+damages for loss of goodwill, work stoppage, computer failure or malfunction, or
+any and all other commercial damages or losses), even if such Contributor has
+been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability.
+
+While redistributing the Work or Derivative Works thereof, You may choose to
+offer, and charge a fee for, acceptance of support, warranty, indemnity, or
+other liability obligations and/or rights consistent with this License. However,
+in accepting such obligations, You may act only on Your own behalf and on Your
+sole responsibility, not on behalf of any other Contributor, and only if You
+agree to indemnify, defend, and hold each Contributor harmless for any liability
+incurred by, or claims asserted against, such Contributor by reason of your
+accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work
+
+To apply the Apache License to your work, attach the following boilerplate
+notice, with the fields enclosed by brackets "[]" replaced with your own
+identifying information. (Don't include the brackets!) The text should be
+enclosed in the appropriate comment syntax for the file format. We also
+recommend that a file or class name and description of purpose be included on
+the same "printed page" as the copyright notice for easier identification within
+third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed 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.
diff --git a/LICENSE.code.txt b/LICENSE.code.txt
index 001e9fe9..ba7fc31f 100644
--- a/LICENSE.code.txt
+++ b/LICENSE.code.txt
@@ -1,12 +1,10 @@
- All code in this repository is:
- =======================================================================
- Copyright (c) 2013 Thomas Woehlke All Rights Reserved
+ Copyright 2017 Thomas Woehlke
Licensed 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
+ 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,
diff --git a/README.md b/README.md
index b964687b..72b11b35 100644
--- a/README.md
+++ b/README.md
@@ -1,29 +1,34 @@
-# [Twitterwall2]( https://github.com/phasenraum2010/twitterwall2 )
+# [Twitterwall2](https://github.com/phasenraum2010/twitterwall2)
-+ Twitterwall with [spring:boot]( https://projects.spring.io/spring-boot/ ) for [heroku]( https://heroku.com )
-+ More Info: https://phasenraum2010.github.io/twitterwall2/
++ Twitterwall with [spring:boot](https://projects.spring.io/spring-boot/) for [heroku](https://heroku.com)
++ More Info: [https://phasenraum2010.github.io/twitterwall2/](https://phasenraum2010.github.io/twitterwall2/)
## Development
-### Repository:
-- Get Source Code: git clone https://github.com/phasenraum2010/twitterwall2.git
-- Project: https://github.com/phasenraum2010/twitterwall2/projects/1
-- Issues: https://github.com/phasenraum2010/twitterwall2/issues
+### Repository
+- Get Source Code: git clone [https://github.com/phasenraum2010/twitterwall2.git](https://github.com/phasenraum2010/twitterwall2.git)
+- Project: [https://github.com/phasenraum2010/twitterwall2/projects/1](https://github.com/phasenraum2010/twitterwall2/projects/1)
+- Issues: [https://github.com/phasenraum2010/twitterwall2/issues](https://github.com/phasenraum2010/twitterwall2/issues)
### heroku CLI
- heroku login
- heroku pg:psql --app {app-name}
- heroku logs -t --app {app-name}
+- more:
+ - [https://devcenter.heroku.com/categories/command-line](https://devcenter.heroku.com/categories/command-line)
+ - [https://devcenter.heroku.com/articles/heroku-cli](https://devcenter.heroku.com/articles/heroku-cli)
-### Setup Testing on Localhost
-- Get Credentials from your Twitter-Account: [Refer to "Manage your Apps" on Twitter's dev pages](https://dev.twitter.com/apps)
-- Edit your .profile with the Credentials from your Twitter-Account
+
+### Setup Test and Development on Localhost
+- **Get Credentials from your Twitter-Account:**
+ - [Refer to "Manage your Apps" on Twitter's dev pages](https://dev.twitter.com/apps)
+- **Edit your .profile with the Credentials from your Twitter-Account**
- export DATABASE_URL=jdbc:postgresql://localhost:5432/postgres?user=postgres
- export TWITTER_CONSUMER_KEY={Credentials from your Twitter-Account}
- export TWITTER_CONSUMER_SECRET={Credentials from your Twitter-Account}
- export TWITTER_ACCESS_TOKEN={Credentials from your Twitter-Account}
- export TWITTER_ACCESS_TOKEN_SECRET={Credentials from your Twitter-Account}
-- Edit app behaviour
+- **Edit app behaviour**
- export TWITTERWALL_SHOW_USERS_MENU=true
- export TWITTERWALL_CONTEXT_TEST=true
- export TWITTER_PAGE_SIZE=500
@@ -36,7 +41,7 @@
- export TWITTERWALL_SCHEDULER_ALLOW_SEARCH=true
- export TWITTERWALL_SCHEDULER_HEROKU_DB_LIMIT=false
- export TWITTERWALL_SCHEDULER_USER_LIST_ALLOW=true
-- Edit Use Case
+- **Edit Tasks / Use Cases**
- export TWITTER_SEARCH_TERM=#hibernate OR #java OR #TYPO3
- export TWITTERWALL_INFO_WEBPAGE=https://github.com/phasenraum2010/twitterwall2
- export TWITTERWALL_THEME=typo3
@@ -47,7 +52,7 @@
- export TWITTERWALL_LOGIN_USERNAME=admin
- export TWITTERWALL_LOGIN_PASSWORD=password
-- run with: mvn clean spring-boot:run
+- run with: **mvn clean spring-boot:run**
## Contribute
@@ -60,7 +65,7 @@ updates.
Contribute your fixes and new features back to the main codebase using
[GitHub pull requests][github-pull-req].
-[twitterwall-github]: http://github.com/andriusvelykis/reflow-maven-skin/
+[twitterwall-github]: https://github.com/phasenraum2010/twitterwall2/
[github-pull-req]: http://help.github.com/articles/using-pull-requests
### Issues (bug and feature tracker)
@@ -84,12 +89,12 @@ If you _really really_ like it and want to support the author, I will be glad to
[av-site]: https://twitter.com/ThomasWoehlke
[donate]: https://www.paypal.me/ThomasWoehlke
-### Author:
+### Author
**Thomas Wöhlke**
-+ Twitter: https://twitter.com/ThomasWoehlke
-+ Github: https://github.com/phasenraum2010
-+ Blog: https://thomas-woehlke.blogspot.de
++ Twitter: [https://twitter.com/ThomasWoehlke](https://twitter.com/ThomasWoehlke)
++ Github: [https://github.com/phasenraum2010](https://github.com/phasenraum2010)
++ Blog: [https://thomas-woehlke.blogspot.de](https://thomas-woehlke.blogspot.de)
### Acknowledgements
@@ -98,15 +103,21 @@ If you _really really_ like it and want to support the author, I will be glad to
+ JavaScript goodies with [jQuery][jquery].
+ More icons by [fontawesome][fontawesome].
+ Twitterwall Backend is made with [Java][java] and [Spring-Boot][spring-boot].
++ Spring Frameworks used: [MQ][spring-integration], [JPA][spring-data-jpa], [Security][spring-security] and [Twitter][spring-social-twitter]
+ Database [PostgreSQL][postgresql] and jdbc by [PostgreSQL-JDBC][postgresql-jdbc].
-+ Running on Cloud-Service [Heroku][heroku].
++ Running on Cloud-Service [Heroku][heroku] with [Heroku PostegreSQL][postgresql-heroku].
[java]: http://www.oracle.com/technetwork/java/javase/downloads/index.html
[fontawesome]: http://fontawesome.io/icons/
[postgresql-jdbc]: https://jdbc.postgresql.org/
[postgresql]: https://www.postgresql.org/
-[heroku]: https://heroku.com
+[heroku]: https://heroku.com/
+[postgresql-heroku]: https://devcenter.heroku.com/categories/heroku-postgres/
[spring-boot]: https://projects.spring.io/spring-boot/
+[spring-integration]: http://projects.spring.io/spring-integration/
+[spring-data-jpa]: http://projects.spring.io/spring-data-jpa/
+[spring-security]: http://projects.spring.io/spring-security/
+[spring-social-twitter]: http://projects.spring.io/spring-social-twitter/
[bootstrap]: http://getbootstrap.com/
[glyphicons]: http://glyphicons.com/
[webfonts]: http://www.google.com/webfonts/
@@ -116,9 +127,12 @@ If you _really really_ like it and want to support the author, I will be glad to
© 2017 Thomas Wöhlke
-Licensed under the Apache License, Version 2.0
+Licensed under the **Apache License, Version 2.0**
+
+[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
-http://www.apache.org/licenses/LICENSE-2.0
+Except where otherwise noted, Documentation of this work is licensed under
+[Creative Commons CC BY-ND 3.0](http://creativecommons.org/licenses/by-nd/3.0/)
diff --git a/_config.yml b/_config.yml
index f980e760..14950b89 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1 +1,5 @@
theme: jekyll-theme-slate
+title: Twitterwall2
+description: Twitterwall with spring:boot for heroku using spring-integration for MQ and spring-data-jpa for PostgreSQL
+google_analytics: UA-17174370-7
+
diff --git a/pom.xml b/pom.xml
index 49e798b2..f4fac168 100644
--- a/pom.xml
+++ b/pom.xml
@@ -541,9 +541,6 @@
org.apache.maven.plugins
maven-checkstyle-plugin
2.17
-
- ${project.build.sourceEncoding}
-
@@ -584,9 +581,6 @@
org.codehaus.mojo
taglist-maven-plugin
2.4
-
- ${project.build.sourceEncoding}
-
@@ -605,31 +599,12 @@
-
- org.apache.maven.plugins
- maven-surefire-report-plugin
- 2.20
-
-
org.codehaus.mojo
cobertura-maven-plugin
2.7
-
- org.apache.maven.plugins
- maven-changes-plugin
- 2.12.1
-
-
-
- github-report
-
-
-
-
-
diff --git a/src/main/java/org/woehlke/twitterwall/Application.java b/src/main/java/org/woehlke/twitterwall/Application.java
index 2d0a9c8a..8d75a388 100644
--- a/src/main/java/org/woehlke/twitterwall/Application.java
+++ b/src/main/java/org/woehlke/twitterwall/Application.java
@@ -7,7 +7,7 @@
import org.springframework.context.annotation.ImportResource;
import org.springframework.data.web.config.EnableSpringDataWebSupport;
import org.springframework.scheduling.annotation.EnableScheduling;
-import org.woehlke.twitterwall.conf.properties.*;
+import org.woehlke.twitterwall.configuration.properties.*;
/**
diff --git a/src/main/java/org/woehlke/twitterwall/ScheduledTasks.java b/src/main/java/org/woehlke/twitterwall/CronJobs.java
similarity index 70%
rename from src/main/java/org/woehlke/twitterwall/ScheduledTasks.java
rename to src/main/java/org/woehlke/twitterwall/CronJobs.java
index 4e508b06..e0ec4c4d 100644
--- a/src/main/java/org/woehlke/twitterwall/ScheduledTasks.java
+++ b/src/main/java/org/woehlke/twitterwall/CronJobs.java
@@ -3,23 +3,24 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.SchedulerProperties;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.AsyncStartTask;
+import org.woehlke.twitterwall.configuration.properties.SchedulerProperties;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskStartFireAndForget;
/**
* Created by tw on 10.06.17.
*/
@Component
-public class ScheduledTasks {
+public class CronJobs {
@Scheduled(initialDelay= TEN_SECONDS, fixedRate = ONE_DAY)
public void createImprintUserAsync(){
String msg = "create Imprint User (Async) ";
if(!schedulerProperties.getSkipFortesting()) {
- Task task = asyncStartTask.createImprintUserAsync();
+ Task task = mqTaskStartFireAndForget.createImprintUserAsync();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -28,7 +29,7 @@ public void createImprintUserAsync(){
public void fetchTweetsFromTwitterSearch() {
String msg = "fetch Tweets From TwitterSearch ";
if((schedulerProperties.getAllowFetchTweetsFromTwitterSearch()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.fetchTweetsFromSearch();
+ Task task = mqTaskStartFireAndForget.fetchTweetsFromSearch();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -37,7 +38,7 @@ public void fetchTweetsFromTwitterSearch() {
public void fetchUsersFromDefinedUserList(){
String msg = "fetch Users from Defined User List ";
if((schedulerProperties.getFetchUsersFromDefinedUserListAllow()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.fetchUsersFromList();
+ Task task = mqTaskStartFireAndForget.fetchUsersFromList();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -46,7 +47,7 @@ public void fetchUsersFromDefinedUserList(){
public void getHomeTimeline() {
String msg = "get Home Timeline Tweets ";
if((schedulerProperties.getAllowGetHomeTimeline()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getHomeTimeline();
+ Task task = mqTaskStartFireAndForget.getHomeTimeline();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -55,7 +56,7 @@ public void getHomeTimeline() {
public void getUserTimeline() {
String msg = " get User Timeline Tweets ";
if((schedulerProperties.getAllowGetUserTimeline()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getUserTimeline();
+ Task task = mqTaskStartFireAndForget.getUserTimeline();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -64,7 +65,7 @@ public void getUserTimeline() {
public void getMentions() {
String msg = " get Mentions ";
if((schedulerProperties.getAllowGetMentions()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getMentions();
+ Task task = mqTaskStartFireAndForget.getMentions();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -73,7 +74,7 @@ public void getMentions() {
public void getFavorites() {
String msg = " get Favorites ";
if((schedulerProperties.getAllowGetFavorites()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getFavorites();
+ Task task = mqTaskStartFireAndForget.getFavorites();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -82,7 +83,7 @@ public void getFavorites() {
public void getRetweetsOfMe() {
String msg = " get Retweets Of Me ";
if((schedulerProperties.getAllowGetRetweetsOfMe()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getRetweetsOfMe();
+ Task task = mqTaskStartFireAndForget.getRetweetsOfMe();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -91,7 +92,9 @@ public void getRetweetsOfMe() {
public void getLists() {
String msg = " get Lists ";
if((schedulerProperties.getAllowGetLists()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.getLists();
+ Task task = mqTaskStartFireAndForget.getLists();
+ log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
+ task = mqTaskStartFireAndForget.fetchUserlistOwners();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -100,7 +103,7 @@ public void getLists() {
public void fetchFollower(){
String msg = "fetch Follower ";
if((schedulerProperties.getFetchFollowerAllow()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.fetchFollower();
+ Task task = mqTaskStartFireAndForget.fetchFollower();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -109,7 +112,7 @@ public void fetchFollower(){
public void fetchFriends(){
String msg = "fetch Friends ";
if((schedulerProperties.getFetchFriendsAllow()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.fetchFriends();
+ Task task = mqTaskStartFireAndForget.fetchFriends();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -118,7 +121,7 @@ public void fetchFriends(){
public void removeOldDataFromStorage(){
String msg = "remove Old Data From Storage: ";
if((schedulerProperties.getRemoveOldDataFromStorageAllow()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.removeOldDataFromStorage();
+ Task task = mqTaskStartFireAndForget.removeOldDataFromStorage();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -127,7 +130,7 @@ public void removeOldDataFromStorage(){
public void updateUserProfilesFromMentions(){
String msg = "update User Profiles From Mentions";
if((schedulerProperties.getAllowUpdateUserProfilesFromMention()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.updateUsersFromMentions();
+ Task task = mqTaskStartFireAndForget.updateUsersFromMentions();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -136,7 +139,7 @@ public void updateUserProfilesFromMentions(){
public void updateTweets() {
String msg = "update Tweets ";
if((schedulerProperties.getAllowUpdateTweets()) && (!schedulerProperties.getSkipFortesting())){
- Task task = asyncStartTask.updateTweets();
+ Task task = mqTaskStartFireAndForget.updateTweets();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
@@ -145,15 +148,37 @@ public void updateTweets() {
public void updateUserProfiles() {
String msg = "update User Profiles ";
if((schedulerProperties.getAllowUpdateUserProfiles()) && (!schedulerProperties.getSkipFortesting())) {
- Task task = asyncStartTask.updateUsers();
+ Task task = mqTaskStartFireAndForget.updateUsers();
+ log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
+ }
+ }
+
+ @Scheduled(initialDelay= TEN_SECONDS * 16, fixedRate = ONE_DAY)
+ public void startUpdateUrls(){
+ String msg = "start UpdateUrls ";
+ if(!schedulerProperties.getSkipFortesting()) {
+ Task task = mqTaskStartFireAndForget.startUpdateUrls();
log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
}
}
+ @Scheduled(initialDelay= TEN_SECONDS * 16, fixedRate = ONE_DAY)
+ public void startGarbageCollection(){
+ String msg = "start UpdateUrls ";
+ if(!schedulerProperties.getSkipFortesting()) {
+ //TODO:
+ //Task task = mqTaskStartFireAndForget.startGarbageCollection();
+ //log.info(msg+ "SCHEDULED: task "+task.getUniqueId());
+ }
+ }
+
@Autowired
- public ScheduledTasks(SchedulerProperties schedulerProperties, AsyncStartTask mqAsyncStartTask) {
+ public CronJobs(
+ SchedulerProperties schedulerProperties,
+ @Qualifier("mqTaskStartFireAndForget") TaskStartFireAndForget mqTaskStartFireAndForget
+ ) {
this.schedulerProperties = schedulerProperties;
- this.asyncStartTask = mqAsyncStartTask;
+ this.mqTaskStartFireAndForget = mqTaskStartFireAndForget;
}
public final static long TEN_SECONDS = 10 * 1000;
@@ -168,9 +193,9 @@ public ScheduledTasks(SchedulerProperties schedulerProperties, AsyncStartTask mq
public final static long ONE_DAY = 24 * ONE_HOUR;
- private static final Logger log = LoggerFactory.getLogger(ScheduledTasks.class);
+ private static final Logger log = LoggerFactory.getLogger(CronJobs.class);
private final SchedulerProperties schedulerProperties;
- private final AsyncStartTask asyncStartTask;
+ private final TaskStartFireAndForget mqTaskStartFireAndForget;
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/common/MentionSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/common/MentionSplitter.java
new file mode 100644
index 00000000..ea56ddad
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/common/MentionSplitter.java
@@ -0,0 +1,12 @@
+package org.woehlke.twitterwall.backend.mq.common;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+import java.util.List;
+
+public interface MentionSplitter {
+
+ List> splitUserMessage(Message incomingTaskMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/TweetsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/common/TweetsSplitter.java
similarity index 50%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/TweetsSplitter.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/common/TweetsSplitter.java
index c093a116..fae0d0eb 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/TweetsSplitter.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/common/TweetsSplitter.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.common;
+package org.woehlke.twitterwall.backend.mq.common;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/common/UrlSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UrlSplitter.java
new file mode 100644
index 00000000..6b341b81
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UrlSplitter.java
@@ -0,0 +1,12 @@
+package org.woehlke.twitterwall.backend.mq.common;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+
+import java.util.List;
+
+public interface UrlSplitter {
+
+ List> splitUrlMessage(Message incomingTaskMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserListsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UserListsSplitter.java
similarity index 52%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserListsSplitter.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/common/UserListsSplitter.java
index 3389b0b1..71292380 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserListsSplitter.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UserListsSplitter.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.common;
+package org.woehlke.twitterwall.backend.mq.common;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UserSplitter.java
similarity index 51%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserSplitter.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/common/UserSplitter.java
index 3b758817..26d7bd6b 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/common/UserSplitter.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/common/UserSplitter.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.common;
+package org.woehlke.twitterwall.backend.mq.common;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/MentionFinisher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/MentionFinisher.java
new file mode 100644
index 00000000..adeefe5e
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/MentionFinisher.java
@@ -0,0 +1,14 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionResultList;
+
+import java.util.List;
+
+public interface MentionFinisher {
+
+ Message finish(Message> incomingMessageList);
+
+ void finishAsnyc(Message> incomingMessageList);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UpdateMentionWithUser.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UpdateMentionWithUser.java
new file mode 100644
index 00000000..f8ffb5c5
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UpdateMentionWithUser.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+
+public interface UpdateMentionWithUser {
+
+ Message updateMentionWithUser(Message incomingMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionLoader.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionLoader.java
new file mode 100644
index 00000000..9081e413
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionLoader.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+
+public interface UserforMentionLoader {
+
+ Message fetchUserforMentionfromTwitter(Message incomingMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionPersistor.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionPersistor.java
new file mode 100644
index 00000000..c07fb6ed
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionPersistor.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+
+public interface UserforMentionPersistor {
+
+ Message persistUserforMention(Message incomingMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionTransformator.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionTransformator.java
new file mode 100644
index 00000000..871706f3
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/UserforMentionTransformator.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+
+public interface UserforMentionTransformator {
+
+ Message transformUserforMention(Message incomingMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/MentionFinisherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/MentionFinisherImpl.java
new file mode 100644
index 00000000..e36169f0
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/MentionFinisherImpl.java
@@ -0,0 +1,73 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.impl;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.MentionFinisher;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl.UserFinisherImpl;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionResultList;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("mqMentionFinisher")
+public class MentionFinisherImpl implements MentionFinisher {
+
+ @Autowired
+ public MentionFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService, MentionMessageBuilder mentionMessageBuilder) {
+ this.taskService = taskService;
+ this.countedEntitiesService = countedEntitiesService;
+ this.mentionMessageBuilder = mentionMessageBuilder;
+ }
+
+ @Override
+ public Message finish(Message> incomingMessageList) {
+ long taskId = 0L;
+ List mentionIds = new ArrayList<>();
+ List mentionMessageList = incomingMessageList.getPayload();
+ for(MentionMessage msg :mentionMessageList){
+ taskId = msg.getTaskMessage().getTaskId();
+ if(!msg.isIgnoreNextSteps()){
+ mentionIds.add(msg.getMentionId());
+ }
+ }
+ MentionResultList userResultList = new MentionResultList(taskId,mentionIds);
+ Message mqMessageOut = MessageBuilder.withPayload(userResultList)
+ .copyHeaders(incomingMessageList.getHeaders())
+ .setHeader("fnished",Boolean.TRUE)
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public void finishAsnyc(Message> incomingMessageList) {
+ List userMessageList = incomingMessageList.getPayload();
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ long taskId=0L;
+ for(MentionMessage msg :userMessageList){
+ taskId = msg.getTaskMessage().getTaskId();
+ break;
+ }
+ Task task = taskService.findById(taskId);
+ String msgDone = "Sucessfully finished task "+task.getTaskType()+" via MQ by FIRE_AND_FORGET_SENDER";
+ taskService.done(msgDone,task,countedEntities);
+ log.info(msgDone);
+ }
+
+ private final TaskService taskService;
+
+ private final CountedEntitiesService countedEntitiesService;
+
+ private final MentionMessageBuilder mentionMessageBuilder;
+
+ private static final Logger log = LoggerFactory.getLogger(UserFinisherImpl.class);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UpdateMentionWithUserImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UpdateMentionWithUserImpl.java
new file mode 100644
index 00000000..02cac49b
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UpdateMentionWithUserImpl.java
@@ -0,0 +1,52 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Mention;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.service.MentionService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.UpdateMentionWithUser;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+
+@Component("mqUpdateMentionWithUser")
+public class UpdateMentionWithUserImpl implements UpdateMentionWithUser {
+
+ @Override
+ public Message updateMentionWithUser(Message incomingMessage) {
+ MentionMessage receivedMessage = incomingMessage.getPayload();
+ if(receivedMessage.isIgnoreNextSteps()) {
+ return mentionMessageBuilder.buildMentionMessage(incomingMessage);
+ } else {
+ long taskId = receivedMessage.getTaskMessage().getTaskId();
+ Task task = taskService.findById(taskId);
+ User user = receivedMessage.getUser();
+ long idTwitterOfUser = user.getIdTwitter();
+ long idOfUser = user.getId();
+ long mentionId = receivedMessage.getMentionId();
+ Mention mention = mentionService.findById(mentionId);
+ mention.setIdOfUser(idOfUser);
+ mention.setIdTwitterOfUser(idTwitterOfUser);
+ mention = mentionService.store(mention,task);
+ Message mqMessageOut = mentionMessageBuilder.buildMentionMessage(incomingMessage,mention);
+ return mqMessageOut;
+ }
+ }
+
+ private final TaskService taskService;
+
+ private final MentionService mentionService;
+
+ private final MentionMessageBuilder mentionMessageBuilder;
+
+ @Autowired
+ public UpdateMentionWithUserImpl(TaskService taskService, MentionService mentionService, MentionMessageBuilder mentionMessageBuilder) {
+ this.taskService = taskService;
+ this.mentionService = mentionService;
+ this.mentionMessageBuilder = mentionMessageBuilder;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionLoaderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionLoaderImpl.java
new file mode 100644
index 00000000..34cd3bfa
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionLoaderImpl.java
@@ -0,0 +1,33 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.TwitterProfile;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.UserforMentionLoader;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
+
+@Component("mqUserforMentionLoader")
+public class UserforMentionLoaderImpl implements UserforMentionLoader {
+
+ @Override
+ public Message fetchUserforMentionfromTwitter(Message incomingMessage) {
+ MentionMessage receivedMessage = incomingMessage.getPayload();
+ String screenName = receivedMessage.getScreenName();
+ TwitterProfile userFromTwitter = twitterApiService.getUserProfileForScreenName(screenName);
+ Message outMessage = mentionMessageBuilder.buildMentionMessage(incomingMessage,userFromTwitter);
+ return outMessage;
+ }
+
+ private final TwitterApiService twitterApiService;
+
+ private final MentionMessageBuilder mentionMessageBuilder;
+
+ @Autowired
+ public UserforMentionLoaderImpl(TwitterApiService twitterApiService, MentionMessageBuilder mentionMessageBuilder) {
+ this.twitterApiService = twitterApiService;
+ this.mentionMessageBuilder = mentionMessageBuilder;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionPersistorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionPersistorImpl.java
new file mode 100644
index 00000000..9b5a1d50
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionPersistorImpl.java
@@ -0,0 +1,45 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.UserforMentionPersistor;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.service.persist.StoreUserProcess;
+
+@Component("mqUserforMentionPersistor")
+public class UserforMentionPersistorImpl implements UserforMentionPersistor {
+
+ @Override
+ public Message persistUserforMention(Message incomingMessage) {
+ MentionMessage receivedMessage = incomingMessage.getPayload();
+ if(receivedMessage.isIgnoreNextSteps()) {
+ return mentionMessageBuilder.buildMentionMessage(incomingMessage);
+ } else {
+ long taskId = receivedMessage.getTaskMessage().getTaskId();
+ Task task = taskService.findById(taskId);
+ User user = receivedMessage.getUser();
+ User userPers = storeUserProcess.storeUserProcess(user, task);
+ Message mqMessageOut = mentionMessageBuilder.buildMentionMessage(incomingMessage,userPers);
+ return mqMessageOut;
+ }
+ }
+
+ private final TaskService taskService;
+
+ private final StoreUserProcess storeUserProcess;
+
+ private final MentionMessageBuilder mentionMessageBuilder;
+
+ @Autowired
+ public UserforMentionPersistorImpl(TaskService taskService, StoreUserProcess storeUserProcess, MentionMessageBuilder mentionMessageBuilder) {
+ this.taskService = taskService;
+ this.storeUserProcess = storeUserProcess;
+ this.mentionMessageBuilder = mentionMessageBuilder;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionTransformatorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionTransformatorImpl.java
new file mode 100644
index 00000000..17691908
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/serviceactivator/impl/UserforMentionTransformatorImpl.java
@@ -0,0 +1,44 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.serviceactivator.UserforMentionTransformator;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.service.transform.UserTransformService;
+
+@Component("mqUserforMentionTransformator")
+public class UserforMentionTransformatorImpl implements UserforMentionTransformator {
+
+ @Override
+ public Message transformUserforMention(Message incomingMessage) {
+ MentionMessage receivedMessage = incomingMessage.getPayload();
+ if(receivedMessage.isIgnoreNextSteps()){
+ Message mqMessageOut = mentionMessageBuilder.buildMentionMessage(incomingMessage);
+ return mqMessageOut;
+ } else {
+ long id = receivedMessage.getTaskMessage().getTaskId();
+ Task task = taskService.findById(id);
+ User user = userTransformService.transform(receivedMessage.getTwitterProfile(),task);
+ Message mqMessageOut = mentionMessageBuilder.buildMentionMessage(incomingMessage,user);
+ return mqMessageOut;
+ }
+ }
+
+ private final UserTransformService userTransformService;
+
+ private final TaskService taskService;
+
+ private final MentionMessageBuilder mentionMessageBuilder;
+
+ @Autowired
+ public UserforMentionTransformatorImpl(UserTransformService userTransformService, TaskService taskService, MentionMessageBuilder mentionMessageBuilder) {
+ this.userTransformService = userTransformService;
+ this.taskService = taskService;
+ this.mentionMessageBuilder = mentionMessageBuilder;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/UpdateUsersFromMentionsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/UpdateUsersFromMentionsSplitter.java
new file mode 100644
index 00000000..10158b39
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/UpdateUsersFromMentionsSplitter.java
@@ -0,0 +1,8 @@
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.splitter;
+
+
+import org.woehlke.twitterwall.backend.mq.common.MentionSplitter;
+
+public interface UpdateUsersFromMentionsSplitter extends MentionSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java
similarity index 55%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java
index 03bd691f..1b2f3414 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/endpoint/splitter/impl/UpdateUsersFromMentionsSplitterImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.mentions.endpoint.splitter.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,27 +6,25 @@
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.messaging.Message;
-import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.TwitterProperties;
-import org.woehlke.twitterwall.oodm.entities.Mention;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.configuration.properties.TwitterProperties;
+import org.woehlke.twitterwall.oodm.model.Mention;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.MentionService;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.UserService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.UpdateUsersFromMentionsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.splitter.UpdateUsersFromMentionsSplitter;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
import java.util.List;
-import static org.woehlke.twitterwall.frontend.controller.common.ControllerHelper.FIRST_PAGE_NUMBER;
+import static org.woehlke.twitterwall.frontend.content.ContentFactory.FIRST_PAGE_NUMBER;
@Component("mqUpdateUserFromMentionsSplitter")
public class UpdateUsersFromMentionsSplitterImpl implements UpdateUsersFromMentionsSplitter {
@@ -35,8 +33,6 @@ public class UpdateUsersFromMentionsSplitterImpl implements UpdateUsersFromMenti
private final TwitterProperties twitterProperties;
- private final TwitterApiService twitterApiService;
-
private final TaskService taskService;
private final MentionService mentionService;
@@ -45,47 +41,50 @@ public class UpdateUsersFromMentionsSplitterImpl implements UpdateUsersFromMenti
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final MentionMessageBuilder mentionMessageBuilder;
- public UpdateUsersFromMentionsSplitterImpl(TwitterProperties twitterProperties, TwitterApiService twitterApiService, TaskService taskService, MentionService mentionService, UserService userService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public UpdateUsersFromMentionsSplitterImpl(TwitterProperties twitterProperties, TaskService taskService, MentionService mentionService, UserService userService, CountedEntitiesService countedEntitiesService, MentionMessageBuilder mentionMessageBuilder) {
this.twitterProperties = twitterProperties;
- this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.mentionService = mentionService;
this.userService = userService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.mentionMessageBuilder = mentionMessageBuilder;
}
@Override
- public List> splitUserMessage(Message incomingTaskMessage) {
+ public List> splitUserMessage(Message incomingTaskMessage) {
String msg ="splitTweetMessage: ";
log.debug(msg+ " START");
CountedEntities countedEntities = countedEntitiesService.countAll();
- List> userProfileList = new ArrayList<>();
+ List> resultList = new ArrayList<>();
TaskMessage msgIn = incomingTaskMessage.getPayload();
long id = msgIn.getTaskId();
Task task = taskService.findById(id);
task = taskService.start(task,countedEntities);
List screenNames = new ArrayList<>();
- int lfdNr = 0;
- int all = 0;
+ long loopId = 0L;
+ long loopAll;
boolean hasNext=true;
Pageable pageRequest = new PageRequest(FIRST_PAGE_NUMBER, twitterProperties.getPageSize());
while (hasNext) {
Page allPersMentions = mentionService.getAllWithoutUser(pageRequest);
+ loopAll = allPersMentions.getTotalElements();
hasNext = allPersMentions.hasNext();
for (Mention onePersMention : allPersMentions) {
if (!onePersMention.hasUser()) {
String screenName = onePersMention.getScreenName();
+ log.debug("### mentionService.getAllWithoutUser from DB (" + loopId + " of "+loopAll+"): " + screenName);
User foundUser = userService.findByScreenName(screenName);
if(foundUser == null) {
- lfdNr++;
- all++;
- log.debug("### mentionService.getAll from DB (" + lfdNr + "): " + screenName);
+ loopId++;
screenNames.add(screenName);
+ Message mqMessageOut = mentionMessageBuilder.buildMentionMessageForTask(incomingTaskMessage,onePersMention);
+ resultList.add(mqMessageOut);
} else {
+ foundUser = userService.store(foundUser,task);
onePersMention.setIdTwitterOfUser(foundUser.getIdTwitter());
+ onePersMention.setIdOfUser(foundUser.getId());
onePersMention = mentionService.update(onePersMention,task);
log.debug("### updated Mention with screenName = " + onePersMention.getUniqueId());
}
@@ -93,16 +92,6 @@ public List> splitUserMessage(Message incoming
}
pageRequest = pageRequest.next();
}
- lfdNr = 0;
- for(String screenName:screenNames){
- lfdNr++;
- log.debug("### twitterApiService.getUserProfileForScreenName("+screenName+") from Twiiter API ("+lfdNr+" of "+all+")");
- TwitterProfile userProfile = twitterApiService.getUserProfileForScreenName(screenName);
- if(userProfile!=null) {
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingTaskMessage,userProfile,lfdNr,all);
- userProfileList.add(mqMessageOut);
- }
- }
- return userProfileList;
+ return resultList;
}
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessage.java
new file mode 100644
index 00000000..b15213ec
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessage.java
@@ -0,0 +1,155 @@
+package org.woehlke.twitterwall.backend.mq.mentions.msg;
+
+import org.springframework.social.twitter.api.TwitterProfile;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.oodm.model.Mention;
+import org.woehlke.twitterwall.oodm.model.User;
+
+import java.io.Serializable;
+
+public class MentionMessage implements Serializable {
+
+ private final TaskMessage taskMessage;
+ private final String screenName;
+ private final TwitterProfile twitterProfile;
+ private final User user;
+
+ private final long idTwitterOfUser;
+ private final long idOfUser;
+ private final long mentionId;
+
+ private final boolean ignoreNextSteps;
+
+
+ public MentionMessage(TaskMessage taskMessage, long mentionId, String screenName, boolean ignoreNextSteps) {
+ this.taskMessage = taskMessage;
+ this.screenName = screenName;
+ this.mentionId = mentionId;
+ this.twitterProfile = null;
+ this.user = null;
+ this.idTwitterOfUser = Mention.HAS_NO_USER;
+ this.idOfUser = Mention.HAS_NO_USER;
+ this.ignoreNextSteps = ignoreNextSteps;
+ }
+
+ public MentionMessage(TaskMessage taskMessage, long mentionId, String screenName) {
+ this.taskMessage = taskMessage;
+ this.screenName = screenName;
+ this.mentionId = mentionId;
+ this.twitterProfile = null;
+ this.user = null;
+ this.idTwitterOfUser = Mention.HAS_NO_USER;
+ this.idOfUser = Mention.HAS_NO_USER;
+ this.ignoreNextSteps = false;
+ }
+
+ public MentionMessage(TaskMessage taskMessage, long mentionId, String screenName, TwitterProfile userFromTwitter) {
+ this.taskMessage = taskMessage;
+ this.screenName = screenName;
+ this.mentionId = mentionId;
+ this.twitterProfile = userFromTwitter;
+ this.user = null;
+ this.idTwitterOfUser = Mention.HAS_NO_USER;
+ this.idOfUser = Mention.HAS_NO_USER;
+ this.ignoreNextSteps = false;
+ }
+
+ public MentionMessage(TaskMessage taskMessage, long mentionId, String screenName, TwitterProfile twitterProfile, User user) {
+ this.taskMessage = taskMessage;
+ this.screenName = screenName;
+ this.mentionId = mentionId;
+ this.twitterProfile = twitterProfile;
+ this.user = user;
+ this.idTwitterOfUser = Mention.HAS_NO_USER;
+ this.idOfUser = Mention.HAS_NO_USER;
+ this.ignoreNextSteps = false;
+ }
+
+ public MentionMessage(TaskMessage taskMessage, long mentionId, String screenName, TwitterProfile twitterProfile, User user, long idOfUser, long idTwitterOfUser) {
+ this.taskMessage = taskMessage;
+ this.screenName = screenName;
+ this.mentionId = mentionId;
+ this.twitterProfile = twitterProfile;
+ this.user = user;
+ this.idTwitterOfUser = idTwitterOfUser;
+ this.idOfUser = idOfUser;
+ this.ignoreNextSteps = false;
+ }
+
+ public TaskMessage getTaskMessage() {
+ return taskMessage;
+ }
+
+ public String getScreenName() {
+ return screenName;
+ }
+
+ public TwitterProfile getTwitterProfile() {
+ return twitterProfile;
+ }
+
+ public long getIdTwitterOfUser() {
+ return idTwitterOfUser;
+ }
+
+ public long getIdOfUser() {
+ return idOfUser;
+ }
+
+ public long getMentionId() {
+ return mentionId;
+ }
+
+ public User getUser() {
+ return user;
+ }
+
+ public boolean isIgnoreNextSteps() {
+ return ignoreNextSteps;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof MentionMessage)) return false;
+
+ MentionMessage that = (MentionMessage) o;
+
+ if (idTwitterOfUser != that.idTwitterOfUser) return false;
+ if (idOfUser != that.idOfUser) return false;
+ if (mentionId != that.mentionId) return false;
+ if (ignoreNextSteps != that.ignoreNextSteps) return false;
+ if (taskMessage != null ? !taskMessage.equals(that.taskMessage) : that.taskMessage != null) return false;
+ if (screenName != null ? !screenName.equals(that.screenName) : that.screenName != null) return false;
+ if (twitterProfile != null ? !twitterProfile.equals(that.twitterProfile) : that.twitterProfile != null)
+ return false;
+ return user != null ? user.equals(that.user) : that.user == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = taskMessage != null ? taskMessage.hashCode() : 0;
+ result = 31 * result + (screenName != null ? screenName.hashCode() : 0);
+ result = 31 * result + (twitterProfile != null ? twitterProfile.hashCode() : 0);
+ result = 31 * result + (user != null ? user.hashCode() : 0);
+ result = 31 * result + (int) (idTwitterOfUser ^ (idTwitterOfUser >>> 32));
+ result = 31 * result + (int) (idOfUser ^ (idOfUser >>> 32));
+ result = 31 * result + (int) (mentionId ^ (mentionId >>> 32));
+ result = 31 * result + (ignoreNextSteps ? 1 : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "MentionMessage{" +
+ "taskMessage=" + taskMessage +
+ ", screenName='" + screenName + '\'' +
+ ", twitterProfile=" + twitterProfile +
+ ", user=" + user +
+ ", idTwitterOfUser=" + idTwitterOfUser +
+ ", idOfUser=" + idOfUser +
+ ", mentionId=" + mentionId +
+ ", ignoreNextSteps=" + ignoreNextSteps +
+ '}';
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessageBuilder.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessageBuilder.java
new file mode 100644
index 00000000..c86e31be
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionMessageBuilder.java
@@ -0,0 +1,21 @@
+package org.woehlke.twitterwall.backend.mq.mentions.msg;
+
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.TwitterProfile;
+import org.woehlke.twitterwall.oodm.model.Mention;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+public interface MentionMessageBuilder {
+
+ Message buildMentionMessageForTask(Message incomingTaskMessage, Mention onePersMention);
+
+ Message buildMentionMessage(Message incomingMessage, TwitterProfile userFromTwitter);
+
+ Message buildMentionMessage(Message incomingMessage, User user);
+
+ Message buildMentionMessage(Message incomingMessage, Mention mention);
+
+ Message buildMentionMessage(Message incomingMessage);
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionResultList.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionResultList.java
new file mode 100644
index 00000000..6659903e
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/MentionResultList.java
@@ -0,0 +1,50 @@
+package org.woehlke.twitterwall.backend.mq.mentions.msg;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class MentionResultList implements Serializable {
+
+ private final long taskId;
+
+ private final List mentionIds;
+
+ public MentionResultList(long taskId, List mentionIds) {
+ this.taskId = taskId;
+ this.mentionIds = mentionIds;
+ }
+
+ public long getTaskId() {
+ return taskId;
+ }
+
+ public List getMentionIds() {
+ return mentionIds;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof MentionResultList)) return false;
+
+ MentionResultList that = (MentionResultList) o;
+
+ if (taskId != that.taskId) return false;
+ return mentionIds != null ? mentionIds.equals(that.mentionIds) : that.mentionIds == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = (int) (taskId ^ (taskId >>> 32));
+ result = 31 * result + (mentionIds != null ? mentionIds.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "MentionResultList{" +
+ "taskId=" + taskId +
+ ", mentionIds=" + mentionIds +
+ '}';
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/impl/MentionMessageBuilderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/impl/MentionMessageBuilderImpl.java
new file mode 100644
index 00000000..d20b5c20
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/mentions/msg/impl/MentionMessageBuilderImpl.java
@@ -0,0 +1,109 @@
+package org.woehlke.twitterwall.backend.mq.mentions.msg.impl;
+
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.TwitterProfile;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Mention;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessage;
+import org.woehlke.twitterwall.backend.mq.mentions.msg.MentionMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+@Component
+public class MentionMessageBuilderImpl implements MentionMessageBuilder {
+
+ @Override
+ public Message buildMentionMessageForTask(Message incomingTaskMessage, Mention onePersMention) {
+ MentionMessage outputPayload = new MentionMessage(
+ incomingTaskMessage.getPayload(),
+ onePersMention.getId(),
+ onePersMention.getScreenName()
+ );
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingTaskMessage.getHeaders())
+ .setHeader("mention_id", onePersMention.getId())
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message buildMentionMessage(Message incomingMessage, TwitterProfile userFromTwitter) {
+ if(userFromTwitter == null){
+ boolean ignoreNextSteps = true;
+ MentionMessage outputPayload = new MentionMessage(
+ incomingMessage.getPayload().getTaskMessage(),
+ incomingMessage.getPayload().getMentionId(),
+ incomingMessage.getPayload().getScreenName(),
+ ignoreNextSteps
+ );
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ } else {
+ MentionMessage outputPayload = new MentionMessage(
+ incomingMessage.getPayload().getTaskMessage(),
+ incomingMessage.getPayload().getMentionId(),
+ incomingMessage.getPayload().getScreenName(),
+ userFromTwitter
+ );
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingMessage.getHeaders())
+ .setHeader("twitter_profile_id", userFromTwitter.getId())
+ .build();
+ return mqMessageOut;
+ }
+ }
+
+ @Override
+ public Message buildMentionMessage(Message incomingMessage, User user) {
+ MentionMessage outMsg = new MentionMessage(
+ incomingMessage.getPayload().getTaskMessage(),
+ incomingMessage.getPayload().getMentionId(),
+ incomingMessage.getPayload().getScreenName(),
+ incomingMessage.getPayload().getTwitterProfile(),
+ user
+ );
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outMsg)
+ .copyHeaders(incomingMessage.getHeaders())
+ .setHeader("transformed",Boolean.TRUE)
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message buildMentionMessage(Message incomingMessage, Mention mention) {
+ TwitterProfile twitterProfile = null;
+ User user = null;
+ MentionMessage outMsg = new MentionMessage(
+ incomingMessage.getPayload().getTaskMessage(),
+ incomingMessage.getPayload().getMentionId(),
+ incomingMessage.getPayload().getScreenName(),
+ twitterProfile,
+ user,
+ mention.getIdOfUser(),
+ mention.getIdTwitterOfUser()
+ );
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outMsg)
+ .copyHeaders(incomingMessage.getHeaders())
+ .setHeader("transformed",Boolean.TRUE)
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message buildMentionMessage(Message incomingMessage) {
+ Message mqMessageOut =
+ MessageBuilder.withPayload(incomingMessage.getPayload())
+ .copyHeaders(incomingMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TaskMessage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessage.java
similarity index 70%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TaskMessage.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessage.java
index f921d176..254c3b73 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TaskMessage.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessage.java
@@ -1,6 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.msg;
+package org.woehlke.twitterwall.backend.mq.tasks;
-import org.woehlke.twitterwall.oodm.entities.parts.TaskType;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskType;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskSendType;
import java.io.Serializable;
import java.util.Date;
@@ -10,12 +11,12 @@ public class TaskMessage implements Serializable {
protected final long taskId;
protected final TaskType taskType;
protected final Date timeStarted;
- protected final SendType sendType;
+ protected final TaskSendType taskSendType;
- public TaskMessage(long taskId, TaskType taskType, SendType sendType,Date timeStarted) {
+ public TaskMessage(long taskId, TaskType taskType, TaskSendType taskSendType, Date timeStarted) {
this.taskId = taskId;
this.taskType = taskType;
- this.sendType = sendType;
+ this.taskSendType = taskSendType;
this.timeStarted = timeStarted;
}
@@ -27,8 +28,8 @@ public TaskType getTaskType() {
return taskType;
}
- public SendType getSendType() {
- return sendType;
+ public TaskSendType getTaskSendType() {
+ return taskSendType;
}
public Date getTimeStarted() {
@@ -45,7 +46,7 @@ public boolean equals(Object o) {
if (taskId != that.taskId) return false;
if (taskType != that.taskType) return false;
if (timeStarted != null ? !timeStarted.equals(that.timeStarted) : that.timeStarted != null) return false;
- return sendType == that.sendType;
+ return taskSendType == that.taskSendType;
}
@Override
@@ -53,7 +54,7 @@ public int hashCode() {
int result = (int) (taskId ^ (taskId >>> 32));
result = 31 * result + (taskType != null ? taskType.hashCode() : 0);
result = 31 * result + (timeStarted != null ? timeStarted.hashCode() : 0);
- result = 31 * result + (sendType != null ? sendType.hashCode() : 0);
+ result = 31 * result + (taskSendType != null ? taskSendType.hashCode() : 0);
return result;
}
@@ -63,7 +64,7 @@ public String toString() {
"taskId=" + taskId +
", taskType=" + taskType +
", timeStarted=" + timeStarted +
- ", sendType=" + sendType +
+ ", taskSendType=" + taskSendType +
'}';
}
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessageBuilder.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessageBuilder.java
new file mode 100644
index 00000000..bda3d5bf
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskMessageBuilder.java
@@ -0,0 +1,10 @@
+package org.woehlke.twitterwall.backend.mq.tasks;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.oodm.model.Task;
+
+public interface TaskMessageBuilder {
+
+ Message buildTaskMessage(Task task);
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskResultList.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskResultList.java
new file mode 100644
index 00000000..1d55c35d
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskResultList.java
@@ -0,0 +1,51 @@
+package org.woehlke.twitterwall.backend.mq.tasks;
+
+import org.woehlke.twitterwall.oodm.model.Task;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class TaskResultList implements Serializable{
+
+ private final long taskId;
+ private final List userList;
+
+ public TaskResultList(long taskId, List userList) {
+ this.taskId = taskId;
+ this.userList = userList;
+ }
+
+ public long getTaskId() {
+ return taskId;
+ }
+
+ public List getUserList() {
+ return userList;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof TaskResultList)) return false;
+
+ TaskResultList that = (TaskResultList) o;
+
+ if (taskId != that.taskId) return false;
+ return userList != null ? userList.equals(that.userList) : that.userList == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = (int) (taskId ^ (taskId >>> 32));
+ result = 31 * result + (userList != null ? userList.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "TaskResultList{" +
+ "taskId=" + taskId +
+ ", userList=" + userList +
+ '}';
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStart.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStart.java
new file mode 100644
index 00000000..3cfd7422
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStart.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.tasks;
+
+import org.woehlke.twitterwall.oodm.model.User;
+
+public interface TaskStart extends TaskStartFireAndForget {
+
+ User createImprintUser();
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/AsyncStartTask.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStartFireAndForget.java
similarity index 62%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/AsyncStartTask.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStartFireAndForget.java
index 9cdfd4f2..5dd9fc7b 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/AsyncStartTask.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/TaskStartFireAndForget.java
@@ -1,9 +1,9 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint;
+package org.woehlke.twitterwall.backend.mq.tasks;
-import org.woehlke.twitterwall.oodm.entities.Task;
+import org.woehlke.twitterwall.oodm.model.Task;
-public interface AsyncStartTask {
+public interface TaskStartFireAndForget {
Task updateTweets();
@@ -38,4 +38,14 @@ public interface AsyncStartTask {
Task getLists();
Task createImprintUserAsync();
+
+ Task fetchUserlistOwners();
+
+ Task startGarbageCollection();
+
+ Task startUpdateUrls();
+
+ Task startFetchListOwner();
+
+ Task startFetchListsForUsers();
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskMessageBuilderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskMessageBuilderImpl.java
new file mode 100644
index 00000000..b19b22e2
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskMessageBuilderImpl.java
@@ -0,0 +1,27 @@
+package org.woehlke.twitterwall.backend.mq.tasks.impl;
+
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessageBuilder;
+
+@Component
+public class TaskMessageBuilderImpl implements TaskMessageBuilder {
+
+ @Override
+ public Message buildTaskMessage(Task task) {
+ TaskMessage outputPayload = new TaskMessage(task.getId(), task.getTaskType(), task.getTaskSendType(), task.getTimeStarted());
+ Message mqMessage =
+ MessageBuilder.withPayload(outputPayload)
+ .setHeader("task_id", task.getId())
+ .setHeader("task_uid", task.getUniqueId())
+ .setHeader("task_type", task.getTaskType())
+ .setHeader("time_started", task.getTimeStarted().getTime())
+ .setHeader("send_type", task.getTaskSendType())
+ .build();
+ return mqMessage;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/AsyncStartTaskImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartFireAndForgetImpl.java
similarity index 58%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/AsyncStartTaskImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartFireAndForgetImpl.java
index c1a0b127..2492e8aa 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/AsyncStartTaskImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartFireAndForgetImpl.java
@@ -1,24 +1,25 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.impl;
+package org.woehlke.twitterwall.backend.mq.tasks.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.channel.ExecutorChannel;
import org.springframework.integration.core.MessagingTemplate;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
-import org.woehlke.twitterwall.oodm.entities.parts.TaskType;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskType;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.AsyncStartTask;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.SendType;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskStartFireAndForget;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskSendType;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessageBuilder;
-@Component("mqAsyncStartTask")
-public class AsyncStartTaskImpl implements AsyncStartTask {
+@Component("mqTaskStartFireAndForget")
+public class TaskStartFireAndForgetImpl implements TaskStartFireAndForget {
@Override
public Task fetchTweetsFromSearch() {
@@ -40,7 +41,7 @@ public Task updateUsers() {
@Override
public Task updateUsersFromMentions() {
- TaskType taskType = TaskType.UPDATE_USERS_FROM_MENTIONS;
+ TaskType taskType = TaskType.UPDATE_MENTIONS_FOR_USERS;
return send(taskType);
}
@@ -64,13 +65,13 @@ public Task fetchFriends() {
@Override
public Task createTestDataForTweets() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_TESTDATA_TWEETS;
+ TaskType taskType = TaskType.CREATE_TESTDATA_TWEETS;
return send(taskType);
}
@Override
public Task createTestDataForUser() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_TESTDATA_USERS;
+ TaskType taskType = TaskType.CREATE_TESTDATA_USERS;
return send(taskType);
}
@@ -118,18 +119,48 @@ public Task getLists() {
@Override
public Task createImprintUserAsync() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_IMPRINT_USER;
+ TaskType taskType = TaskType.CREATE_IMPRINT_USER;
+ return send(taskType);
+ }
+
+ @Override
+ public Task fetchUserlistOwners() {
+ TaskType taskType = TaskType.FETCH_USERLIST_OWNERS;
+ return send(taskType);
+ }
+
+ @Override
+ public Task startGarbageCollection() {
+ TaskType taskType = TaskType.GARBAGE_COLLECTION;
+ return send(taskType);
+ }
+
+ @Override
+ public Task startUpdateUrls() {
+ TaskType taskType = TaskType.UPDATE_URLS;
+ return send(taskType);
+ }
+
+ @Override
+ public Task startFetchListOwner() {
+ TaskType taskType = TaskType.FETCH_USERLIST_OWNERS;
+ return send(taskType);
+ }
+
+ @Override
+ public Task startFetchListsForUsers() {
+ TaskType taskType = TaskType.FETCH_LISTS_FOR_USERS;
return send(taskType);
}
private Task send(TaskType taskType){
- SendType sendType = SendType.FIRE_AND_FORGET;
- String msg = "START Task "+taskType+" via MQ by "+sendType;
+ TaskSendType taskSendType = TaskSendType.FIRE_AND_FORGET;
+ String msg = "START Task "+taskType+" via MQ by "+ taskSendType;
log.info(msg);
CountedEntities countedEntities = countedEntitiesService.countAll();
- Task task = taskService.create(msg, taskType, sendType, countedEntities);
+ Task task = taskService.create(msg, taskType, taskSendType, countedEntities);
- Message mqMessage = twitterwallMessageBuilder.buildTaskMessage(task);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
MessagingTemplate mqTemplate = new MessagingTemplate();
mqTemplate.send(executorChannelForAsyncStart, mqMessage);
@@ -137,11 +168,16 @@ private Task send(TaskType taskType){
}
@Autowired
- public AsyncStartTaskImpl(TaskService taskService, CountedEntitiesService countedEntitiesService, ExecutorChannel executorChannelForAsyncStart, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public TaskStartFireAndForgetImpl(
+ TaskService taskService,
+ CountedEntitiesService countedEntitiesService,
+ @Qualifier("channel.async.TaskStart") ExecutorChannel executorChannelForAsyncStart,
+ TaskMessageBuilder taskMessageBuilder
+ ) {
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
this.executorChannelForAsyncStart = executorChannelForAsyncStart;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.taskMessageBuilder = taskMessageBuilder;
}
private final TaskService taskService;
@@ -150,7 +186,7 @@ public AsyncStartTaskImpl(TaskService taskService, CountedEntitiesService counte
private final ExecutorChannel executorChannelForAsyncStart;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TaskMessageBuilder taskMessageBuilder;
- private static final Logger log = LoggerFactory.getLogger(AsyncStartTaskImpl.class);
+ private static final Logger log = LoggerFactory.getLogger(TaskStartFireAndForgetImpl.class);
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/StartTaskImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartImpl.java
similarity index 51%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/StartTaskImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartImpl.java
index 20b89a12..59ed0b58 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/impl/StartTaskImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tasks/impl/TaskStartImpl.java
@@ -1,25 +1,31 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.impl;
+package org.woehlke.twitterwall.backend.mq.tasks.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.integration.core.MessagingTemplate;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.messaging.MessageChannel;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
-import org.woehlke.twitterwall.oodm.entities.parts.TaskType;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskResultList;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlResultList;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskSendType;
+import org.woehlke.twitterwall.oodm.model.tasks.TaskType;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.StartTask;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.*;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskStart;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetResultList;
-@Component("mqStartTask")
-public class StartTaskImpl implements StartTask {
+@Component("mqTaskStart")
+public class TaskStartImpl implements TaskStart {
@Override
public Task fetchTweetsFromSearch() {
@@ -41,7 +47,7 @@ public Task updateUsers() {
@Override
public Task updateUsersFromMentions() {
- TaskType taskType = TaskType.UPDATE_USERS_FROM_MENTIONS;
+ TaskType taskType = TaskType.UPDATE_MENTIONS_FOR_USERS;
return sendAndReceiveUser(taskType);
}
@@ -65,13 +71,13 @@ public Task fetchFriends() {
@Override
public Task createTestDataForTweets() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_TESTDATA_TWEETS;
+ TaskType taskType = TaskType.CREATE_TESTDATA_TWEETS;
return sendAndReceiveTweet(taskType);
}
@Override
public Task createTestDataForUser() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_TESTDATA_USERS;
+ TaskType taskType = TaskType.CREATE_TESTDATA_USERS;
return sendAndReceiveUser(taskType);
}
@@ -119,29 +125,107 @@ public Task getLists() {
@Override
public Task createImprintUserAsync() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_IMPRINT_USER;
+ TaskType taskType = TaskType.CREATE_IMPRINT_USER;
return sendAndReceiveUser(taskType);
}
+ @Override
+ public Task fetchUserlistOwners() {
+ TaskType taskType = TaskType.FETCH_USERLIST_OWNERS;
+ return sendAndReceiveUser(taskType);
+ }
+
+ @Override
+ public Task startGarbageCollection() {
+ TaskType taskType = TaskType.GARBAGE_COLLECTION;
+ return sendAndReceiveTask(taskType);
+ }
+
+ @Override
+ public Task startUpdateUrls() {
+ TaskType taskType = TaskType.UPDATE_URLS;
+ return sendAndReceiveUrl(taskType);
+ }
+
+ @Override
+ public Task startFetchListOwner() {
+ return null;
+ }
+
+ @Override
+ public Task startFetchListsForUsers() {
+ return null;
+ }
+
+ private Task sendAndReceiveTask(TaskType taskType){
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+"via MQ by "+ taskSendType;
+ log.info(logMsg);
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ Task task = taskService.create("Start via MQ by Scheduler ", taskType, taskSendType,countedEntities);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
+ MessagingTemplate mqTemplate = new MessagingTemplate();
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
+ Object o = returnedMessage.getPayload();
+ countedEntities = countedEntitiesService.countAll();
+ if( o instanceof TaskResultList){
+ TaskResultList msg = (TaskResultList) o;
+ long taskId = msg.getTaskId();
+ task = taskService.findById(taskId);
+ logMsg = "Sucessfully finished task "+taskType+"via MQ by "+ taskSendType;
+ taskService.done(logMsg,task,countedEntities);
+ } else {
+ logMsg = "Finished with Error: task "+taskType+"via MQ by "+ taskSendType +": Wrong type of returnedMessage";
+ taskService.finalError(task,logMsg,countedEntities);
+ log.error(logMsg);
+ }
+ return task;
+ }
+
+ private Task sendAndReceiveUrl(TaskType taskType){
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+"via MQ by "+ taskSendType;
+ log.info(logMsg);
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ Task task = taskService.create("Start via MQ by Scheduler ", taskType, taskSendType,countedEntities);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
+ MessagingTemplate mqTemplate = new MessagingTemplate();
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
+ Object o = returnedMessage.getPayload();
+ countedEntities = countedEntitiesService.countAll();
+ if( o instanceof UrlResultList){
+ UrlResultList msg = (UrlResultList) o;
+ long taskId = msg.getTaskId();
+ task = taskService.findById(taskId);
+ logMsg = "Sucessfully finished task "+taskType+"via MQ by "+ taskSendType;
+ taskService.done(logMsg,task,countedEntities);
+ } else {
+ logMsg = "Finished with Error: task "+taskType+"via MQ by "+ taskSendType +": Wrong type of returnedMessage";
+ taskService.finalError(task,logMsg,countedEntities);
+ log.error(logMsg);
+ }
+ return task;
+ }
+
private Task sendAndReceiveUserList(TaskType taskType){
- SendType sendType = SendType.SEND_AND_WAIT_FOR_RESULT;
- String logMsg = "Start task "+taskType+"via MQ by "+sendType;
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+"via MQ by "+ taskSendType;
log.info(logMsg);
CountedEntities countedEntities = countedEntitiesService.countAll();
- Task task = taskService.create("Start via MQ by Scheduler ", taskType,sendType,countedEntities);
- Message mqMessage = twitterwallMessageBuilder.buildTaskMessage(task);
+ Task task = taskService.create("Start via MQ by Scheduler ", taskType, taskSendType,countedEntities);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
MessagingTemplate mqTemplate = new MessagingTemplate();
- Message> returnedMessage = mqTemplate.sendAndReceive(startTaskChannel, mqMessage);
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
Object o = returnedMessage.getPayload();
countedEntities = countedEntitiesService.countAll();
if( o instanceof TweetResultList){
TweetResultList msg = (TweetResultList) o;
long taskId = msg.getTaskId();
task = taskService.findById(taskId);
- logMsg = "Sucessfully finished task "+taskType+"via MQ by "+sendType;
+ logMsg = "Sucessfully finished task "+taskType+"via MQ by "+ taskSendType;
taskService.done(logMsg,task,countedEntities);
} else {
- logMsg = "Finished with Error: task "+taskType+"via MQ by "+sendType+": Wrong type of returnedMessage";
+ logMsg = "Finished with Error: task "+taskType+"via MQ by "+ taskSendType +": Wrong type of returnedMessage";
taskService.finalError(task,logMsg,countedEntities);
log.error(logMsg);
}
@@ -150,34 +234,34 @@ private Task sendAndReceiveUserList(TaskType taskType){
@Override
public User createImprintUser() {
- TaskType taskType = TaskType.CONTROLLER_CREATE_IMPRINT_USER;
- SendType sendType = SendType.SEND_AND_WAIT_FOR_RESULT;
- String logMsg = "Start task "+taskType+" via MQ by "+sendType;
+ TaskType taskType = TaskType.CREATE_IMPRINT_USER;
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+" via MQ by "+ taskSendType;
log.info(logMsg);
CountedEntities countedEntities = countedEntitiesService.countAll();
- Task task = taskService.create("Start via MQ", taskType, sendType, countedEntities);
- TaskMessage taskMessage = new TaskMessage(task.getId(), taskType, sendType, task.getTimeStarted());
+ Task task = taskService.create("Start via MQ", taskType, taskSendType, countedEntities);
+ TaskMessage taskMessage = new TaskMessage(task.getId(), taskType, taskSendType, task.getTimeStarted());
Message mqMessage = MessageBuilder.withPayload(taskMessage)
.setHeader("task_id", task.getId())
.setHeader("task_uid", task.getUniqueId())
.setHeader("task_type", task.getTaskType())
.setHeader("time_started", task.getTimeStarted().getTime())
- .setHeader("send_type", sendType)
+ .setHeader("send_type", taskSendType)
.build();
MessagingTemplate mqTemplate = new MessagingTemplate();
- Message> returnedMessage = mqTemplate.sendAndReceive(startTaskChannel, mqMessage);
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
Object o = returnedMessage.getPayload();
countedEntities = countedEntitiesService.countAll();
if( o instanceof UserMessage){
UserMessage msg = (UserMessage) o;
long taskId = msg.getTaskMessage().getTaskId();
task = taskService.findById(taskId);
- logMsg = "Sucessfully finished task "+taskType+" via MQ by "+sendType;
+ logMsg = "Sucessfully finished task "+taskType+" via MQ by "+ taskSendType;
taskService.done(logMsg, task, countedEntities);
log.info(logMsg);
return msg.getUser();
} else {
- logMsg = "Finished with Error: task "+taskType+" via MQ by "+sendType+": Wrong type of returnedMessage";
+ logMsg = "Finished with Error: task "+taskType+" via MQ by "+ taskSendType +": Wrong type of returnedMessage";
taskService.finalError(task,logMsg,countedEntities);
log.error(logMsg);
return null;
@@ -185,24 +269,24 @@ public User createImprintUser() {
}
private Task sendAndReceiveTweet(TaskType taskType){
- SendType sendType = SendType.SEND_AND_WAIT_FOR_RESULT;
- String logMsg = "Start task "+taskType+"via MQ by "+sendType;
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+"via MQ by "+ taskSendType;
log.info(logMsg);
CountedEntities countedEntities = countedEntitiesService.countAll();
- Task task = taskService.create("Start via MQ by Scheduler ", taskType,sendType,countedEntities);
- Message mqMessage = twitterwallMessageBuilder.buildTaskMessage(task);
+ Task task = taskService.create("Start via MQ by Scheduler ", taskType, taskSendType,countedEntities);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
MessagingTemplate mqTemplate = new MessagingTemplate();
- Message> returnedMessage = mqTemplate.sendAndReceive(startTaskChannel, mqMessage);
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
Object o = returnedMessage.getPayload();
countedEntities = countedEntitiesService.countAll();
if( o instanceof TweetResultList){
TweetResultList msg = (TweetResultList) o;
long taskId = msg.getTaskId();
task = taskService.findById(taskId);
- logMsg = "Sucessfully finished task "+taskType+"via MQ by "+sendType;
+ logMsg = "Sucessfully finished task "+taskType+"via MQ by "+ taskSendType;
taskService.done(logMsg,task,countedEntities);
} else {
- logMsg = "Finished with Error: task "+taskType+"via MQ by "+sendType+": Wrong type of returnedMessage";
+ logMsg = "Finished with Error: task "+taskType+"via MQ by "+ taskSendType +": Wrong type of returnedMessage";
taskService.finalError(task,logMsg,countedEntities);
log.error(logMsg);
}
@@ -210,47 +294,48 @@ private Task sendAndReceiveTweet(TaskType taskType){
}
private Task sendAndReceiveUser(TaskType taskType){
- SendType sendType = SendType.SEND_AND_WAIT_FOR_RESULT;
- String logMsg = "Start task "+taskType+"via MQ by "+sendType;;
+ TaskSendType taskSendType = TaskSendType.SEND_AND_WAIT_FOR_RESULT;
+ String logMsg = "Start task "+taskType+"via MQ by "+ taskSendType;;
log.info(logMsg);
CountedEntities countedEntities = countedEntitiesService.countAll();
- Task task = taskService.create(logMsg, taskType, sendType, countedEntities);
- Message mqMessage = twitterwallMessageBuilder.buildTaskMessage(task);
+ Task task = taskService.create(logMsg, taskType, taskSendType, countedEntities);
+ Message mqMessage = taskMessageBuilder.buildTaskMessage(task);
MessagingTemplate mqTemplate = new MessagingTemplate();
- Message> returnedMessage = mqTemplate.sendAndReceive(startTaskChannel, mqMessage);
+ Message> returnedMessage = mqTemplate.sendAndReceive(channelTaskStart, mqMessage);
Object o = returnedMessage.getPayload();
countedEntities = countedEntitiesService.countAll();
if( o instanceof UserMessage){
UserMessage msg = (UserMessage) o;
long taskId = msg.getTaskMessage().getTaskId();
task = taskService.findById(taskId);
- logMsg = "Sucessfully finished task "+taskType+"via MQ by "+sendType;
+ logMsg = "Sucessfully finished task "+taskType+"via MQ by "+ taskSendType;
taskService.done(logMsg,task,countedEntities);
log.info(logMsg);
} else {
- logMsg = "Finished with Error: task "+taskType+"via MQ by "+sendType+": Wrong type of returnedMessage";
+ logMsg = "Finished with Error: task "+taskType+"via MQ by "+ taskSendType +": Wrong type of returnedMessage";
taskService.finalError(task,logMsg,countedEntities);
log.error(logMsg);
}
return task;
}
- private final MessageChannel startTaskChannel;
+
+ private final MessageChannel channelTaskStart;
private final TaskService taskService;
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TaskMessageBuilder taskMessageBuilder;
- private static final Logger log = LoggerFactory.getLogger(StartTaskImpl.class);
+ private static final Logger log = LoggerFactory.getLogger(TaskStartImpl.class);
@Autowired
- public StartTaskImpl(MessageChannel startTaskChannel, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
- this.startTaskChannel = startTaskChannel;
+ public TaskStartImpl(@Qualifier("channel.TaskStart") MessageChannel channelTaskStart, TaskService taskService, CountedEntitiesService countedEntitiesService, TaskMessageBuilder taskMessageBuilder) {
+ this.channelTaskStart = channelTaskStart;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.taskMessageBuilder = taskMessageBuilder;
}
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetFinisher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetFinisher.java
similarity index 55%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetFinisher.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetFinisher.java
index f084f459..766473cd 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetFinisher.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetFinisher.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetResultList;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetResultList;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetPersistor.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetPersistor.java
similarity index 53%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetPersistor.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetPersistor.java
index f1a3613f..372af5e9 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetPersistor.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetPersistor.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
public interface TweetPersistor {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetTransformator.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetTransformator.java
similarity index 52%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetTransformator.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetTransformator.java
index db872381..15a4872a 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/TweetTransformator.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/TweetTransformator.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
public interface TweetTransformator {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetFinisherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetFinisherImpl.java
similarity index 73%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetFinisherImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetFinisherImpl.java
index f6586b9e..dd27a1c0 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetFinisherImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetFinisherImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,14 +6,15 @@
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.Tweet;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Tweet;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl.UserFinisherImpl;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.TweetFinisher;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetResultList;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl.UserFinisherImpl;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.TweetFinisher;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetResultList;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
@@ -54,14 +55,17 @@ public void finishAsnyc(Message> incomingMessageList) {
}
@Autowired
- public TweetFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService) {
+ public TweetFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
private final TaskService taskService;
private final CountedEntitiesService countedEntitiesService;
+ private final TweetMessageBuilder tweetMessageBuilder;
+
private static final Logger log = LoggerFactory.getLogger(UserFinisherImpl.class);
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetPersistorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetPersistorImpl.java
similarity index 70%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetPersistorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetPersistorImpl.java
index d2d84dae..39e0d5fa 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetPersistorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetPersistorImpl.java
@@ -1,15 +1,16 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.Tweet;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Tweet;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.TweetPersistor;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.persist.StoreOneTweetPerform;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.TweetPersistor;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.persist.StoreOneTweetPerform;
@Component("mqTweetPersistor")
public class TweetPersistorImpl implements TweetPersistor {
@@ -18,10 +19,13 @@ public class TweetPersistorImpl implements TweetPersistor {
private final StoreOneTweetPerform storeOneTweetPerform;
+ private final TweetMessageBuilder tweetMessageBuilder;
+
@Autowired
- public TweetPersistorImpl(TaskService taskService, StoreOneTweetPerform storeOneTweetPerform) {
+ public TweetPersistorImpl(TaskService taskService, StoreOneTweetPerform storeOneTweetPerform, TweetMessageBuilder tweetMessageBuilder) {
this.taskService = taskService;
this.storeOneTweetPerform = storeOneTweetPerform;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetTransformatorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetTransformatorImpl.java
similarity index 73%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetTransformatorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetTransformatorImpl.java
index 1060b175..70dec43f 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/services/impl/TweetTransformatorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/serviceactivator/impl/TweetTransformatorImpl.java
@@ -1,15 +1,16 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.Tweet;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Tweet;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.services.TweetTransformator;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.transform.TweetTransformService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.serviceactivator.TweetTransformator;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.transform.TweetTransformService;
@Component("mqTweetTransformator")
public class TweetTransformatorImpl implements TweetTransformator {
@@ -18,10 +19,13 @@ public class TweetTransformatorImpl implements TweetTransformator {
private final TaskService taskService;
+ private final TweetMessageBuilder tweetMessageBuilder;
+
@Autowired
- public TweetTransformatorImpl(TweetTransformService tweetTransformService, TaskService taskService) {
+ public TweetTransformatorImpl(TweetTransformService tweetTransformService, TaskService taskService, TweetMessageBuilder tweetMessageBuilder) {
this.tweetTransformService = tweetTransformService;
this.taskService = taskService;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/CreateTestDataTweetsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/CreateTestDataTweetsSplitter.java
new file mode 100644
index 00000000..09d9a67b
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/CreateTestDataTweetsSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface CreateTestDataTweetsSplitter extends TweetsSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FavoritesSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FavoritesSplitter.java
new file mode 100644
index 00000000..2342d23f
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FavoritesSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface FavoritesSplitter extends TweetsSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FetchTweetsFromSearchSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FetchTweetsFromSearchSplitter.java
new file mode 100644
index 00000000..16cf0ece
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FetchTweetsFromSearchSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface FetchTweetsFromSearchSplitter extends TweetsSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FindTweetsToRemoveSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FindTweetsToRemoveSplitter.java
new file mode 100644
index 00000000..772b017c
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/FindTweetsToRemoveSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface FindTweetsToRemoveSplitter extends TweetsSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/HomeTimelineSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/HomeTimelineSplitter.java
new file mode 100644
index 00000000..16287cba
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/HomeTimelineSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface HomeTimelineSplitter extends TweetsSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/MentionsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/MentionsSplitter.java
new file mode 100644
index 00000000..4c7ea121
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/MentionsSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface MentionsSplitter extends TweetsSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/RetweetsOfMeSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/RetweetsOfMeSplitter.java
new file mode 100644
index 00000000..b15916f6
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/RetweetsOfMeSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface RetweetsOfMeSplitter extends TweetsSplitter{
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UpdateTweetsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UpdateTweetsSplitter.java
new file mode 100644
index 00000000..7f825768
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UpdateTweetsSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface UpdateTweetsSplitter extends TweetsSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UserTimelineSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UserTimelineSplitter.java
new file mode 100644
index 00000000..01c1b04f
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/UserTimelineSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.TweetsSplitter;
+
+public interface UserTimelineSplitter extends TweetsSplitter{
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/CreateTestDataTweetsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/CreateTestDataTweetsSplitterImpl.java
similarity index 66%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/CreateTestDataTweetsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/CreateTestDataTweetsSplitterImpl.java
index 0fc9f03f..fcd61fb5 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/CreateTestDataTweetsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/CreateTestDataTweetsSplitterImpl.java
@@ -1,25 +1,25 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.TestdataProperties;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.configuration.properties.TestdataProperties;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.TweetService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.CreateTestDataTweetsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.CreateTestDataTweetsSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
import java.util.List;
-import static org.woehlke.twitterwall.ScheduledTasks.TWELVE_HOURS;
+import static org.woehlke.twitterwall.CronJobs.TWELVE_HOURS;
@Component("mqCreateTestDataForTweetsSplitter")
public class CreateTestDataTweetsSplitterImpl implements CreateTestDataTweetsSplitter {
@@ -34,16 +34,16 @@ public class CreateTestDataTweetsSplitterImpl implements CreateTestDataTweetsSpl
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public CreateTestDataTweetsSplitterImpl(TestdataProperties testdataProperties, TwitterApiService twitterApiService, TaskService taskService, TweetService tweetService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public CreateTestDataTweetsSplitterImpl(TestdataProperties testdataProperties, TwitterApiService twitterApiService, TaskService taskService, TweetService tweetService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.testdataProperties = testdataProperties;
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.tweetService = tweetService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -60,7 +60,7 @@ public List> splitTweetMessage(Message incomi
for (long idTwitter : userIdTwitterList) {
loopId++;
boolean fetchTweetFromApi = true;
- org.woehlke.twitterwall.oodm.entities.Tweet tweetPers = tweetService.findByIdTwitter(idTwitter);
+ org.woehlke.twitterwall.oodm.model.Tweet tweetPers = tweetService.findByIdTwitter(idTwitter);
if(tweetPers == null){
fetchTweetFromApi = true;
} else {
@@ -69,9 +69,9 @@ public List> splitTweetMessage(Message incomi
Message outgoingMessage = null;
if(fetchTweetFromApi) {
Tweet tweet = twitterApiService.findOneTweetById(idTwitter);
- outgoingMessage = twitterwallMessageBuilder.buildTweetMessage(incomingTaskMessage, tweet, loopId, loopAll);
+ outgoingMessage = tweetMessageBuilder.buildTweetMessage(incomingTaskMessage, tweet, loopId, loopAll);
} else {
- outgoingMessage = twitterwallMessageBuilder.buildTweetMessage(incomingTaskMessage, tweetPers,loopId,loopAll);
+ outgoingMessage = tweetMessageBuilder.buildTweetMessage(incomingTaskMessage, tweetPers,loopId,loopAll);
}
tweets.add(outgoingMessage);
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FavoritesSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FavoritesSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FavoritesSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FavoritesSplitterImpl.java
index 2ea08812..079e991d 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FavoritesSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FavoritesSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.FavoritesSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.FavoritesSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class FavoritesSplitterImpl implements FavoritesSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public FavoritesSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public FavoritesSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FetchTweetsFromSearchSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FetchTweetsFromSearchSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FetchTweetsFromSearchSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FetchTweetsFromSearchSplitterImpl.java
index 8d5267e0..8756b575 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FetchTweetsFromSearchSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FetchTweetsFromSearchSplitterImpl.java
@@ -1,17 +1,17 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.FetchTweetsFromSearchSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.FetchTweetsFromSearchSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
@@ -26,14 +26,14 @@ public class FetchTweetsFromSearchSplitterImpl implements FetchTweetsFromSearchS
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public FetchTweetsFromSearchSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public FetchTweetsFromSearchSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FindTweetsToRemoveSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FindTweetsToRemoveSplitterImpl.java
similarity index 69%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FindTweetsToRemoveSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FindTweetsToRemoveSplitterImpl.java
index 8e4f4108..ec53bb6a 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/FindTweetsToRemoveSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/FindTweetsToRemoveSplitterImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
@@ -6,16 +6,16 @@
import org.springframework.data.domain.Pageable;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.Tweet;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Tweet;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.TweetService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.FindTweetsToRemoveSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.FindTweetsToRemoveSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
import java.util.ArrayList;
import java.util.List;
@@ -29,14 +29,14 @@ public class FindTweetsToRemoveSplitterImpl implements FindTweetsToRemoveSplitte
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public FindTweetsToRemoveSplitterImpl(TweetService tweetService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public FindTweetsToRemoveSplitterImpl(TweetService tweetService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.tweetService = tweetService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -56,7 +56,7 @@ public List> splitTweetMessage(Message messag
int loopAll = tweetList.getContent().size();
for (Tweet tweet: tweetList) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/HomeTimelineSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/HomeTimelineSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/HomeTimelineSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/HomeTimelineSplitterImpl.java
index b058cc19..92cea047 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/HomeTimelineSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/HomeTimelineSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.HomeTimelineSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.HomeTimelineSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class HomeTimelineSplitterImpl implements HomeTimelineSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public HomeTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public HomeTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/MentionsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/MentionsSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/MentionsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/MentionsSplitterImpl.java
index 7725ba1c..3874ea92 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/MentionsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/MentionsSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.MentionsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.MentionsSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class MentionsSplitterImpl implements MentionsSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public MentionsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public MentionsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/RetweetsOfMeSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/RetweetsOfMeSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/RetweetsOfMeSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/RetweetsOfMeSplitterImpl.java
index 3ab7b212..65a44dc6 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/RetweetsOfMeSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/RetweetsOfMeSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.RetweetsOfMeSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.RetweetsOfMeSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class RetweetsOfMeSplitterImpl implements RetweetsOfMeSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public RetweetsOfMeSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public RetweetsOfMeSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@@ -50,7 +50,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UpdateTweetsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UpdateTweetsSplitterImpl.java
similarity index 69%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UpdateTweetsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UpdateTweetsSplitterImpl.java
index 095828f1..5c126a14 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UpdateTweetsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UpdateTweetsSplitterImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -8,23 +8,23 @@
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.TwitterProperties;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.configuration.properties.TwitterProperties;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.TweetService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.UpdateTweetsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.UpdateTweetsSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
import java.util.List;
-import static org.woehlke.twitterwall.ScheduledTasks.TWELVE_HOURS;
-import static org.woehlke.twitterwall.frontend.controller.common.ControllerHelper.FIRST_PAGE_NUMBER;
+import static org.woehlke.twitterwall.CronJobs.TWELVE_HOURS;
+import static org.woehlke.twitterwall.frontend.content.ContentFactory.FIRST_PAGE_NUMBER;
@Component("mqUpdateTweetsSplitter")
public class UpdateTweetsSplitterImpl implements UpdateTweetsSplitter {
@@ -39,15 +39,15 @@ public class UpdateTweetsSplitterImpl implements UpdateTweetsSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
- public UpdateTweetsSplitterImpl(TwitterProperties twitterProperties, TweetService tweetService, TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public UpdateTweetsSplitterImpl(TwitterProperties twitterProperties, TweetService tweetService, TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterProperties = twitterProperties;
this.tweetService = tweetService;
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -63,8 +63,8 @@ public List> splitTweetMessage(Message incomi
int lfdNr = 0;
int all = 0;
while(hasNext) {
- Page tweetTwitterIds = tweetService.getAll(pageRequest);
- for(org.woehlke.twitterwall.oodm.entities.Tweet tweetTwitterId:tweetTwitterIds.getContent()){
+ Page tweetTwitterIds = tweetService.getAll(pageRequest);
+ for(org.woehlke.twitterwall.oodm.model.Tweet tweetTwitterId:tweetTwitterIds.getContent()){
if(!tweetTwitterId.getTaskBasedCaching().isCached(task.getTaskType(), TWELVE_HOURS)) {
lfdNr++;
all++;
@@ -82,7 +82,7 @@ public List> splitTweetMessage(Message incomi
log.debug("### twitterApiService.findOneTweetById from Twiiter API ("+lfdNr+" of "+all+"): "+tweetTwitterId);
Tweet foundTweetFromTwitter = twitterApiService.findOneTweetById(tweetTwitterId);
TweetMessage result = new TweetMessage(msgIn,foundTweetFromTwitter);
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(incomingTaskMessage,foundTweetFromTwitter,lfdNr,all);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(incomingTaskMessage,foundTweetFromTwitter,lfdNr,all);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UserTimelineSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UserTimelineSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UserTimelineSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UserTimelineSplitterImpl.java
index 11f2d5ee..ec92babd 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/tweets/splitter/impl/UserTimelineSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/endpoint/splitter/impl/UserTimelineSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.Tweet;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.tweets.splitter.UserTimelineSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.TweetMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.tweets.endpoint.splitter.UserTimelineSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -27,14 +27,14 @@ public class UserTimelineSplitterImpl implements UserTimelineSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final TweetMessageBuilder tweetMessageBuilder;
@Autowired
- public UserTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public UserTimelineSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TweetMessageBuilder tweetMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.tweetMessageBuilder = tweetMessageBuilder;
}
@Override
@@ -50,7 +50,7 @@ public List> splitTweetMessage(Message messag
int loopAll = twitterTweets.size();
for (Tweet tweet: twitterTweets) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
+ Message mqMessageOut = tweetMessageBuilder.buildTweetMessage(message,tweet,loopId,loopAll);
tweets.add(mqMessageOut);
}
return tweets;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetMessage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessage.java
similarity index 89%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetMessage.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessage.java
index 44320b2a..64cb4bda 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetMessage.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessage.java
@@ -1,7 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.msg;
+package org.woehlke.twitterwall.backend.mq.tweets.msg;
import org.springframework.social.twitter.api.Tweet;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
import java.io.Serializable;
@@ -10,7 +11,7 @@ public class TweetMessage implements Serializable {
private final TaskMessage taskMessage;
private final long tweetIdTwitter;
private final org.springframework.social.twitter.api.Tweet tweetFromTwitter;
- private final org.woehlke.twitterwall.oodm.entities.Tweet tweet;
+ private final org.woehlke.twitterwall.oodm.model.Tweet tweet;
private final boolean ignoreTransformation;
public TweetMessage(
@@ -26,7 +27,7 @@ public TweetMessage(
public TweetMessage(
TaskMessage taskMessage,
- org.woehlke.twitterwall.oodm.entities.Tweet tweet
+ org.woehlke.twitterwall.oodm.model.Tweet tweet
){
this.taskMessage = taskMessage;
this.tweetFromTwitter = null;
@@ -39,7 +40,7 @@ public TweetMessage(
TaskMessage taskMessage,
long tweetIdTwitter,
Tweet tweetFromTwitter,
- org.woehlke.twitterwall.oodm.entities.Tweet tweet
+ org.woehlke.twitterwall.oodm.model.Tweet tweet
) {
this.taskMessage = taskMessage;
this.tweetIdTwitter = tweetIdTwitter;
@@ -50,7 +51,7 @@ public TweetMessage(
public TweetMessage(
TaskMessage taskMessage,
- org.woehlke.twitterwall.oodm.entities.Tweet myTweet,
+ org.woehlke.twitterwall.oodm.model.Tweet myTweet,
org.springframework.social.twitter.api.Tweet tweetFromTwitter
) {
this.taskMessage = taskMessage;
@@ -72,7 +73,7 @@ public Tweet getTweetFromTwitter() {
return tweetFromTwitter;
}
- public org.woehlke.twitterwall.oodm.entities.Tweet getTweet() {
+ public org.woehlke.twitterwall.oodm.model.Tweet getTweet() {
return tweet;
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessageBuilder.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessageBuilder.java
new file mode 100644
index 00000000..8f3728f8
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetMessageBuilder.java
@@ -0,0 +1,13 @@
+package org.woehlke.twitterwall.backend.mq.tweets.msg;
+
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.Tweet;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+public interface TweetMessageBuilder {
+
+ Message buildTweetMessage(Message incomingTaskMessage, org.woehlke.twitterwall.oodm.model.Tweet tweet, int loopId, int loopAll);
+
+ Message buildTweetMessage(Message incomingTaskMessage, Tweet tweet, int loopId, int loopAll);
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetResultList.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetResultList.java
similarity index 92%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetResultList.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetResultList.java
index 7858447d..ce70cb9e 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/TweetResultList.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/TweetResultList.java
@@ -1,6 +1,6 @@
-package org.woehlke.twitterwall.scheduled.mq.msg;
+package org.woehlke.twitterwall.backend.mq.tweets.msg;
-import org.woehlke.twitterwall.oodm.entities.Tweet;
+import org.woehlke.twitterwall.oodm.model.Tweet;
import java.io.Serializable;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/impl/TweetMessageBuilderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/impl/TweetMessageBuilderImpl.java
new file mode 100644
index 00000000..221decc0
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/tweets/msg/impl/TweetMessageBuilderImpl.java
@@ -0,0 +1,38 @@
+package org.woehlke.twitterwall.backend.mq.tweets.msg.impl;
+
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.Tweet;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessage;
+import org.woehlke.twitterwall.backend.mq.tweets.msg.TweetMessageBuilder;
+
+@Component
+public class TweetMessageBuilderImpl implements TweetMessageBuilder {
+
+ @Override
+ public Message buildTweetMessage(Message incomingTaskMessage, org.woehlke.twitterwall.oodm.model.Tweet tweet, int loopId, int loopAll){
+ TweetMessage outputPayload = new TweetMessage(incomingTaskMessage.getPayload(),tweet);
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingTaskMessage.getHeaders())
+ .setHeader("loop_id",loopId)
+ .setHeader("loop_all",loopAll)
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message buildTweetMessage(Message incomingTaskMessage, Tweet tweet, int loopId, int loopAll){
+ TweetMessage outputPayload = new TweetMessage(incomingTaskMessage.getPayload(),tweet);
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingTaskMessage.getHeaders())
+ .setHeader("loop_id",loopId)
+ .setHeader("loop_all",loopAll)
+ .build();
+ return mqMessageOut;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrFetcher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrFetcher.java
new file mode 100644
index 00000000..31bc3907
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrFetcher.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+
+public interface UrFetcher {
+
+ Message fetchUrl(Message incomingUserMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlFinisher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlFinisher.java
new file mode 100644
index 00000000..da075fb5
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlFinisher.java
@@ -0,0 +1,14 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlResultList;
+
+import java.util.List;
+
+public interface UrlFinisher {
+
+ Message finish(Message> incomingMessageList);
+
+ void finishAsnyc(Message> incomingMessageList);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlPersistor.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlPersistor.java
new file mode 100644
index 00000000..030f5d95
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/UrlPersistor.java
@@ -0,0 +1,9 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+
+public interface UrlPersistor {
+
+ Message persistUrl(Message incomingUserMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrFetcherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrFetcherImpl.java
new file mode 100644
index 00000000..22751fb5
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrFetcherImpl.java
@@ -0,0 +1,45 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.urls.endpoint.services.UrFetcher;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterUrlService;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Url;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+
+@Component("mqUrFetcher")
+public class UrFetcherImpl implements UrFetcher {
+
+
+ @Override
+ public Message fetchUrl(Message incomingUserMessage) {
+ UrlMessage urlMessage =incomingUserMessage.getPayload();
+ Task task = taskService.findById(urlMessage.getTaskMessage().getTaskId());
+ String url = urlMessage.getUrlString();
+ Url foundUrl = twitterUrlService.fetchTransientUrl(url,task);
+ if((!foundUrl.isRawUrlsFromDescription()) && (foundUrl.isUrlAndExpandedTheSame())){
+ return urlMessageBuilder.createUrlMessage(incomingUserMessage, foundUrl);
+ } else {
+ boolean ignoreNextSteps = true;
+ return urlMessageBuilder.createUrlMessage(incomingUserMessage, ignoreNextSteps);
+ }
+ }
+
+
+ private final TaskService taskService;
+
+ private final UrlMessageBuilder urlMessageBuilder;
+
+ private final TwitterUrlService twitterUrlService;
+
+ @Autowired
+ public UrFetcherImpl(TaskService taskService, UrlMessageBuilder urlMessageBuilder, TwitterUrlService twitterUrlService) {
+ this.taskService = taskService;
+ this.urlMessageBuilder = urlMessageBuilder;
+ this.twitterUrlService = twitterUrlService;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlFinisherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlFinisherImpl.java
new file mode 100644
index 00000000..61ec5852
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlFinisherImpl.java
@@ -0,0 +1,68 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services.impl;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.urls.endpoint.services.UrlFinisher;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlResultList;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("mqUrlFinisher")
+public class UrlFinisherImpl implements UrlFinisher {
+
+
+ @Override
+ public Message finish(Message> incomingMessageList) {
+ List urlIdList = new ArrayList<>();
+ long taskId = 0L;
+ for(UrlMessage msg:incomingMessageList.getPayload()){
+ urlIdList.add(msg.getUrlId());
+ taskId = msg.getTaskMessage().getTaskId();
+ }
+ UrlResultList result = new UrlResultList(taskId,urlIdList);
+ Message mqMessageOut = MessageBuilder.withPayload(result)
+ .copyHeaders(incomingMessageList.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public void finishAsnyc(Message> incomingMessageList) {
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ long taskId = 0L;
+ for(UrlMessage msg:incomingMessageList.getPayload()){
+ taskId = msg.getTaskMessage().getTaskId();
+ break;
+ }
+ Task task = taskService.findById(taskId);
+ String msgDone = "Sucessfully finished task "+task.getTaskType()+" via MQ by FIRE_AND_FORGET_SENDER";
+ taskService.done(msgDone,task,countedEntities);
+ log.info(msgDone);
+ }
+
+ private final UrlMessageBuilder urlMessageBuilder;
+
+ private final TaskService taskService;
+
+ private final CountedEntitiesService countedEntitiesService;
+
+ private static final Logger log = LoggerFactory.getLogger(UrlFinisherImpl.class);
+
+ @Autowired
+ public UrlFinisherImpl(UrlMessageBuilder urlMessageBuilder, TaskService taskService, CountedEntitiesService countedEntitiesService) {
+ this.urlMessageBuilder = urlMessageBuilder;
+ this.taskService = taskService;
+ this.countedEntitiesService = countedEntitiesService;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlPersistorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlPersistorImpl.java
new file mode 100644
index 00000000..64f62f4c
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/services/impl/UrlPersistorImpl.java
@@ -0,0 +1,47 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.services.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.urls.endpoint.services.UrlPersistor;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessageBuilder;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Url;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.oodm.service.UrlService;
+
+@Component("mqUrlPersistor")
+public class UrlPersistorImpl implements UrlPersistor {
+
+ @Override
+ public Message persistUrl(Message incomingUserMessage) {
+
+ UrlMessage in =incomingUserMessage.getPayload();
+ Task task = taskService.findById(in.getTaskMessage().getTaskId());
+ if(in.isIgnoreNextSteps()){
+ return urlMessageBuilder.createUrlMessage(incomingUserMessage);
+ } else {
+ Url urlPers = urlService.findById(in.getUrlId());
+ urlPers.setExpanded(in.getExpanded());
+ urlPers.setDisplay(in.getDisplay());
+ urlPers.setUpdatedBy(task);
+ urlPers = urlService.update(urlPers,task);
+ return urlMessageBuilder.createUrlMessage(incomingUserMessage);
+ }
+ }
+
+ private final UrlService urlService;
+
+ private final TaskService taskService;
+
+ private final UrlMessageBuilder urlMessageBuilder;
+
+ @Autowired
+ public UrlPersistorImpl(UrlService urlService, TaskService taskService, UrlMessageBuilder urlMessageBuilder) {
+ this.urlService = urlService;
+ this.taskService = taskService;
+ this.urlMessageBuilder = urlMessageBuilder;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/UpdateUrls.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/UpdateUrls.java
new file mode 100644
index 00000000..b6508b47
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/UpdateUrls.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UrlSplitter;
+
+public interface UpdateUrls extends UrlSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/impl/UpdateUrlsImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/impl/UpdateUrlsImpl.java
new file mode 100644
index 00000000..e412efd4
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/endpoint/splitter/impl/UpdateUrlsImpl.java
@@ -0,0 +1,69 @@
+package org.woehlke.twitterwall.backend.mq.urls.endpoint.splitter.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.urls.endpoint.splitter.UpdateUrls;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.Url;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.oodm.service.UrlService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Component("mqUpdateUrls")
+public class UpdateUrlsImpl implements UpdateUrls {
+
+ @Override
+ public List> splitUrlMessage(Message incomingTaskMessage) {
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ List> messageListOut = new ArrayList<>();
+ TaskMessage taskMessage = incomingTaskMessage.getPayload();
+ long id = taskMessage.getTaskId();
+ Task task = taskService.findById(id);
+ task = taskService.start(task,countedEntities);
+
+ List foundRawUrlsFromDescription = urlService.findRawUrlsFromDescription();
+ for(Url url :foundRawUrlsFromDescription){
+ long urlId = url.getId();
+ String urlString = url.getUrl();
+ Message msg = urlMessageBuilder.createUrlMessage(incomingTaskMessage,urlId,urlString);
+ messageListOut.add(msg);
+ }
+
+ List foundUrlAndExpandedTheSame = urlService.findUrlAndExpandedTheSame();
+ for(Url url :foundUrlAndExpandedTheSame){
+ long urlId = url.getId();
+ String urlString = url.getUrl();
+ Message msg = urlMessageBuilder.createUrlMessage(incomingTaskMessage,urlId,urlString);
+ messageListOut.add(msg);
+ }
+
+ return null;
+ }
+
+
+
+ private final CountedEntitiesService countedEntitiesService;
+
+ private final UrlMessageBuilder urlMessageBuilder;
+
+ private final UrlService urlService;
+
+ private final TaskService taskService;
+
+ @Autowired
+ public UpdateUrlsImpl(CountedEntitiesService countedEntitiesService, UrlMessageBuilder urlMessageBuilder, UrlService urlService, TaskService taskService) {
+ this.countedEntitiesService = countedEntitiesService;
+ this.urlMessageBuilder = urlMessageBuilder;
+ this.urlService = urlService;
+ this.taskService = taskService;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessage.java
new file mode 100644
index 00000000..bc89a944
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessage.java
@@ -0,0 +1,106 @@
+package org.woehlke.twitterwall.backend.mq.urls.msg;
+
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+import java.io.Serializable;
+
+public class UrlMessage implements Serializable {
+
+ private final TaskMessage taskMessage;
+ private final long urlId;
+ private final String urlString;
+
+ private final String expanded;
+ private final String display;
+
+ private final boolean ignoreNextSteps;
+
+ public UrlMessage(TaskMessage taskMessage, long urlId, String urlString) {
+ this.taskMessage = taskMessage;
+ this.urlId = urlId;
+ this.urlString = urlString;
+ this.expanded = null;
+ this.display = null;
+ this.ignoreNextSteps = false;
+ }
+
+ public UrlMessage(TaskMessage taskMessage, long urlId, String urlString, String expanded, String display) {
+ this.taskMessage = taskMessage;
+ this.urlId = urlId;
+ this.urlString = urlString;
+ this.expanded = expanded;
+ this.display = display;
+ this.ignoreNextSteps = false;
+ }
+
+ public UrlMessage(TaskMessage taskMessage, long urlId, String urlString, boolean ignoreNextSteps) {
+ this.taskMessage = taskMessage;
+ this.urlId = urlId;
+ this.urlString = urlString;
+ this.expanded = null;
+ this.display = null;
+ this.ignoreNextSteps = ignoreNextSteps;
+ }
+
+ public TaskMessage getTaskMessage() {
+ return taskMessage;
+ }
+
+ public long getUrlId() {
+ return urlId;
+ }
+
+ public String getUrlString() {
+ return urlString;
+ }
+
+ public String getExpanded() {
+ return expanded;
+ }
+
+ public String getDisplay() {
+ return display;
+ }
+
+ public boolean isIgnoreNextSteps() {
+ return ignoreNextSteps;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof UrlMessage)) return false;
+
+ UrlMessage that = (UrlMessage) o;
+
+ if (urlId != that.urlId) return false;
+ if (ignoreNextSteps != that.ignoreNextSteps) return false;
+ if (taskMessage != null ? !taskMessage.equals(that.taskMessage) : that.taskMessage != null) return false;
+ if (urlString != null ? !urlString.equals(that.urlString) : that.urlString != null) return false;
+ if (expanded != null ? !expanded.equals(that.expanded) : that.expanded != null) return false;
+ return display != null ? display.equals(that.display) : that.display == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = taskMessage != null ? taskMessage.hashCode() : 0;
+ result = 31 * result + (int) (urlId ^ (urlId >>> 32));
+ result = 31 * result + (urlString != null ? urlString.hashCode() : 0);
+ result = 31 * result + (expanded != null ? expanded.hashCode() : 0);
+ result = 31 * result + (display != null ? display.hashCode() : 0);
+ result = 31 * result + (ignoreNextSteps ? 1 : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "UrlMessage{" +
+ "taskMessage=" + taskMessage +
+ ", urlId=" + urlId +
+ ", urlString='" + urlString + '\'' +
+ ", expanded='" + expanded + '\'' +
+ ", display='" + display + '\'' +
+ ", ignoreNextSteps=" + ignoreNextSteps +
+ '}';
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessageBuilder.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessageBuilder.java
new file mode 100644
index 00000000..01b33fd2
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlMessageBuilder.java
@@ -0,0 +1,16 @@
+package org.woehlke.twitterwall.backend.mq.urls.msg;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.oodm.model.Url;
+
+public interface UrlMessageBuilder {
+
+ Message createUrlMessage(Message incomingTaskMessage, long urlId, String urlString);
+
+ Message createUrlMessage(Message incomingUserMessage, Url foundUrl);
+
+ Message createUrlMessage(Message incomingUserMessage, boolean ignoreNextSteps);
+
+ Message createUrlMessage(Message incomingUserMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlResultList.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlResultList.java
new file mode 100644
index 00000000..84efa35f
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/UrlResultList.java
@@ -0,0 +1,51 @@
+package org.woehlke.twitterwall.backend.mq.urls.msg;
+
+import org.woehlke.twitterwall.oodm.model.Url;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class UrlResultList implements Serializable {
+
+ private final long taskId;
+ private final List urlIdList;
+
+ public UrlResultList(long taskId, List urlIdList) {
+ this.taskId = taskId;
+ this.urlIdList = urlIdList;
+ }
+
+ public long getTaskId() {
+ return taskId;
+ }
+
+ public List getUrlIdList() {
+ return urlIdList;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof UrlResultList)) return false;
+
+ UrlResultList that = (UrlResultList) o;
+
+ if (taskId != that.taskId) return false;
+ return urlIdList != null ? urlIdList.equals(that.urlIdList) : that.urlIdList == null;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = (int) (taskId ^ (taskId >>> 32));
+ result = 31 * result + (urlIdList != null ? urlIdList.hashCode() : 0);
+ return result;
+ }
+
+ @Override
+ public String toString() {
+ return "UrlResultList{" +
+ "taskId=" + taskId +
+ ", urlIdList=" + urlIdList +
+ '}';
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/impl/UrlMessageBuilderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/impl/UrlMessageBuilderImpl.java
new file mode 100644
index 00000000..0c25c206
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/urls/msg/impl/UrlMessageBuilderImpl.java
@@ -0,0 +1,55 @@
+package org.woehlke.twitterwall.backend.mq.urls.msg.impl;
+
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessage;
+import org.woehlke.twitterwall.backend.mq.urls.msg.UrlMessageBuilder;
+import org.woehlke.twitterwall.oodm.model.Url;
+
+@Component
+public class UrlMessageBuilderImpl implements UrlMessageBuilder {
+
+ @Override
+ public Message createUrlMessage(Message incomingTaskMessage, long urlId, String urlString) {
+ UrlMessage urlMessage = new UrlMessage(incomingTaskMessage.getPayload(),urlId,urlString);
+ Message mqMessageOut =
+ MessageBuilder.withPayload(urlMessage)
+ .copyHeaders(incomingTaskMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message createUrlMessage(Message incomingUrlMessage, Url foundUrl) {
+ UrlMessage in = incomingUrlMessage.getPayload();
+ UrlMessage out = new UrlMessage(in.getTaskMessage(),in.getUrlId(),in.getUrlString(),foundUrl.getExpanded(),foundUrl.getDisplay());
+ Message mqMessageOut =
+ MessageBuilder.withPayload(out)
+ .copyHeaders(incomingUrlMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message createUrlMessage(Message incomingUrlMessage, boolean ignoreNextSteps) {
+ UrlMessage in = incomingUrlMessage.getPayload();
+ UrlMessage out = new UrlMessage(in.getTaskMessage(),in.getUrlId(),in.getUrlString(),ignoreNextSteps);
+ Message mqMessageOut =
+ MessageBuilder.withPayload(out)
+ .copyHeaders(incomingUrlMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+ @Override
+ public Message createUrlMessage(Message incomingUrlMessage) {
+ Message mqMessageOut =
+ MessageBuilder.withPayload(incomingUrlMessage.getPayload())
+ .copyHeaders(incomingUrlMessage.getHeaders())
+ .build();
+ return mqMessageOut;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListFinisher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListFinisher.java
similarity index 54%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListFinisher.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListFinisher.java
index 36c247fc..89ecba81 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListFinisher.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListFinisher.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListResultList;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListResultList;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsFetcher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsFetcher.java
new file mode 100644
index 00000000..beef1ae4
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsFetcher.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator;
+
+public interface ListsFetcher {
+
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsPersistor.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsPersistor.java
similarity index 52%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsPersistor.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsPersistor.java
index bb2bd38d..6e39df39 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsPersistor.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsPersistor.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
public interface ListsPersistor {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsTransformator.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsTransformator.java
similarity index 53%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsTransformator.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsTransformator.java
index 9ec03d37..e6a2afde 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/ListsTransformator.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/ListsTransformator.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
public interface ListsTransformator {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListFinisherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListFinisherImpl.java
similarity index 72%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListFinisherImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListFinisherImpl.java
index 28771f65..9d74c2fd 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListFinisherImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListFinisherImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.impl;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,15 +6,16 @@
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.UserList;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.UserList;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.ListFinisher;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl.UserFinisherImpl;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListResultList;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.ListFinisher;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl.UserFinisherImpl;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListResultList;
import java.util.ArrayList;
import java.util.List;
@@ -22,7 +23,6 @@
@Component("mqUserListsFinisher")
public class ListFinisherImpl implements ListFinisher {
- //TODO: #252 https://github.com/phasenraum2010/twitterwall2/issues/252
@Override
public Message finish(Message> incomingMessageList) {
List resultList = new ArrayList<>();
@@ -39,7 +39,6 @@ public Message finish(Message> incomin
return mqMessageOut;
}
- //TODO: #252 https://github.com/phasenraum2010/twitterwall2/issues/252
@Override
public void finishAsnyc(Message> incomingMessageList) {
CountedEntities countedEntities = countedEntitiesService.countAll();
@@ -55,14 +54,17 @@ public void finishAsnyc(Message> incomingMessageList) {
}
@Autowired
- public ListFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService) {
+ public ListFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService, UserListMessageBuilder userListMessageBuilder) {
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
+ this.userListMessageBuilder = userListMessageBuilder;
}
private final TaskService taskService;
private final CountedEntitiesService countedEntitiesService;
+ private final UserListMessageBuilder userListMessageBuilder;
+
private static final Logger log = LoggerFactory.getLogger(UserFinisherImpl.class);
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsFetcherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsFetcherImpl.java
new file mode 100644
index 00000000..6dfa3961
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsFetcherImpl.java
@@ -0,0 +1,8 @@
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.impl;
+
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.ListsFetcher;
+
+@Component("mqListsFetcher")
+public class ListsFetcherImpl implements ListsFetcher {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsPersistorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsPersistorImpl.java
similarity index 71%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsPersistorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsPersistorImpl.java
index 5f7743d9..2a573ae4 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsPersistorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsPersistorImpl.java
@@ -1,15 +1,16 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.impl;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.UserList;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.UserList;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.UserListService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.ListsPersistor;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.ListsPersistor;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
@Component("mqUserListPersistor")
public class ListsPersistorImpl implements ListsPersistor {
@@ -18,10 +19,13 @@ public class ListsPersistorImpl implements ListsPersistor {
private final UserListService userListService;
+ private final UserListMessageBuilder userListMessageBuilder;
+
@Autowired
- public ListsPersistorImpl(TaskService taskService, UserListService userListService) {
+ public ListsPersistorImpl(TaskService taskService, UserListService userListService, UserListMessageBuilder userListMessageBuilder) {
this.taskService = taskService;
this.userListService = userListService;
+ this.userListMessageBuilder = userListMessageBuilder;
}
//TODO: #252 https://github.com/phasenraum2010/twitterwall2/issues/252
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsTransformatorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsTransformatorImpl.java
similarity index 62%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsTransformatorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsTransformatorImpl.java
index a2f0ac89..37d4d505 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/services/impl/ListsTransformatorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/serviceactivator/impl/ListsTransformatorImpl.java
@@ -1,14 +1,15 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.impl;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
+import org.woehlke.twitterwall.oodm.model.Task;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.services.ListsTransformator;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
-import org.woehlke.twitterwall.scheduled.service.transform.UserListTransformService;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.serviceactivator.ListsTransformator;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+import org.woehlke.twitterwall.backend.service.transform.UserListTransformService;
@Component("mqUserListTransformator")
public class ListsTransformatorImpl implements ListsTransformator {
@@ -17,10 +18,13 @@ public class ListsTransformatorImpl implements ListsTransformator {
private final UserListTransformService userListTransformService;
+ private final UserListMessageBuilder userListMessageBuilder;
+
@Autowired
- public ListsTransformatorImpl(TaskService taskService, UserListTransformService userListTransformService) {
+ public ListsTransformatorImpl(TaskService taskService, UserListTransformService userListTransformService, UserListMessageBuilder userListMessageBuilder) {
this.taskService = taskService;
this.userListTransformService = userListTransformService;
+ this.userListMessageBuilder = userListMessageBuilder;
}
//TODO: #252 https://github.com/phasenraum2010/twitterwall2/issues/252
@@ -28,7 +32,7 @@ public ListsTransformatorImpl(TaskService taskService, UserListTransformService
public Message transformList(Message incomingMessage) {
long taskId = incomingMessage.getPayload().getTaskMessage().getTaskId();
Task task = taskService.findById(taskId);
- org.woehlke.twitterwall.oodm.entities.UserList userListOut = userListTransformService.transform(incomingMessage.getPayload().getUserListTwitter(),task);
+ org.woehlke.twitterwall.oodm.model.UserList userListOut = userListTransformService.transform(incomingMessage.getPayload().getUserListTwitter(),task);
UserListMessage retVal = new UserListMessage(incomingMessage.getPayload().getTaskMessage(),incomingMessage.getPayload().getUserListTwitter(),userListOut);
Message mqMessageOut = MessageBuilder.withPayload(retVal)
.copyHeaders(incomingMessage.getHeaders())
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/FetchUserListsForUsers.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/FetchUserListsForUsers.java
new file mode 100644
index 00000000..2c0aa456
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/FetchUserListsForUsers.java
@@ -0,0 +1,14 @@
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter;
+
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+
+import java.util.List;
+
+public interface FetchUserListsForUsers {
+
+ List> splitUserListMessage(Message incomingTaskMessage);
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/ListsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/ListsSplitter.java
new file mode 100644
index 00000000..72e05e14
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/ListsSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserListsSplitter;
+
+public interface ListsSplitter extends UserListsSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/FetchUserListsForUsersImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/FetchUserListsForUsersImpl.java
new file mode 100644
index 00000000..43d7d458
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/FetchUserListsForUsersImpl.java
@@ -0,0 +1,44 @@
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter.FetchUserListsForUsers;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.oodm.service.UserService;
+
+import java.util.List;
+
+@Component("mqFetchUserListsForUsers")
+public class FetchUserListsForUsersImpl implements FetchUserListsForUsers {
+
+
+ @Override
+ public List> splitUserListMessage(Message incomingTaskMessage) {
+ return null;
+ }
+
+ private final TwitterApiService twitterApiService;
+
+ private final TaskService taskService;
+
+ private final UserService userService;
+
+ private final CountedEntitiesService countedEntitiesService;
+
+ private final UserListMessageBuilder userListMessageBuilder;
+
+ @Autowired
+ public FetchUserListsForUsersImpl(TwitterApiService twitterApiService, TaskService taskService, UserService userService, CountedEntitiesService countedEntitiesService, UserListMessageBuilder userListMessageBuilder) {
+ this.twitterApiService = twitterApiService;
+ this.taskService = taskService;
+ this.userService = userService;
+ this.countedEntitiesService = countedEntitiesService;
+ this.userListMessageBuilder = userListMessageBuilder;
+ }
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/splitter/impl/ListsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/ListsSplitterImpl.java
similarity index 63%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/splitter/impl/ListsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/ListsSplitterImpl.java
index 75fc743d..cc3ffb05 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/userlist/splitter/impl/ListsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/endpoint/splitter/impl/ListsSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.UserList;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.userlist.splitter.ListsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserListMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.userlist.endpoint.splitter.ListsSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,17 +26,16 @@ public class ListsSplitterImpl implements ListsSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserListMessageBuilder userListMessageBuilder;
@Autowired
- public ListsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public ListsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, UserListMessageBuilder userListMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userListMessageBuilder = userListMessageBuilder;
}
- //TODO: #252 https://github.com/phasenraum2010/twitterwall2/issues/252
@Override
public List> splitUserListMessage(Message incomingTaskMessage) {
CountedEntities countedEntities = countedEntitiesService.countAll();
@@ -50,7 +49,7 @@ public List> splitUserListMessage(Message
int loopAll = fetchedUserList.size();
for (UserList userList: fetchedUserList) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildUserListMessage(incomingTaskMessage,userList,loopId,loopAll);
+ Message mqMessageOut = userListMessageBuilder.buildUserListMessage(incomingTaskMessage,userList,loopId,loopAll);
messageListOut.add(mqMessageOut);
}
return messageListOut;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListMessage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessage.java
similarity index 87%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListMessage.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessage.java
index a2042eb8..36f3ae7b 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListMessage.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessage.java
@@ -1,6 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.msg;
+package org.woehlke.twitterwall.backend.mq.userlist.msg;
import org.springframework.social.twitter.api.UserList;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
import java.io.Serializable;
@@ -8,7 +9,7 @@ public class UserListMessage implements Serializable {
private final TaskMessage taskMessage;
private final org.springframework.social.twitter.api.UserList userListTwitter;
- private final org.woehlke.twitterwall.oodm.entities.UserList userList;
+ private final org.woehlke.twitterwall.oodm.model.UserList userList;
private final long idTwitter;
public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, long idTwitter) {
@@ -18,7 +19,7 @@ public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, long i
this.userList = null;
}
- public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, org.woehlke.twitterwall.oodm.entities.UserList userList, long idTwitter) {
+ public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, org.woehlke.twitterwall.oodm.model.UserList userList, long idTwitter) {
this.taskMessage = taskMessage;
this.userListTwitter = userListTwitter;
this.userList = userList;
@@ -32,7 +33,7 @@ public UserListMessage(TaskMessage taskMessage, UserList userListTwitter) {
this.idTwitter = userListTwitter.getId();
}
- public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, org.woehlke.twitterwall.oodm.entities.UserList userListOut) {
+ public UserListMessage(TaskMessage taskMessage, UserList userListTwitter, org.woehlke.twitterwall.oodm.model.UserList userListOut) {
this.taskMessage = taskMessage;
this.userListTwitter = userListTwitter;
this.userList = userListOut;
@@ -47,7 +48,7 @@ public UserList getUserListTwitter() {
return userListTwitter;
}
- public org.woehlke.twitterwall.oodm.entities.UserList getUserList() {
+ public org.woehlke.twitterwall.oodm.model.UserList getUserList() {
return userList;
}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessageBuilder.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessageBuilder.java
new file mode 100644
index 00000000..f463babd
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListMessageBuilder.java
@@ -0,0 +1,11 @@
+package org.woehlke.twitterwall.backend.mq.userlist.msg;
+
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.UserList;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+
+public interface UserListMessageBuilder {
+
+ Message buildUserListMessage(Message incomingTaskMessage, UserList userList, int loopId, int loopAll);
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListResultList.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListResultList.java
similarity index 91%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListResultList.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListResultList.java
index 50c99f0d..bc24b36a 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/msg/UserListResultList.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/UserListResultList.java
@@ -1,6 +1,6 @@
-package org.woehlke.twitterwall.scheduled.mq.msg;
+package org.woehlke.twitterwall.backend.mq.userlist.msg;
-import org.woehlke.twitterwall.oodm.entities.UserList;
+import org.woehlke.twitterwall.oodm.model.UserList;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/impl/UserListMessageBuilderImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/impl/UserListMessageBuilderImpl.java
new file mode 100644
index 00000000..1dbc6454
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/userlist/msg/impl/UserListMessageBuilderImpl.java
@@ -0,0 +1,26 @@
+package org.woehlke.twitterwall.backend.mq.userlist.msg.impl;
+
+import org.springframework.integration.support.MessageBuilder;
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.UserList;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+
+@Component
+public class UserListMessageBuilderImpl implements UserListMessageBuilder {
+
+ @Override
+ public Message buildUserListMessage(Message incomingTaskMessage, UserList userList, int loopId, int loopAll) {
+ UserListMessage outputPayload = new UserListMessage(incomingTaskMessage.getPayload(),userList);
+ Message mqMessageOut =
+ MessageBuilder.withPayload(outputPayload)
+ .copyHeaders(incomingTaskMessage.getHeaders())
+ .setHeader("loop_id",loopId)
+ .setHeader("loop_all",loopAll)
+ .build();
+ return mqMessageOut;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/CreateImprintUser.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/CreateImprintUser.java
new file mode 100644
index 00000000..73400813
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/CreateImprintUser.java
@@ -0,0 +1,10 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator;
+
+import org.springframework.messaging.Message;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+
+public interface CreateImprintUser {
+
+ Message createImprintUser(Message mqMessage);
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserCheckStorage.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserCheckStorage.java
similarity index 54%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserCheckStorage.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserCheckStorage.java
index ec395a33..41d6d488 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserCheckStorage.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserCheckStorage.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
public interface UserCheckStorage {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserFinisher.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserFinisher.java
similarity index 61%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserFinisher.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserFinisher.java
index 0b62952f..4671b35f 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserFinisher.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserFinisher.java
@@ -1,8 +1,8 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserResultList;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserResultList;
import java.util.List;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserPersistor.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserPersistor.java
similarity index 53%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserPersistor.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserPersistor.java
index e4c47799..8a566888 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserPersistor.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserPersistor.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
public interface UserPersistor {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserTransformator.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserTransformator.java
similarity index 53%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserTransformator.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserTransformator.java
index 1b5ac220..cb5eee40 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/UserTransformator.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/UserTransformator.java
@@ -1,7 +1,7 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator;
import org.springframework.messaging.Message;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
public interface UserTransformator {
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/CreateImprintUserImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/CreateImprintUserImpl.java
similarity index 63%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/CreateImprintUserImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/CreateImprintUserImpl.java
index 46914e44..610035d0 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/CreateImprintUserImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/CreateImprintUserImpl.java
@@ -1,19 +1,19 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.FrontendProperties;
-import org.woehlke.twitterwall.oodm.entities.User;
+import org.woehlke.twitterwall.configuration.properties.FrontendProperties;
+import org.woehlke.twitterwall.oodm.model.User;
import org.woehlke.twitterwall.oodm.service.UserService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.CreateImprintUser;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.CreateImprintUser;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
-import static org.woehlke.twitterwall.ScheduledTasks.TWELVE_HOURS;
+import static org.woehlke.twitterwall.CronJobs.TWELVE_HOURS;
@Component("mqCreateImprintUser")
public class CreateImprintUserImpl implements CreateImprintUser {
@@ -24,14 +24,14 @@ public class CreateImprintUserImpl implements CreateImprintUser {
private final UserService userService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserMessageBuilder userMessageBuilder;
@Autowired
- public CreateImprintUserImpl(TwitterApiService twitterApiService, FrontendProperties frontendProperties, UserService userService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public CreateImprintUserImpl(TwitterApiService twitterApiService, FrontendProperties frontendProperties, UserService userService, UserMessageBuilder userMessageBuilder) {
this.twitterApiService = twitterApiService;
this.frontendProperties = frontendProperties;
this.userService = userService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -44,7 +44,7 @@ public Message createImprintUser(Message mqMessageIn)
return this.getMessageOut(mqMessageIn);
} else {
if (imprintUser.getTaskBasedCaching().isCached(receivedMessage.getTaskType(), TWELVE_HOURS)) {
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(mqMessageIn,imprintUser);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(mqMessageIn,imprintUser);
return mqMessageOut;
} else {
return this.getMessageOut(mqMessageIn);
@@ -55,7 +55,7 @@ public Message createImprintUser(Message mqMessageIn)
private Message getMessageOut(Message mqMessageIn){
String screenName = frontendProperties.getImprintScreenName();
TwitterProfile twitterProfile = twitterApiService.getUserProfileForScreenName(screenName);
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(mqMessageIn,twitterProfile);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(mqMessageIn,twitterProfile);
return mqMessageOut;
}
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserCheckStorageImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserCheckStorageImpl.java
similarity index 57%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserCheckStorageImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserCheckStorageImpl.java
index 8acda58c..96b1f4ad 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserCheckStorageImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserCheckStorageImpl.java
@@ -1,14 +1,14 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Component;
import org.woehlke.twitterwall.oodm.service.UserService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.UserCheckStorage;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.UserCheckStorage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
@Component("mqUserCheckStorage")
public class UserCheckStorageImpl implements UserCheckStorage {
@@ -17,13 +17,13 @@ public class UserCheckStorageImpl implements UserCheckStorage {
private final TwitterApiService twitterApiService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserMessageBuilder userMessageBuilder;
@Autowired
- public UserCheckStorageImpl(UserService userService, TwitterApiService twitterApiService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public UserCheckStorageImpl(UserService userService, TwitterApiService twitterApiService, UserMessageBuilder userMessageBuilder) {
this.userService = userService;
this.twitterApiService = twitterApiService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -32,16 +32,16 @@ public Message checkIfUserIsInStorage(Message incoming
long userIdTwitter = receivedMessage.getTwitterProfileId();
boolean isInStorage = userService.isByIdTwitter(userIdTwitter);
if(isInStorage){
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingMessage,isInStorage);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(incomingMessage,isInStorage);
return mqMessageOut;
} else {
TwitterProfile twitterProfile = twitterApiService.getUserProfileForTwitterId(userIdTwitter);
if(twitterProfile == null){
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingMessage,isInStorage);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(incomingMessage,isInStorage);
return mqMessageOut;
} else {
boolean ignoreTransformation = false;
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingMessage, twitterProfile, ignoreTransformation);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(incomingMessage, twitterProfile, ignoreTransformation);
return mqMessageOut;
}
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserFinisherImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserFinisherImpl.java
similarity index 79%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserFinisherImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserFinisherImpl.java
index ac93b315..0f078e16 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserFinisherImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserFinisherImpl.java
@@ -1,4 +1,4 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -6,13 +6,14 @@
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.UserFinisher;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserResultList;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.UserFinisher;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserResultList;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
@@ -64,14 +65,17 @@ public void finishOneUserAsnyc(Message incomingMessage) {
}
@Autowired
- public UserFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService) {
+ public UserFinisherImpl(TaskService taskService, CountedEntitiesService countedEntitiesService, UserMessageBuilder userMessageBuilder) {
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
+ this.userMessageBuilder = userMessageBuilder;
}
private final TaskService taskService;
private final CountedEntitiesService countedEntitiesService;
+ private final UserMessageBuilder userMessageBuilder;
+
private static final Logger log = LoggerFactory.getLogger(UserFinisherImpl.class);
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserPersistorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserPersistorImpl.java
similarity index 72%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserPersistorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserPersistorImpl.java
index a6ccbc1e..3840b1c9 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserPersistorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserPersistorImpl.java
@@ -1,15 +1,16 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.persist.StoreUserProcess;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.UserPersistor;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.persist.StoreUserProcess;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.UserPersistor;
@Component("mqUserPersistor")
public class UserPersistorImpl implements UserPersistor {
@@ -18,10 +19,13 @@ public class UserPersistorImpl implements UserPersistor {
private final StoreUserProcess storeUserProcess;
+ private final UserMessageBuilder userMessageBuilder;
+
@Autowired
- public UserPersistorImpl(TaskService taskService, StoreUserProcess storeUserProcess) {
+ public UserPersistorImpl(TaskService taskService, StoreUserProcess storeUserProcess, UserMessageBuilder userMessageBuilder) {
this.taskService = taskService;
this.storeUserProcess = storeUserProcess;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -42,7 +46,7 @@ public Message persistUser(Message incomingUserMessage
UserMessage mqMessageOut = new UserMessage(
receivedMessage.getTaskMessage(),
receivedMessage.getTwitterProfile(),
- user
+ userPers
);
return MessageBuilder.withPayload(mqMessageOut)
.copyHeaders(incomingUserMessage.getHeaders())
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserTransformatorImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserTransformatorImpl.java
similarity index 73%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserTransformatorImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserTransformatorImpl.java
index 14699fcd..050e4135 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/services/impl/UserTransformatorImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/serviceactivator/impl/UserTransformatorImpl.java
@@ -1,15 +1,16 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.integration.support.MessageBuilder;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.service.transform.UserTransformService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.services.UserTransformator;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.transform.UserTransformService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.serviceactivator.UserTransformator;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
@Component("mqUserTransformator")
public class UserTransformatorImpl implements UserTransformator {
@@ -18,10 +19,13 @@ public class UserTransformatorImpl implements UserTransformator {
private final TaskService taskService;
+ private final UserMessageBuilder userMessageBuilder;
+
@Autowired
- public UserTransformatorImpl(UserTransformService userTransformService, TaskService taskService) {
+ public UserTransformatorImpl(UserTransformService userTransformService, TaskService taskService, UserMessageBuilder userMessageBuilder) {
this.userTransformService = userTransformService;
this.taskService = taskService;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/CreateTestDataUsersSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/CreateTestDataUsersSplitter.java
new file mode 100644
index 00000000..2402d1f0
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/CreateTestDataUsersSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface CreateTestDataUsersSplitter extends UserSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFollowerSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFollowerSplitter.java
new file mode 100644
index 00000000..0ee7d3b9
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFollowerSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface FetchFollowerSplitter extends UserSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFriendsSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFriendsSplitter.java
new file mode 100644
index 00000000..46a5a21e
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchFriendsSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface FetchFriendsSplitter extends UserSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchListsForUsers.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchListsForUsers.java
new file mode 100644
index 00000000..0df3709a
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchListsForUsers.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface FetchListsForUsers extends UserSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUserlistOwnersSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUserlistOwnersSplitter.java
new file mode 100644
index 00000000..baee7936
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUserlistOwnersSplitter.java
@@ -0,0 +1,6 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface FetchUserlistOwnersSplitter extends UserSplitter {
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUsersFromListSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUsersFromListSplitter.java
new file mode 100644
index 00000000..a87ef53b
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/FetchUsersFromListSplitter.java
@@ -0,0 +1,8 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface FetchUsersFromListSplitter extends UserSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/UpdateUsersSplitter.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/UpdateUsersSplitter.java
new file mode 100644
index 00000000..a564a08f
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/UpdateUsersSplitter.java
@@ -0,0 +1,7 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter;
+
+import org.woehlke.twitterwall.backend.mq.common.UserSplitter;
+
+public interface UpdateUsersSplitter extends UserSplitter {
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/CreateTestDataUsersSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/CreateTestDataUsersSplitterImpl.java
similarity index 68%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/CreateTestDataUsersSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/CreateTestDataUsersSplitterImpl.java
index 7c25667f..bab673fc 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/CreateTestDataUsersSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/CreateTestDataUsersSplitterImpl.java
@@ -1,25 +1,25 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.impl;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.TwitterProfile;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.conf.properties.TestdataProperties;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.User;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.configuration.properties.TestdataProperties;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.TaskService;
import org.woehlke.twitterwall.oodm.service.UserService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.CreateTestDataUsersSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.CreateTestDataUsersSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import java.util.ArrayList;
import java.util.List;
-import static org.woehlke.twitterwall.ScheduledTasks.TWELVE_HOURS;
+import static org.woehlke.twitterwall.CronJobs.TWELVE_HOURS;
@Component("mqCreateTestDataForUsersSplitter")
public class CreateTestDataUsersSplitterImpl implements CreateTestDataUsersSplitter {
@@ -34,15 +34,15 @@ public class CreateTestDataUsersSplitterImpl implements CreateTestDataUsersSplit
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserMessageBuilder userMessageBuilder;
- public CreateTestDataUsersSplitterImpl(TestdataProperties testdataProperties, TwitterApiService twitterApiService, TaskService taskService, UserService userService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public CreateTestDataUsersSplitterImpl(TestdataProperties testdataProperties, TwitterApiService twitterApiService, TaskService taskService, UserService userService, CountedEntitiesService countedEntitiesService, UserMessageBuilder userMessageBuilder) {
this.testdataProperties = testdataProperties;
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.userService = userService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -64,13 +64,14 @@ public List> splitUserMessage(Message incoming
fetchFromTwitterApi=true;
} else {
fetchFromTwitterApi=!userPers.getTaskBasedCaching().isCached(task.getTaskType(), TWELVE_HOURS);
+ userPers = userService.store(userPers,task);
}
Message outgoingMessage;
if(fetchFromTwitterApi){
TwitterProfile userProfile = twitterApiService.getUserProfileForScreenName(screenName);
- outgoingMessage = twitterwallMessageBuilder.buildUserMessage(incomingTaskMessage,userProfile,loopId,loopAll);
+ outgoingMessage = userMessageBuilder.buildUserMessage(incomingTaskMessage,userProfile,loopId,loopAll);
} else {
- outgoingMessage = twitterwallMessageBuilder.buildUserMessage(incomingTaskMessage,userPers,loopId,loopAll);
+ outgoingMessage = userMessageBuilder.buildUserMessage(incomingTaskMessage,userPers,loopId,loopAll);
}
userProfileList.add(outgoingMessage);
}
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFollowerSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFollowerSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFollowerSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFollowerSplitterImpl.java
index f1c8eede..c7f770e4 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFollowerSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFollowerSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.CursoredList;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.FetchFollowerSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.FetchFollowerSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class FetchFollowerSplitterImpl implements FetchFollowerSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserMessageBuilder userMessageBuilder;
@Autowired
- public FetchFollowerSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public FetchFollowerSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, UserMessageBuilder userMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitUserMessage(Message incoming
int loopAll = foundTwitterProfiles.size();
for (Long twitterProfileId : foundTwitterProfiles) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingTaskMessage,twitterProfileId,loopId,loopAll);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(incomingTaskMessage,twitterProfileId,loopId,loopAll);
userProfileList.add(mqMessageOut);
}
return userProfileList;
diff --git a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFriendsSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFriendsSplitterImpl.java
similarity index 65%
rename from src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFriendsSplitterImpl.java
rename to src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFriendsSplitterImpl.java
index 64d540ea..1904263b 100644
--- a/src/main/java/org/woehlke/twitterwall/scheduled/mq/endpoint/users/splitter/impl/FetchFriendsSplitterImpl.java
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchFriendsSplitterImpl.java
@@ -1,18 +1,18 @@
-package org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.impl;
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.Message;
import org.springframework.social.twitter.api.CursoredList;
import org.springframework.stereotype.Component;
-import org.woehlke.twitterwall.oodm.entities.Task;
-import org.woehlke.twitterwall.oodm.entities.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
import org.woehlke.twitterwall.oodm.service.TaskService;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.users.splitter.FetchFriendsSplitter;
-import org.woehlke.twitterwall.scheduled.mq.endpoint.common.TwitterwallMessageBuilder;
-import org.woehlke.twitterwall.scheduled.mq.msg.TaskMessage;
-import org.woehlke.twitterwall.scheduled.mq.msg.UserMessage;
-import org.woehlke.twitterwall.scheduled.service.remote.TwitterApiService;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.FetchFriendsSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
import java.util.ArrayList;
import java.util.List;
@@ -26,14 +26,14 @@ public class FetchFriendsSplitterImpl implements FetchFriendsSplitter {
private final CountedEntitiesService countedEntitiesService;
- private final TwitterwallMessageBuilder twitterwallMessageBuilder;
+ private final UserMessageBuilder userMessageBuilder;
@Autowired
- public FetchFriendsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, TwitterwallMessageBuilder twitterwallMessageBuilder) {
+ public FetchFriendsSplitterImpl(TwitterApiService twitterApiService, TaskService taskService, CountedEntitiesService countedEntitiesService, UserMessageBuilder userMessageBuilder) {
this.twitterApiService = twitterApiService;
this.taskService = taskService;
this.countedEntitiesService = countedEntitiesService;
- this.twitterwallMessageBuilder = twitterwallMessageBuilder;
+ this.userMessageBuilder = userMessageBuilder;
}
@Override
@@ -49,7 +49,7 @@ public List> splitUserMessage(Message incoming
int loopAll = foundUserProfiles.size();
for (Long twitterUserId : foundUserProfiles) {
loopId++;
- Message mqMessageOut = twitterwallMessageBuilder.buildUserMessage(incomingTaskMessage,twitterUserId,loopId,loopAll);
+ Message mqMessageOut = userMessageBuilder.buildUserMessage(incomingTaskMessage,twitterUserId,loopId,loopAll);
userProfileList.add(mqMessageOut);
}
return userProfileList;
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchListsForUsersImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchListsForUsersImpl.java
new file mode 100644
index 00000000..f2b21f3b
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchListsForUsersImpl.java
@@ -0,0 +1,41 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.messaging.Message;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.userlist.msg.UserListMessageBuilder;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.FetchListsForUsers;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.oodm.service.UserService;
+
+import java.util.List;
+
+@Component("mqFetchListsForUsers")
+public class FetchListsForUsersImpl implements FetchListsForUsers {
+
+
+ @Override
+ public List> splitUserMessage(Message incomingTaskMessage) {
+ return null;
+ }
+
+ private final TaskService taskService;
+
+ private final UserService userService;
+
+ private final CountedEntitiesService countedEntitiesService;
+
+ private final UserListMessageBuilder userListMessageBuilder;
+
+ @Autowired
+ public FetchListsForUsersImpl(TaskService taskService, UserService userService, CountedEntitiesService countedEntitiesService, UserListMessageBuilder userListMessageBuilder) {
+ this.taskService = taskService;
+ this.userService = userService;
+ this.countedEntitiesService = countedEntitiesService;
+ this.userListMessageBuilder = userListMessageBuilder;
+ }
+
+}
diff --git a/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchUserlistOwnersSplitterImpl.java b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchUserlistOwnersSplitterImpl.java
new file mode 100644
index 00000000..87dec23d
--- /dev/null
+++ b/src/main/java/org/woehlke/twitterwall/backend/mq/users/endpoint/splitter/impl/FetchUserlistOwnersSplitterImpl.java
@@ -0,0 +1,110 @@
+package org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.impl;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.messaging.Message;
+import org.springframework.social.twitter.api.TwitterProfile;
+import org.springframework.stereotype.Component;
+import org.woehlke.twitterwall.configuration.properties.TwitterProperties;
+import org.woehlke.twitterwall.oodm.model.Task;
+import org.woehlke.twitterwall.oodm.model.User;
+import org.woehlke.twitterwall.oodm.model.UserList;
+import org.woehlke.twitterwall.oodm.model.parts.CountedEntities;
+import org.woehlke.twitterwall.oodm.service.CountedEntitiesService;
+import org.woehlke.twitterwall.oodm.service.TaskService;
+import org.woehlke.twitterwall.oodm.service.UserListService;
+import org.woehlke.twitterwall.oodm.service.UserService;
+import org.woehlke.twitterwall.backend.mq.mentions.endpoint.splitter.impl.UpdateUsersFromMentionsSplitterImpl;
+import org.woehlke.twitterwall.backend.mq.users.endpoint.splitter.FetchUserlistOwnersSplitter;
+import org.woehlke.twitterwall.backend.mq.tasks.TaskMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessage;
+import org.woehlke.twitterwall.backend.mq.users.msg.UserMessageBuilder;
+import org.woehlke.twitterwall.backend.service.remote.TwitterApiService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.woehlke.twitterwall.frontend.content.ContentFactory.FIRST_PAGE_NUMBER;
+
+@Component("mqFetchUserlistOwnersSplitter")
+public class FetchUserlistOwnersSplitterImpl implements FetchUserlistOwnersSplitter {
+
+
+
+ @Override
+ public List> splitUserMessage(Message incomingTaskMessage) {
+ String msg ="splitTweetMessage: ";
+ log.debug(msg+ " START");
+ CountedEntities countedEntities = countedEntitiesService.countAll();
+ TaskMessage msgIn = incomingTaskMessage.getPayload();
+ long id = msgIn.getTaskId();
+ Task task = taskService.findById(id);
+ task = taskService.start(task,countedEntities);
+ List