From d42a45842b97f6e7313bbfbb352fc12509df4839 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Wed, 30 Nov 2016 11:52:04 +0300 Subject: juick-xmpp: using data services --- .../main/java/com/juick/components/XMPPServer.java | 5 +- .../configuration/XmppAppConfiguration.java | 10 ++-- .../components/configuration/XmppInitializer.java | 3 +- .../com/juick/components/s2s/ConnectionRouter.java | 38 +++++++++------ .../java/com/juick/components/s2s/JuickBot.java | 55 +++++++++++++--------- 5 files changed, 61 insertions(+), 50 deletions(-) (limited to 'juick-xmpp') diff --git a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java index 7be2400a..a26389ea 100644 --- a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java +++ b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java @@ -10,7 +10,6 @@ import org.apache.commons.lang3.math.NumberUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.core.env.Environment; -import org.springframework.jdbc.core.JdbcTemplate; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; @@ -44,13 +43,11 @@ public class XMPPServer implements AutoCloseable { private final List outConnections = Collections.synchronizedList(new ArrayList<>()); private final List outCache = Collections.synchronizedList(new ArrayList<>()); - public JdbcTemplate jdbc; final public HashMap childParsers = new HashMap<>(); - public XMPPServer(Environment env, ExecutorService service, JdbcTemplate jdbc) { + public XMPPServer(Environment env, ExecutorService service) { this.service = service; - this.jdbc = jdbc; logger.info("component initialized"); try { diff --git a/juick-xmpp/src/main/java/com/juick/components/configuration/XmppAppConfiguration.java b/juick-xmpp/src/main/java/com/juick/components/configuration/XmppAppConfiguration.java index 5a19270b..31ffae9e 100644 --- a/juick-xmpp/src/main/java/com/juick/components/configuration/XmppAppConfiguration.java +++ b/juick-xmpp/src/main/java/com/juick/components/configuration/XmppAppConfiguration.java @@ -5,12 +5,12 @@ package com.juick.components.configuration; */ import com.juick.components.XMPPServer; +import com.juick.configuration.DataConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.DependsOn; +import org.springframework.context.annotation.Import; import org.springframework.context.annotation.PropertySource; import org.springframework.core.env.Environment; -import org.springframework.jdbc.core.JdbcTemplate; import javax.inject.Inject; import java.util.concurrent.ExecutorService; @@ -18,16 +18,14 @@ import java.util.concurrent.Executors; @Configuration @PropertySource("classpath:juick.conf") +@Import(DataConfiguration.class) public class XmppAppConfiguration { @Inject private Environment env; - @Inject - private JdbcTemplate jdbcTemplate; @Bean - @DependsOn("jdbcTemplate") public XMPPServer xmpp() { - return new XMPPServer(env, service(), jdbcTemplate); + return new XMPPServer(env, service()); } @Bean diff --git a/juick-xmpp/src/main/java/com/juick/components/configuration/XmppInitializer.java b/juick-xmpp/src/main/java/com/juick/components/configuration/XmppInitializer.java index 89dd69e1..ee2ddceb 100644 --- a/juick-xmpp/src/main/java/com/juick/components/configuration/XmppInitializer.java +++ b/juick-xmpp/src/main/java/com/juick/components/configuration/XmppInitializer.java @@ -1,6 +1,5 @@ package com.juick.components.configuration; -import com.juick.configuration.DataConfiguration; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; @@ -13,7 +12,7 @@ public class XmppInitializer extends AbstractAnnotationConfigDispatcherServletIn @Override protected Class[] getRootConfigClasses() { - return new Class[]{XmppAppConfiguration.class, DataConfiguration.class}; + return new Class[]{XmppAppConfiguration.class}; } @Override diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java index 9272a3d0..cb3bc46f 100644 --- a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java +++ b/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java @@ -2,9 +2,9 @@ package com.juick.components.s2s; import com.juick.User; import com.juick.components.XMPPServer; -import com.juick.server.MessagesQueries; -import com.juick.server.SubscriptionsQueries; -import com.juick.server.UserQueries; +import com.juick.service.MessagesService; +import com.juick.service.SubscriptionService; +import com.juick.service.UserService; import com.juick.xmpp.JID; import com.juick.xmpp.Message; import com.juick.xmpp.extensions.JuickMessage; @@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; +import javax.inject.Inject; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; @@ -40,6 +41,13 @@ public class ConnectionRouter extends Connection implements Runnable { private int componentPort; private String password; + @Inject + SubscriptionService subscriptionService; + @Inject + UserService userService; + @Inject + MessagesService messagesService; + public ConnectionRouter(XMPPServer s2s, String componentName, int componentPort, String password) throws Exception { super(s2s); this.componentName = componentName; @@ -144,11 +152,11 @@ public class ConnectionRouter extends Connection implements Runnable { List jids = new ArrayList<>(); if (jmsg.FriendsOnly) { - jids = SubscriptionsQueries.getJIDSubscribedToUser(xmpp.jdbc, jmsg.getUser().getUid(), jmsg.FriendsOnly); + jids = subscriptionService.getJIDSubscribedToUser(jmsg.getUser().getUid(), jmsg.FriendsOnly); } else { - List users = SubscriptionsQueries.getSubscribedUsers(xmpp.jdbc, jmsg.getUser().getUid(), jmsg.getMid()); + List users = subscriptionService.getSubscribedUsers(jmsg.getUser().getUid(), jmsg.getMid()); for (User user : users) { - for (String jid : UserQueries.getJIDsbyUID(xmpp.jdbc, user.getUid())) { + for (String jid : userService.getJIDsbyUID(user.getUid())) { jids.add(jid); } } @@ -189,11 +197,11 @@ public class ConnectionRouter extends Connection implements Runnable { String replyQuote; String replyTo; - users = SubscriptionsQueries.getUsersSubscribedToComments(xmpp.jdbc, jmsg.getMid(), jmsg.getUser().getUid()); - com.juick.Message replyMessage = jmsg.getReplyto() > 0 ? MessagesQueries.getReply(xmpp.jdbc, jmsg.getMid(), jmsg.getReplyto()) - : MessagesQueries.getMessage(xmpp.jdbc, jmsg.getMid()); + users = subscriptionService.getUsersSubscribedToComments(jmsg.getMid(), jmsg.getUser().getUid()); + com.juick.Message replyMessage = jmsg.getReplyto() > 0 ? messagesService.getReply(jmsg.getMid(), jmsg.getReplyto()) + : messagesService.getMessage(jmsg.getMid()); replyTo = replyMessage.getUser().getName(); - com.juick.Message fullReply = MessagesQueries.getReply(xmpp.jdbc, jmsg.getMid(), jmsg.getRid()); + com.juick.Message fullReply = messagesService.getReply(jmsg.getMid(), jmsg.getRid()); replyQuote = fullReply.getReplyQuote(); String txt = "Reply by @" + jmsg.getUser().getName() + ":\n" + replyQuote + "\n@" + replyTo + " "; @@ -209,7 +217,7 @@ public class ConnectionRouter extends Connection implements Runnable { msg.type = Message.Type.chat; msg.addChild(jmsg); for (User user : users) { - for (String jid : UserQueries.getJIDsbyUID(xmpp.jdbc, user.getUid())) { + for (String jid : userService.getJIDsbyUID(user.getUid())) { msg.to = new JID(jid); xmpp.sendOut(msg); } @@ -219,9 +227,9 @@ public class ConnectionRouter extends Connection implements Runnable { public void sendJuickRecommendation(JuickMessage recomm) { List users; JuickMessage jmsg; - jmsg = new JuickMessage(MessagesQueries.getMessage(xmpp.jdbc, recomm.getMid())); - users = SubscriptionsQueries.getUsersSubscribedToUserRecommendations(xmpp.jdbc, - recomm.getUser().getUid(), recomm.getMid(), jmsg.getUser().getUid()); + jmsg = new JuickMessage(messagesService.getMessage(recomm.getMid())); + users = subscriptionService.getUsersSubscribedToUserRecommendations(recomm.getUser().getUid(), + recomm.getMid(), jmsg.getUser().getUid()); String txt = "Recommended by @" + recomm.getUser().getName() + ":\n"; txt += "@" + jmsg.getUser().getName() + ":" + jmsg.getTagsString() + "\n"; @@ -257,7 +265,7 @@ public class ConnectionRouter extends Connection implements Runnable { } for (User user : users) { - for (String jid : UserQueries.getJIDsbyUID(xmpp.jdbc, user.getUid())) { + for (String jid : userService.getJIDsbyUID(user.getUid())) { msg.to = new JID(jid); xmpp.sendOut(msg); } diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java index ac7d122f..1b989249 100644 --- a/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java +++ b/juick-xmpp/src/main/java/com/juick/components/s2s/JuickBot.java @@ -2,15 +2,17 @@ package com.juick.components.s2s; import com.juick.User; import com.juick.components.XMPPServer; -import com.juick.server.PMQueries; import com.juick.server.TagQueries; -import com.juick.server.UserQueries; +import com.juick.service.PMQueriesService; +import com.juick.service.TagService; +import com.juick.service.UserService; import com.juick.xmpp.JID; import com.juick.xmpp.Message; import com.juick.xmpp.Presence; import com.juick.xmpp.extensions.Error; import com.juick.xmpp.extensions.JuickMessage; +import javax.inject.Inject; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -21,6 +23,13 @@ import java.util.regex.Pattern; */ public class JuickBot { XMPPServer xmpp; + @Inject + UserService userService; + @Inject + PMQueriesService pmQueriesService; + @Inject + TagService tagService; + public JuickBot(XMPPServer xmpp, JID jid) { this.xmpp = xmpp; this.jid = jid; @@ -75,7 +84,7 @@ public class JuickBot { } else if (p.type.equals(Presence.Type.probe)) { int uid_to = 0; if (!toJuick) { - uid_to = UserQueries.getUIDbyName(xmpp.jdbc, username); + uid_to = userService.getUIDbyName(username); } if (toJuick || uid_to > 0) { @@ -98,9 +107,9 @@ public class JuickBot { if (toJuick) { canSubscribe = true; } else { - int uid_to = UserQueries.getUIDbyName(xmpp.jdbc, username); + int uid_to = userService.getUIDbyName(username); if (uid_to > 0) { - PMQueries.addPMinRoster(xmpp.jdbc, uid_to, p.from.Bare()); + pmQueriesService.addPMinRoster(uid_to, p.from.Bare()); canSubscribe = true; } } @@ -124,9 +133,9 @@ public class JuickBot { } } else if (p.type.equals(Presence.Type.unsubscribe)) { if (!toJuick) { - int uid_to = UserQueries.getUIDbyName(xmpp.jdbc, username); + int uid_to = userService.getUIDbyName(username); if (uid_to > 0) { - PMQueries.removePMinRoster(xmpp.jdbc, uid_to, p.from.Bare()); + pmQueriesService.removePMinRoster(uid_to, p.from.Bare()); } } @@ -146,9 +155,9 @@ public class JuickBot { User user_from = null; String signuphash = ""; - user_from = UserQueries.getUserByJID(xmpp.jdbc, msg.from.Bare()); + user_from = userService.getUserByJID(msg.from.Bare()); if (user_from == null) { - signuphash = UserQueries.getSignUpHashByJID(xmpp.jdbc, msg.from.Bare()); + signuphash = userService.getSignUpHashByJID(msg.from.Bare()); } if (user_from == null) { @@ -166,7 +175,7 @@ public class JuickBot { return incomingMessageJuick(user_from, msg); } - int uid_to = UserQueries.getUIDbyName(xmpp.jdbc, username); + int uid_to = userService.getUIDbyName(username); if (uid_to == 0) { Message reply = new Message(msg.to, msg.from, Message.Type.error); @@ -177,8 +186,8 @@ public class JuickBot { } boolean success = false; - if (!UserQueries.isInBLAny(xmpp.jdbc, uid_to, user_from.getUid())) { - success = PMQueries.createPM(xmpp.jdbc, user_from.getUid(), uid_to, msg.body); + if (!userService.isInBLAny(uid_to, user_from.getUid())) { + success = pmQueriesService.createPM(user_from.getUid(), uid_to, msg.body); } if (success) { @@ -196,12 +205,12 @@ public class JuickBot { List jids; boolean inroster = false; - jids = UserQueries.getJIDsbyUID(xmpp.jdbc, uid_to); + jids = userService.getJIDsbyUID(uid_to); for (String jid : jids) { Message mm = new Message(); mm.to = new JID(jid); mm.type = Message.Type.chat; - inroster = PMQueries.havePMinRoster(xmpp.jdbc, user_from.getUid(), jid); + inroster = pmQueriesService.havePMinRoster(user_from.getUid(), jid); if (inroster) { mm.from = new JID(jmsg.getUser().getName(), "juick.com", "Juick"); mm.body = msg.body; @@ -277,7 +286,7 @@ public class JuickBot { private void commandLogin(Message m, User user_from) throws Exception { Message reply = new Message(jid, m.from, Message.Type.chat); - reply.body = "http://juick.com/login?" + UserQueries.getHashByUID(xmpp.jdbc, user_from.getUid()); + reply.body = "http://juick.com/login?" + userService.getHashByUID(user_from.getUid()); xmpp.sendOut(reply); } @@ -289,15 +298,15 @@ public class JuickBot { boolean haveInRoster = false; if (user_to.indexOf('@') > 0) { - uid_to = UserQueries.getUIDbyJID(xmpp.jdbc, user_to); + uid_to = userService.getUIDbyJID(user_to); } else { - uid_to = UserQueries.getUIDbyName(xmpp.jdbc, user_to); + uid_to = userService.getUIDbyName(user_to); } if (uid_to > 0) { - if (!UserQueries.isInBLAny(xmpp.jdbc, uid_to, user_from.getUid())) { - if (PMQueries.createPM(xmpp.jdbc, user_from.getUid(), uid_to, body)) { - jids_to = UserQueries.getJIDsbyUID(xmpp.jdbc, uid_to); + if (!userService.isInBLAny(uid_to, user_from.getUid())) { + if (pmQueriesService.createPM(user_from.getUid(), uid_to, body)) { + jids_to = userService.getJIDsbyUID(uid_to); ret = 200; } else { ret = 500; @@ -326,7 +335,7 @@ public class JuickBot { Message mm = new Message(); mm.to = new JID(jid); mm.type = Message.Type.chat; - haveInRoster = PMQueries.havePMinRoster(xmpp.jdbc, user_from.getUid(), jid); + haveInRoster = pmQueriesService.havePMinRoster(user_from.getUid(), jid); if (haveInRoster) { mm.from = new JID(user_from.getName(), "juick.com", "Juick"); mm.body = body; @@ -350,8 +359,8 @@ public class JuickBot { } private void commandBLShow(Message m, User user_from) throws Exception { - List blusers = UserQueries.getUserBLUsers(xmpp.jdbc, user_from.getUid()); - List bltags = TagQueries.getUserBLTags(xmpp.jdbc, user_from.getUid()); + List blusers = userService.getUserBLUsers(user_from.getUid()); + List bltags = tagService.getUserBLTags(user_from.getUid()); String txt = ""; if (bltags.size() > 0) { -- cgit v1.2.3