From 7bd9d90ce7716a4224442967a6e06f023a2b66a2 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Tue, 27 Mar 2018 05:23:00 +0300 Subject: server: event handling refactoring --- juick-server/src/main/java/com/juick/server/XMPPBot.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'juick-server/src/main/java/com/juick/server/XMPPBot.java') diff --git a/juick-server/src/main/java/com/juick/server/XMPPBot.java b/juick-server/src/main/java/com/juick/server/XMPPBot.java index 41c98856..c304473c 100644 --- a/juick-server/src/main/java/com/juick/server/XMPPBot.java +++ b/juick-server/src/main/java/com/juick/server/XMPPBot.java @@ -37,6 +37,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationListener; +import org.springframework.context.annotation.Scope; +import org.springframework.context.annotation.ScopedProxyMode; +import org.springframework.context.event.EventListener; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import rocks.xmpp.addr.Jid; import rocks.xmpp.core.stanza.model.*; @@ -58,6 +62,7 @@ import java.util.stream.Collectors; * @author ugnich */ @Component +@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS) public class XMPPBot implements StanzaListener, AutoCloseable { private static final Logger logger = LoggerFactory.getLogger(XMPPBot.class); @@ -334,7 +339,10 @@ public class XMPPBot implements StanzaListener, AutoCloseable { return true; } - public void processMessage(com.juick.Message msg) { + @EventListener + @Async + public void processMessageEvent(MessageEvent event) { + com.juick.Message msg = event.getMessage(); if (msg.getRid() == 0 && msg.getMid() > 0) { String notify = "New message posted.\n#" + msg.getMid() + " https://juick.com/" + msg.getMid(); userService.getJIDsbyUID(msg.getUser().getUid()) -- cgit v1.2.3