From 7ac5b7d2a20176587f6adec6ac1f77ca43032ec0 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Mon, 8 Aug 2016 11:11:54 +0300 Subject: juick-ws: fix components initialization --- .../com/juick/ws/components/XMPPComponent.java | 109 +++++++++++---------- 1 file changed, 55 insertions(+), 54 deletions(-) (limited to 'juick-ws/src/main/java/com/juick/ws/components/XMPPComponent.java') diff --git a/juick-ws/src/main/java/com/juick/ws/components/XMPPComponent.java b/juick-ws/src/main/java/com/juick/ws/components/XMPPComponent.java index 7240769e..fb67e5a2 100644 --- a/juick-ws/src/main/java/com/juick/ws/components/XMPPComponent.java +++ b/juick-ws/src/main/java/com/juick/ws/components/XMPPComponent.java @@ -62,6 +62,60 @@ public class XMPPComponent implements JuickComponent, DisposableBean, Stream.Str @Inject Environment env; + public XMPPComponent() { + logger.info("component initialized"); + try { + HOSTNAME = env.getProperty("hostname"); + componentName = env.getProperty("componentname"); + int componentPort = NumberUtils.toInt(env.getProperty("component_port"), 5347); + int s2sPort = NumberUtils.toInt(env.getProperty("s2s_port"), 5269); + JID Jid = new JID(env.getProperty("xmppbot_jid")); + STATSFILE = env.getProperty("statsfile"); + keystore = env.getProperty("keystore"); + keystorePassword = env.getProperty("keystore_password"); + brokenSSLhosts = Arrays.asList(env.getProperty("broken_ssl_hosts", "").split(",")); + bannedHosts = Arrays.asList(env.getProperty("banned_hosts", "").split(",")); + BasicDataSource dataSource = new BasicDataSource(); + dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver")); + dataSource.setUrl(env.getProperty("datasource_url")); + setSql(new JdbcTemplate(dataSource)); + bot = new JuickBot(this, Jid); + + childParsers.put(JuickMessage.XMLNS, new JuickMessage()); + + Socket routerSocket = null; + try { + routerSocket = new Socket("localhost", componentPort); + setRouter(new StreamComponent(new JID("s2s"), routerSocket.getInputStream(), routerSocket.getOutputStream(), env.getProperty("xmpp_password"))); + getRouter().addChildParser(new JuickMessage()); + getRouter().addListener((Stream.StreamListener) this); + getRouter().addListener((Message.MessageListener) this); + getRouter().addListener((Iq.IqListener) this); + + } catch (IOException e) { + logger.log(Level.SEVERE, "router error", e); + } + executorService.submit(() -> { + final ServerSocket listener = new ServerSocket(s2sPort); + logger.info("s2s listener ready"); + while (true) { + try { + Socket socket = listener.accept(); + ConnectionIn client = new ConnectionIn(this, bot, socket); + addConnectionIn(client); + executorService.submit(client); + } catch (Exception e) { + logger.log(Level.SEVERE, "s2s error", e); + } + } + }); + executorService.submit(new CleaningUp(this)); + + } catch (Exception e) { + logger.log(Level.SEVERE, "XMPPComponent error", e); + } + } + public void addConnectionIn(ConnectionIn c) { synchronized (getInConnections()) { getInConnections().add(c); @@ -181,60 +235,7 @@ public class XMPPComponent implements JuickComponent, DisposableBean, Stream.Str @Async @Override public void init() { - - logger.info("component initialized"); - try { - HOSTNAME = env.getProperty("hostname"); - componentName = env.getProperty("componentname"); - int componentPort = NumberUtils.toInt(env.getProperty("component_port"), 5347); - int s2sPort = NumberUtils.toInt(env.getProperty("s2s_port"), 5269); - JID Jid = new JID(env.getProperty("xmppbot_jid")); - STATSFILE = env.getProperty("statsfile"); - keystore = env.getProperty("keystore"); - keystorePassword = env.getProperty("keystore_password"); - brokenSSLhosts = Arrays.asList(env.getProperty("broken_ssl_hosts", "").split(",")); - bannedHosts = Arrays.asList(env.getProperty("banned_hosts", "").split(",")); - BasicDataSource dataSource = new BasicDataSource(); - dataSource.setDriverClassName(env.getProperty("datasource_driver", "com.mysql.jdbc.Driver")); - dataSource.setUrl(env.getProperty("datasource_url")); - setSql(new JdbcTemplate(dataSource)); - bot = new JuickBot(this, Jid); - - childParsers.put(JuickMessage.XMLNS, new JuickMessage()); - - executorService.submit(() -> { - Socket routerSocket = null; - try { - routerSocket = new Socket("localhost", componentPort); - setRouter(new StreamComponent(new JID("s2s"), routerSocket.getInputStream(), routerSocket.getOutputStream(), env.getProperty("xmpp_password"))); - getRouter().addChildParser(new JuickMessage()); - getRouter().addListener((Stream.StreamListener) this); - getRouter().addListener((Message.MessageListener) this); - getRouter().addListener((Iq.IqListener) this); - getRouter().startParsing(); - } catch (IOException e) { - logger.log(Level.SEVERE, "router error", e); - } - }); - executorService.submit(() -> { - final ServerSocket listener = new ServerSocket(s2sPort); - logger.info("s2s listener ready"); - while (true) { - try { - Socket socket = listener.accept(); - ConnectionIn client = new ConnectionIn(this, bot, socket); - addConnectionIn(client); - executorService.submit(client); - } catch (Exception e) { - logger.log(Level.SEVERE, "s2s error", e); - } - } - }); - executorService.submit(new CleaningUp(this)); - - } catch (Exception e) { - logger.log(Level.SEVERE, "XMPPComponent error", e); - } + getRouter().startParsing(); } -- cgit v1.2.3