aboutsummaryrefslogtreecommitdiff
path: root/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-ws/src/main/java/com/juick/ws/components/PushComponent.java')
-rw-r--r--juick-ws/src/main/java/com/juick/ws/components/PushComponent.java41
1 files changed, 16 insertions, 25 deletions
diff --git a/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java b/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java
index 7be2f797..5c4fc969 100644
--- a/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java
+++ b/juick-ws/src/main/java/com/juick/ws/components/PushComponent.java
@@ -59,6 +59,7 @@ import java.net.Socket;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import java.util.concurrent.ExecutorService;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.stream.Collectors;
@@ -68,33 +69,30 @@ import java.util.stream.Collectors;
* @author Ugnich Anton
*/
@Component
-public class PushComponent implements JuickComponent, DisposableBean, Stream.StreamListener, MessageListener {
+public class PushComponent implements DisposableBean, Stream.StreamListener, MessageListener {
private static Logger logger = Logger.getLogger(PushComponent.class.getName());
String wns_application_sip;
String wns_client_secret;
- JdbcTemplate sql;
+ @Inject
+ JdbcTemplate jdbc;
Socket socket;
Stream xmpp;
Sender GCMSender;
+ ExecutorService service;
@Inject
- public PushComponent(Environment env) {
+ public PushComponent(Environment env, ExecutorService service) {
+ this.service = service;
logger.info("component initialized");
wns_application_sip = env.getProperty("wns_application_sip", "");
wns_client_secret = env.getProperty("wns_client_secret", "");
GCMSender = new Sender(env.getProperty("gcm_key", ""));
- setupSql(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), env.getProperty("datasource_url", ""));
setupXmppComponent(new JID("", env.getProperty("push_jid"), ""), env.getProperty("xmpp_host", "localhost"),
NumberUtils.toInt(env.getProperty("xmpp_port", ""), 5347), env.getProperty("push_xmpp_password", ""));
- }
-
- @Async
- @Override
- public void init() {
- xmpp.startParsing();
+ service.submit(() -> xmpp.startParsing());
}
@Override
@@ -102,13 +100,6 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str
logger.info("component destroyed");
}
- public void setupSql(String driver, String url) {
- DriverManagerDataSource dataSource = new DriverManagerDataSource();
- dataSource.setDriverClassName(driver);
- dataSource.setUrl(url);
- sql = new JdbcTemplate(dataSource);
- }
-
public void setupXmppComponent(JID jid, String host, int port, String password) {
try {
socket = new Socket(host, port);
@@ -141,21 +132,21 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str
} else {
if (isReply) {
subscribedUsers =
- SubscriptionsQueries.getUsersSubscribedToComments(sql, jmsg.getMID(), jmsg.getUser().getUID());
+ SubscriptionsQueries.getUsersSubscribedToComments(jdbc, jmsg.getMID(), jmsg.getUser().getUID());
} else {
// new message
- subscribedUsers = SubscriptionsQueries.getSubscribedUsers(sql, jmsg.getUser().getUID(), jmsg.getMID());
+ subscribedUsers = SubscriptionsQueries.getSubscribedUsers(jdbc, jmsg.getUser().getUID(), jmsg.getMID());
}
}
/*** ANDROID ***/
final List<String> regids = new ArrayList<>();
if (isPM) {
- regids.addAll(PushQueries.getAndroidRegID(sql, pmTo));
+ regids.addAll(PushQueries.getAndroidRegID(jdbc, pmTo));
} else {
List<Integer> uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList());
if (uids.size() > 0) {
- regids.addAll(PushQueries.getAndroidTokens(sql, uids));
+ regids.addAll(PushQueries.getAndroidTokens(jdbc, uids));
}
}
@@ -182,11 +173,11 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str
/*** WinPhone ***/
final List<String> urls = new ArrayList<>();
if (isPM) {
- urls.addAll(PushQueries.getWinPhoneURL(sql, pmTo));
+ urls.addAll(PushQueries.getWinPhoneURL(jdbc, pmTo));
} else {
List<Integer> uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList());
if (uids.size() > 0) {
- urls.addAll(PushQueries.getWindowsTokens(sql, uids));
+ urls.addAll(PushQueries.getWindowsTokens(jdbc, uids));
}
}
@@ -227,11 +218,11 @@ public class PushComponent implements JuickComponent, DisposableBean, Stream.Str
/*** iOS ***/
final List<String> tokens = new ArrayList<>();
if (isPM) {
- tokens.addAll(PushQueries.getAPNSToken(sql, pmTo));
+ tokens.addAll(PushQueries.getAPNSToken(jdbc, pmTo));
} else {
List<Integer> uids = subscribedUsers.stream().map(com.juick.User::getUID).collect(Collectors.toList());
if (uids.size() > 0) {
- tokens.addAll(PushQueries.getAPNSTokens(sql, uids));
+ tokens.addAll(PushQueries.getAPNSTokens(jdbc, uids));
}
}
if (!tokens.isEmpty()) {