aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/XMPPManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/XMPPManager.java')
-rw-r--r--src/main/java/com/juick/XMPPManager.java50
1 files changed, 32 insertions, 18 deletions
diff --git a/src/main/java/com/juick/XMPPManager.java b/src/main/java/com/juick/XMPPManager.java
index 4ff99787..7b881420 100644
--- a/src/main/java/com/juick/XMPPManager.java
+++ b/src/main/java/com/juick/XMPPManager.java
@@ -32,15 +32,15 @@ import com.juick.util.xmpp.iq.MessageQuery;
import com.juick.www.WebApp;
import com.juick.www.api.SystemActivity;
import jakarta.annotation.PostConstruct;
-import jakarta.annotation.PreDestroy;
-import lombok.RequiredArgsConstructor;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
+import org.springframework.stereotype.Component;
import rocks.xmpp.addr.Jid;
import rocks.xmpp.core.XmppException;
import rocks.xmpp.core.session.Extension;
@@ -70,6 +70,7 @@ import rocks.xmpp.extensions.version.SoftwareVersionManager;
import rocks.xmpp.extensions.version.model.SoftwareVersion;
import javax.annotation.Nonnull;
+import javax.inject.Inject;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
@@ -87,27 +88,41 @@ import java.util.concurrent.Executor;
/**
* @author ugnich
*/
-@RequiredArgsConstructor
public class XMPPManager implements NotificationListener {
private static final Logger logger = LoggerFactory.getLogger("XMPP");
private ExternalComponent xmpp;
- private final CommandsManager commandsManager;
- private final Jid jid;
- private final String componentName;
- private final int componentPort;
- private final String componentHost;
- private final String password;
- private final StorageService storageService;
- private final Resource vCardImage;
-
- private final MessagesService messagesService;
- private final UserService userService;
- private final PMQueriesService pmQueriesService;
- private final Executor applicationTaskExecutor;
- private final WebApp webApp;
+ @Value("${xmppbot_jid:juick@localhost}")
+ private String botJid;
+ @Value("${hostname:localhost}")
+ private String componentName;
+ @Value("${component_port:5347}")
+ private int componentPort;
+ @Value("${component_host:localhost}")
+ private String componentHost;
+ @Inject
+ private CommandsManager commandsManager;
+ @Value("${xmpp_password:secret}")
+ private String password;
+ @Value("classpath:juick.png")
+ private Resource vCardImage;
+ @Inject
+ private StorageService storageService;
+ @Inject
+ private MessagesService messagesService;
+ @Inject
+ private UserService userService;
+ @Inject
+ private PMQueriesService pmQueriesService;
+ @Inject
+ private Executor applicationTaskExecutor;
+ @Inject
+ private WebApp webApp;
+
+ private Jid jid;
@PostConstruct
public void init() {
+ jid = Jid.of(botJid);
logger.info("xmpp component start connecting to {}", componentPort);
XmppSessionConfiguration configuration = XmppSessionConfiguration.builder()
.extensions(Extension.of(com.juick.model.Message.class), Extension.of(MessageQuery.class))
@@ -615,7 +630,6 @@ public class XMPPManager implements NotificationListener {
});
}
- @PreDestroy
public void close() throws Exception {
broadcastPresence(Presence.Type.UNAVAILABLE);
if (xmpp != null) {