aboutsummaryrefslogtreecommitdiff
path: root/juick-xmpp-wip/src
diff options
context:
space:
mode:
Diffstat (limited to 'juick-xmpp-wip/src')
-rw-r--r--juick-xmpp-wip/src/main/java/com/juick/components/XMPPBot.java6
-rw-r--r--juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotAppConfiguration.java15
-rw-r--r--juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotInitializer.java56
-rw-r--r--juick-xmpp-wip/src/test/java/com/juick/xmpp/XMPPTests.java28
4 files changed, 27 insertions, 78 deletions
diff --git a/juick-xmpp-wip/src/main/java/com/juick/components/XMPPBot.java b/juick-xmpp-wip/src/main/java/com/juick/components/XMPPBot.java
index 2e051d32..27206a32 100644
--- a/juick-xmpp-wip/src/main/java/com/juick/components/XMPPBot.java
+++ b/juick-xmpp-wip/src/main/java/com/juick/components/XMPPBot.java
@@ -25,6 +25,8 @@ import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;
import rocks.xmpp.addr.Jid;
import rocks.xmpp.core.XmppException;
@@ -41,6 +43,7 @@ import java.net.URL;
/**
* Created by vt on 12/11/2016.
*/
+@SpringBootApplication
public class XMPPBot implements AutoCloseable {
private static final Logger logger = LoggerFactory.getLogger(XMPPBot.class);
@Inject
@@ -104,4 +107,7 @@ public class XMPPBot implements AutoCloseable {
logger.info("ExternalComponent on xmpp-bot destroyed");
}
+ public static void main(String[] args) {
+ SpringApplication.run(XMPPBot.class, args);
+ }
}
diff --git a/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotAppConfiguration.java b/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotAppConfiguration.java
index 9825751b..7806347d 100644
--- a/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotAppConfiguration.java
+++ b/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotAppConfiguration.java
@@ -20,23 +20,16 @@ package com.juick.components.configuration;
import com.juick.components.XMPPBot;
import com.juick.server.configuration.BaseWebConfiguration;
import com.juick.server.protocol.JuickProtocol;
-import org.springframework.context.annotation.*;
-import org.springframework.core.env.Environment;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
-
-import javax.inject.Inject;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
/**
* Created by aalexeev on 11/12/16.
*/
@Configuration
@ComponentScan(basePackages = {"com.juick.components"})
-@PropertySource(value = "classpath:juick.conf", ignoreResourceNotFound = true)
-@Import(BaseWebConfiguration.class)
-public class BotAppConfiguration extends WebMvcConfigurationSupport {
- @Inject
- private Environment env;
-
+public class BotAppConfiguration extends BaseWebConfiguration {
@Bean
public XMPPBot xmpp() {
return new XMPPBot();
diff --git a/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotInitializer.java b/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotInitializer.java
deleted file mode 100644
index 8b8c3623..00000000
--- a/juick-xmpp-wip/src/main/java/com/juick/components/configuration/BotInitializer.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2008-2017, Juick
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-package com.juick.components.configuration;
-
-import org.apache.commons.codec.CharEncoding;
-import org.springframework.web.filter.CharacterEncodingFilter;
-import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
-
-import javax.servlet.Filter;
-
-/**
- * Created by vt on 09/02/16.
- */
-public class BotInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
-
- @Override
- protected Class<?>[] getRootConfigClasses() {
- return new Class<?>[]{ };
- }
-
- @Override
- protected Class<?>[] getServletConfigClasses() {
- return new Class<?>[]{ BotAppConfiguration.class };
- }
-
- @Override
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
-
- @Override
- protected Filter[] getServletFilters() {
- CharacterEncodingFilter characterEncodingFilter = new CharacterEncodingFilter(CharEncoding.UTF_8);
- return new Filter[]{characterEncodingFilter};
- }
-
- @Override
- protected String getServletName() {
- return "Bot dispatcher servlet";
- }
-}
diff --git a/juick-xmpp-wip/src/test/java/com/juick/xmpp/XMPPTests.java b/juick-xmpp-wip/src/test/java/com/juick/xmpp/XMPPTests.java
index 1193f3a2..2cad5fb4 100644
--- a/juick-xmpp-wip/src/test/java/com/juick/xmpp/XMPPTests.java
+++ b/juick-xmpp-wip/src/test/java/com/juick/xmpp/XMPPTests.java
@@ -21,8 +21,6 @@ import com.gargoylesoftware.htmlunit.WebClient;
import com.juick.components.XMPPRouter;
import com.juick.components.configuration.BotAppConfiguration;
import com.juick.configuration.MockDataConfiguration;
-import com.juick.server.XMPPConnection;
-import com.juick.server.configuration.ApiAppConfiguration;
import com.juick.service.MessengerService;
import com.juick.service.PrivacyQueriesService;
import com.juick.service.ShowQueriesService;
@@ -60,7 +58,7 @@ import static org.hamcrest.Matchers.equalTo;
public class XMPPTests {
@Configuration
@Import(value = {
- BotAppConfiguration.class, ApiAppConfiguration.class, MockDataConfiguration.class
+ BotAppConfiguration.class, MockDataConfiguration.class
})
static class Config {
@Bean
@@ -91,11 +89,9 @@ public class XMPPTests {
@Inject
XMPPRouter router;
@Inject
- XMPPConnection component;
- @Inject
ExecutorService service;
@Test
- public void routerHandshake() throws XmppException, InterruptedException {
+ public void routerHandshake() throws InterruptedException {
XmppSessionConfiguration configuration = XmppSessionConfiguration.builder()
.extensions(Extension.of(com.juick.Message.class))
.debugger(LogbackDebugger.class)
@@ -108,23 +104,33 @@ public class XMPPTests {
lock.countDown();
}
});
+ ExternalComponent routerClient2 = ExternalComponent.create("bot.localhost",
+ "secret", configuration, "localhost", 5347);
+ CountDownLatch lock2 = new CountDownLatch(1);
+ routerClient2.addConnectionListener(connectionEvent -> {
+ if (connectionEvent.equals(ConnectionEvent.Type.RECONNECTION_SUCCEEDED)) {
+ lock2.countDown();
+ }
+ });
service.submit(() -> {
try {
Thread.sleep(3000);
routerClient.connect();
+ routerClient2.connect();
} catch (XmppException | InterruptedException e) {
e.printStackTrace();
}
lock.countDown();
+ lock2.countDown();
});
lock.await();
- CountDownLatch lock2 = new CountDownLatch(2);
- component.sendStanza(new Message(Jid.of("yoyo@test.localhost"), Message.Type.CHAT, "test" ));
- component.sendStanza(new Message(Jid.of("yoyo@test.localhost"), Message.Type.CHAT, "test" ));
+ CountDownLatch lock3 = new CountDownLatch(2);
+ routerClient2.sendMessage(new Message(Jid.of("yoyo@test.localhost"), Message.Type.CHAT, "test" ));
+ routerClient2.sendMessage(new Message(Jid.of("yoyo@test.localhost"), Message.Type.CHAT, "test" ));
routerClient.addInboundMessageListener(messageEvent -> {
assertThat(messageEvent.getMessage().getBody(), equalTo("test"));
- lock2.countDown();
+ lock3.countDown();
});
- lock2.await();
+ lock3.await();
}
}