aboutsummaryrefslogtreecommitdiff
path: root/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java
diff options
context:
space:
mode:
Diffstat (limited to 'juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java')
-rw-r--r--juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java33
1 files changed, 11 insertions, 22 deletions
diff --git a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java
index 8cda122e..dcb4a709 100644
--- a/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java
+++ b/juick-ws/src/main/java/com/juick/ws/components/CrosspostComponent.java
@@ -27,11 +27,9 @@ import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.DisposableBean;
-import org.springframework.beans.factory.InitializingBean;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
-import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;
import javax.crypto.Mac;
@@ -44,6 +42,7 @@ import java.net.URL;
import java.net.URLEncoder;
import java.security.Key;
import java.util.UUID;
+import java.util.concurrent.ExecutorService;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -52,51 +51,41 @@ import java.util.logging.Logger;
* @author Ugnich Anton
*/
@Component
-public class CrosspostComponent implements JuickComponent, DisposableBean, Stream.StreamListener, Message.MessageListener {
+public class CrosspostComponent implements DisposableBean, Stream.StreamListener, Message.MessageListener {
private static Logger logger = Logger.getLogger(CrosspostComponent.class.getName());
public final static String TWITTERURL = "https://api.twitter.com/1.1/statuses/update.json";
public final static String FBURL = "https://graph.facebook.com/me/feed";
public final static String VKURL = "https://api.vk.com/method/wall.post";
- JdbcTemplate sql;
+ @Inject
+ JdbcTemplate jdbc;
Stream xmpp;
String twitter_consumer_key;
String twitter_consumer_secret;
+ ExecutorService service;
@Inject
- public CrosspostComponent(Environment env) {
+ public CrosspostComponent(Environment env, ExecutorService service) {
+ this.service = service;
logger.info("component initialized");
try {
twitter_consumer_key = env.getProperty("twitter_consumer_key", "");
twitter_consumer_secret = env.getProperty("twitter_consumer_secret", "");
- setupSql(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver"), env.getProperty("datasource_url", ""));
setupXmppComponent(env.getProperty("crosspost_jid", "crosspost.juick.local"),
env.getProperty("xmpp_password", ""), NumberUtils.toInt(env.getProperty("xmpp_port", ""), 5347));
+ service.submit(() -> xmpp.startParsing());
} catch (Exception e) {
logger.log(Level.SEVERE, e.getMessage(), e);
}
}
- @Async
- @Override
- public void init() {
- xmpp.startParsing();
- }
-
@Override
public void destroy() {
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(String jid, String password, int port) {
try {
Socket socket = new Socket("localhost", port);
@@ -131,7 +120,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea
}
public boolean facebookPost(com.juick.Message jmsg) {
- String token = CrosspostQueries.getFacebookToken(sql, jmsg.getUser().getUID()).orElse("");
+ String token = CrosspostQueries.getFacebookToken(jdbc, jmsg.getUser().getUID()).orElse("");
if (token.isEmpty()) {
return false;
}
@@ -168,7 +157,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea
}
public boolean vkontaktePost(com.juick.Message jmsg) {
- Pair<String, String> tokens = CrosspostQueries.getVKTokens(sql, jmsg.getUser().getUID()).orElse(Pair.of("", ""));
+ Pair<String, String> tokens = CrosspostQueries.getVKTokens(jdbc, jmsg.getUser().getUID()).orElse(Pair.of("", ""));
if (tokens.getLeft().isEmpty() || tokens.getRight().isEmpty()) {
return false;
}
@@ -205,7 +194,7 @@ public class CrosspostComponent implements JuickComponent, DisposableBean, Strea
}
public boolean twitterPost(com.juick.Message jmsg) {
- Pair<String, String> tokens = CrosspostQueries.getTwitterTokens(sql, jmsg.getUser().getUID()).orElse(Pair.of("", ""));
+ Pair<String, String> tokens = CrosspostQueries.getTwitterTokens(jdbc, jmsg.getUser().getUID()).orElse(Pair.of("", ""));
if (tokens.getLeft().isEmpty() || tokens.getRight().isEmpty()) {
return false;
}