aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/com/juick/xmpp/s2s/Shutdown.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/juick/xmpp/s2s/Shutdown.java')
-rw-r--r--src/main/java/com/juick/xmpp/s2s/Shutdown.java45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/main/java/com/juick/xmpp/s2s/Shutdown.java b/src/main/java/com/juick/xmpp/s2s/Shutdown.java
new file mode 100644
index 00000000..fb3543f8
--- /dev/null
+++ b/src/main/java/com/juick/xmpp/s2s/Shutdown.java
@@ -0,0 +1,45 @@
+package com.juick.xmpp.s2s;
+
+import java.sql.SQLException;
+import java.util.Iterator;
+
+/**
+ *
+ * @author ugnich
+ */
+public class Shutdown extends Thread {
+
+ @Override
+ public void run() {
+ System.out.println("SHUTTING DOWN");
+
+ synchronized (XMPPComponent.outConnections) {
+ for (Iterator<ConnectionOut> i = XMPPComponent.outConnections.iterator(); i.hasNext();) {
+ ConnectionOut c = i.next();
+ c.closeConnection();
+ i.remove();
+ }
+ }
+
+ synchronized (XMPPComponent.inConnections) {
+ for (Iterator<ConnectionIn> i = XMPPComponent.inConnections.iterator(); i.hasNext();) {
+ ConnectionIn c = i.next();
+ c.closeConnection();
+ i.remove();
+ }
+ }
+
+ XMPPComponent.connRouter.closeConnection();
+
+ synchronized (XMPPComponent.sqlSync) {
+ if (XMPPComponent.sql != null) {
+ try {
+ XMPPComponent.sql.close();
+ XMPPComponent.sql = null;
+ } catch (SQLException e) {
+ System.err.println("SQL ERROR: " + e);
+ }
+ }
+ }
+ }
+}