diff options
Diffstat (limited to 'juick-xmpp-wip/src')
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(); } } |