From 40c1a196d019fbaf3dd8f0d8f6d1bdc8225bb7a0 Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Tue, 8 Nov 2016 16:11:53 +0300 Subject: juick-xmpp: statsfile -> status --- .../main/java/com/juick/components/XMPPServer.java | 2 - .../components/controllers/StatusController.java | 31 ++++++ .../java/com/juick/components/s2s/CleaningUp.java | 106 ++++++--------------- 3 files changed, 60 insertions(+), 79 deletions(-) create mode 100644 juick-xmpp/src/main/java/com/juick/components/controllers/StatusController.java diff --git a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java index b892f207..31aa0bc7 100644 --- a/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java +++ b/juick-xmpp/src/main/java/com/juick/components/XMPPServer.java @@ -45,7 +45,6 @@ public class XMPPServer implements DisposableBean, Stream.StreamListener, JuickBot bot; public String HOSTNAME, componentName; - public String STATSFILE = null; public String keystore; public String keystorePassword; public List brokenSSLhosts; @@ -67,7 +66,6 @@ public class XMPPServer implements DisposableBean, Stream.StreamListener, 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(",")); diff --git a/juick-xmpp/src/main/java/com/juick/components/controllers/StatusController.java b/juick-xmpp/src/main/java/com/juick/components/controllers/StatusController.java new file mode 100644 index 00000000..9617ab56 --- /dev/null +++ b/juick-xmpp/src/main/java/com/juick/components/controllers/StatusController.java @@ -0,0 +1,31 @@ +package com.juick.components.controllers; + +import com.juick.components.XMPPServer; +import com.juick.server.helpers.Status; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import javax.inject.Inject; + +/** + * Created by vitalyster on 24.10.2016. + */ +@Controller +@ResponseBody +public class StatusController { + @Inject + XMPPServer xmpp; + + @RequestMapping(method = RequestMethod.GET, value = "/", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) + public Status status() { + if (xmpp != null) { + String status = String.format("s2s in: %d, s2s out: %d, cached: %d", + xmpp.getInConnections().size(), xmpp.getOutConnections().size(), xmpp.getOutCache().size()); + return new Status(status); + } + return new Status("Error"); + } +} diff --git a/juick-xmpp/src/main/java/com/juick/components/s2s/CleaningUp.java b/juick-xmpp/src/main/java/com/juick/components/s2s/CleaningUp.java index 031a7b34..52d2f3a6 100644 --- a/juick-xmpp/src/main/java/com/juick/components/s2s/CleaningUp.java +++ b/juick-xmpp/src/main/java/com/juick/components/s2s/CleaningUp.java @@ -2,9 +2,6 @@ package com.juick.components.s2s; import com.juick.components.XMPPServer; -import java.io.FileNotFoundException; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; import java.util.Iterator; /** @@ -21,89 +18,44 @@ public class CleaningUp implements Runnable { @Override public void run() { while (true) { - try { - PrintWriter statsFile = new PrintWriter(xmpp.STATSFILE, "UTF-8"); - statsFile.write("

Threads: " + Thread.activeCount() + "

"); - statsFile.write("

Out (" + xmpp.getOutConnections().size() + ")

"); - - long now = System.currentTimeMillis(); - - synchronized (xmpp.getOutConnections()) { - for (Iterator i = xmpp.getOutConnections().iterator(); i.hasNext();) { - ConnectionOut c = i.next(); - int inactive = (int) ((double) (now - c.tsLocalData) / 1000.0); - if (inactive > 900) { - c.closeConnection(); - i.remove(); - } else { - statsFile.write(" "); - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" "); - } + long now = System.currentTimeMillis(); + + synchronized (xmpp.getOutConnections()) { + for (Iterator i = xmpp.getOutConnections().iterator(); i.hasNext(); ) { + ConnectionOut c = i.next(); + int inactive = (int) ((double) (now - c.tsLocalData) / 1000.0); + if (inactive > 900) { + c.closeConnection(); + i.remove(); } } + } - statsFile.write("
tosidinactiveout packetsout bytes
" + c.to + "" + c.streamID + "" + inactive + "" + c.packetsLocal + "" + c.bytesLocal + "

In (" + xmpp.getInConnections().size() + ")

"); - - synchronized (xmpp.getInConnections()) { - for (Iterator i = xmpp.getInConnections().iterator(); i.hasNext();) { - ConnectionIn c = i.next(); - int inactive = (int) ((double) (now - c.tsRemoteData) / 1000.0); - if (inactive > 900) { - c.closeConnection(); - i.remove(); - } else { - statsFile.write(" "); - if (c.from.isEmpty()) { - statsFile.write(" \n"); - } else if (c.from.size() == 1) { - statsFile.write(" \n"); - } else { - String out = " \n"); - } - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" \n"); - statsFile.write(" "); - } + synchronized (xmpp.getInConnections()) { + for (Iterator i = xmpp.getInConnections().iterator(); i.hasNext(); ) { + ConnectionIn c = i.next(); + int inactive = (int) ((double) (now - c.tsRemoteData) / 1000.0); + if (inactive > 900) { + c.closeConnection(); + i.remove(); } } + } - statsFile.write("
fromsidinactivein packets
 " + c.from.get(0) + ""; - for (int n = 0; n < c.from.size(); n++) { - if (n > 0) { - out += "
"; - } - out += c.from.get(n); - } - statsFile.write(out + "
" + c.streamID + "" + inactive + "" + c.packetsRemote + "

Cache (" + xmpp.getOutCache().size() + ")

"); - - synchronized (xmpp.getOutCache()) { - for (Iterator i = xmpp.getOutCache().iterator(); i.hasNext();) { - CacheEntry c = i.next(); - int inactive = (int) ((double) (now - c.tsCreated) / 1000.0); - if (inactive > 600) { - i.remove(); - } else { - statsFile.write(""); - } + synchronized (xmpp.getOutCache()) { + for (Iterator i = xmpp.getOutCache().iterator(); i.hasNext(); ) { + CacheEntry c = i.next(); + int inactive = (int) ((double) (now - c.tsCreated) / 1000.0); + if (inactive > 600) { + i.remove(); } } - - statsFile.write("
hostlivesize
" + c.hostname + "" + inactive + "" + c.xml.length() + "
"); - statsFile.close(); - - try { - Thread.sleep(10000); - } catch (InterruptedException e) { - } - } catch (FileNotFoundException e) { - } catch (UnsupportedEncodingException e) { } + try { + Thread.sleep(10000); + } catch (InterruptedException e) { + } + } } } -- cgit v1.2.3