aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp/src/main/java/com/juick/components/s2s
diff options
context:
space:
mode:
authorGravatar Vitaly Takmazov2017-02-06 16:36:36 +0300
committerGravatar Vitaly Takmazov2017-02-06 16:36:36 +0300
commit2befd7c98f9932d1aab6d72477490d0224000d62 (patch)
treefbafe6bf43242790f06021669124f958c8030df3 /juick-xmpp/src/main/java/com/juick/components/s2s
parent10d9407032b0eadeabc25ac7cd16a72b03be41bb (diff)
juick-xmpp: move ugnich xmpp extensions to tests
Diffstat (limited to 'juick-xmpp/src/main/java/com/juick/components/s2s')
-rw-r--r--juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java235
1 files changed, 0 insertions, 235 deletions
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
deleted file mode 100644
index ef89671f..00000000
--- a/juick-xmpp/src/main/java/com/juick/components/s2s/ConnectionRouter.java
+++ /dev/null
@@ -1,235 +0,0 @@
-package com.juick.components.s2s;
-
-import com.juick.User;
-import com.juick.components.XMPPServer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import rocks.xmpp.addr.Jid;
-import rocks.xmpp.core.XmppException;
-import rocks.xmpp.core.stanza.model.Message;
-import rocks.xmpp.core.stanza.model.Stanza;
-import rocks.xmpp.extensions.component.accept.ExternalComponent;
-import rocks.xmpp.extensions.nick.model.Nickname;
-import rocks.xmpp.extensions.oob.model.x.OobX;
-import rocks.xmpp.util.XmppUtils;
-
-import javax.xml.bind.JAXBException;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.StringWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @author ugnich
- */
-public class ConnectionRouter implements AutoCloseable {
-
- private static final Logger logger = LoggerFactory.getLogger(ConnectionRouter.class);
-
- private ExternalComponent router;
- private XMPPServer xmpp;
-
- public ConnectionRouter(XMPPServer s2s, String componentName, int componentPort, String password) {
- this.xmpp = s2s;
- logger.info("stream router start");
- router = ExternalComponent.create(componentName, password, xmpp.getSession().getConfiguration(), "localhost", componentPort);
- router.addInboundMessageListener(e -> {
- Message message = e.getMessage();
- Jid jid = message.getTo();
- if (jid.getDomain().equals(Jid.of(componentName).getDomain())) {
- com.juick.Message jmsg = message.getExtension(com.juick.Message.class);
- if (jmsg != null) {
- if (jid.getLocal().equals("recomm")) {
- sendJuickRecommendation(jmsg);
- } else {
- if (jmsg.getRid() > 0) {
- sendJuickComment(jmsg);
- } else if (jmsg.getMid() > 0) {
- sendJuickMessage(jmsg);
- }
- }
- }
- } else if (jid.getDomain().endsWith(xmpp.HOSTNAME) && (jid.getDomain().equals(xmpp.HOSTNAME)
- || jid.getDomain().endsWith("." + xmpp.HOSTNAME))) {
- if (logger.isInfoEnabled()) {
- try {
- logger.info("unhandled message: {}", stanzaToString(message));
- } catch (JAXBException | XMLStreamException ex) {
- logger.error("JAXB exception", ex);
- }
- }
- } else {
- route(jid.getDomain(), message);
- }
- });
- try {
- router.connect();
- } catch (XmppException e) {
- logger.warn("xmpp exception", e);
- }
- }
-
- String stanzaToString(Stanza stanza) throws XMLStreamException, JAXBException {
- StringWriter stanzaWriter = new StringWriter();
- XMLStreamWriter xmppStreamWriter = XmppUtils.createXmppStreamWriter(
- router.getConfiguration().getXmlOutputFactory().createXMLStreamWriter(stanzaWriter));
- router.createMarshaller().marshal(stanza, xmppStreamWriter);
- xmppStreamWriter.flush();
- xmppStreamWriter.close();
- return stanzaWriter.toString();
- }
-
- void route(String domain, Stanza stanza) {
- try {
- String xml = stanzaToString(stanza);
- logger.info("stream router (out): {}", xml);
- xmpp.sendOut(domain, xml);
- } catch (XMLStreamException | JAXBException e) {
- logger.error("JAXB exception", e);
- }
-
- }
-
- void sendStanza(Stanza xml) {
- router.send(xml);
- }
-
-
-
- public void sendJuickMessage(com.juick.Message jmsg) {
- List<String> jids = new ArrayList<>();
-
- if (jmsg.FriendsOnly) {
- jids = xmpp.subscriptionService.getJIDSubscribedToUser(jmsg.getUser().getUid(), jmsg.FriendsOnly);
- } else {
- List<User> users = xmpp.subscriptionService.getSubscribedUsers(jmsg.getUser().getUid(), jmsg.getMid());
- for (User user : users) {
- for (String jid : xmpp.userService.getJIDsbyUID(user.getUid())) {
- jids.add(jid);
- }
- }
- }
-
- String txt = "@" + jmsg.getUser().getName() + ":" + jmsg.getTagsString() + "\n";
- String attachment = jmsg.getAttachmentURL();
- if (attachment != null) {
- txt += attachment + "\n";
- }
- txt += jmsg.getText() + "\n\n";
- txt += "#" + jmsg.getMid() + " http://juick.com/" + jmsg.getMid();
-
- Nickname nick = new Nickname("@" + jmsg.getUser().getName());
-
- Message msg = new Message();
- msg.setFrom(xmpp.getJid());
- msg.setBody(txt);
- msg.setType(Message.Type.CHAT);
- msg.setThread("juick-" + jmsg.getMid());
- msg.addExtension(jmsg);
- msg.addExtension(nick);
- if (attachment != null) {
- try {
- OobX oob = new OobX(new URI(attachment));
- msg.addExtension(oob);
- } catch (URISyntaxException e) {
- logger.warn("uri exception", e);
- }
- }
-
- for (String jid : jids) {
- msg.setTo(Jid.of(jid));
- route(msg.getTo().getDomain(), msg);
- }
- }
-
- public void sendJuickComment(com.juick.Message jmsg) {
- List<User> users;
- String replyQuote;
- String replyTo;
-
- users = xmpp.subscriptionService.getUsersSubscribedToComments(jmsg.getMid(), jmsg.getUser().getUid());
- com.juick.Message replyMessage = jmsg.getReplyto() > 0 ? xmpp.messagesService.getReply(jmsg.getMid(), jmsg.getReplyto())
- : xmpp.messagesService.getMessage(jmsg.getMid());
- replyTo = replyMessage.getUser().getName();
- com.juick.Message fullReply = xmpp.messagesService.getReply(jmsg.getMid(), jmsg.getRid());
- replyQuote = fullReply.getReplyQuote();
-
- String txt = "Reply by @" + jmsg.getUser().getName() + ":\n" + replyQuote + "\n@" + replyTo + " ";
- String attachment = jmsg.getAttachmentURL();
- if (attachment != null) {
- txt += attachment + "\n";
- }
- txt += jmsg.getText() + "\n\n" + "#" + jmsg.getMid() + "/" + jmsg.getRid() + " http://juick.com/" + jmsg.getMid() + "#" + jmsg.getRid();
-
- Message msg = new Message();
- msg.setFrom(xmpp.getJid());
- msg.setBody(txt);
- msg.setType(Message.Type.CHAT);
- msg.addExtension(jmsg);
- for (User user : users) {
- for (String jid : xmpp.userService.getJIDsbyUID(user.getUid())) {
- msg.setTo(Jid.of(jid));
- route(msg.getTo().getDomain(), msg);
- }
- }
- }
-
- public void sendJuickRecommendation(com.juick.Message recomm) {
- List<User> users;
- com.juick.Message jmsg = xmpp.messagesService.getMessage(recomm.getMid());
- users = xmpp.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";
- String attachment = jmsg.getAttachmentURL();
- if (attachment != null) {
- txt += attachment + "\n";
- }
- txt += jmsg.getText() + "\n\n";
- txt += "#" + jmsg.getMid();
- if (jmsg.getReplies() > 0) {
- if (jmsg.getReplies() % 10 == 1 && jmsg.getReplies() % 100 != 11) {
- txt += " (" + jmsg.getReplies() + " reply)";
- } else {
- txt += " (" + jmsg.getReplies() + " replies)";
- }
- }
- txt += " http://juick.com/" + jmsg.getMid();
-
- Nickname nick = new Nickname("@" + jmsg.getUser().getName());
-
- Message msg = new Message();
- msg.setFrom(xmpp.getJid());
- msg.setBody(txt);
- msg.setType(Message.Type.CHAT);
- msg.setThread("juick-" + jmsg.getMid());
- msg.addExtension(jmsg);
- msg.addExtension(nick);
- if (attachment != null) {
- try {
- OobX oob = new OobX(new URI(attachment));
- msg.addExtension(oob);
- } catch (URISyntaxException e) {
- logger.warn("uri exception", e);
- }
- }
-
- for (User user : users) {
- for (String jid : xmpp.userService.getJIDsbyUID(user.getUid())) {
- msg.setTo(Jid.of(jid));
- route(msg.getTo().getDomain(), msg);
- }
- }
- }
-
- @Override
- public void close() throws Exception {
- if (router != null) {
- router.close();
- }
- }
-}