From 82eb9b18dd1e0ae6827147c9ec4d5d0f66c45ddd Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Wed, 7 Jan 2015 19:56:44 +0100 Subject: [PATCH] Add and use AbstractConnectionClosedListener --- .../AbstractConnectionClosedListener.java | 35 +++++++++++++++++++ .../java/org/jivesoftware/smack/Roster.java | 13 +++---- .../ibb/InBandBytestreamManager.java | 11 ++---- .../socks5/Socks5BytestreamManager.java | 11 ++---- .../smackx/caps/EntityCapsManager.java | 10 ++---- .../jivesoftware/smackx/ping/PingManager.java | 12 +++---- .../smackx/jingleold/JingleSession.java | 11 ++---- 7 files changed, 56 insertions(+), 47 deletions(-) create mode 100644 smack-core/src/main/java/org/jivesoftware/smack/AbstractConnectionClosedListener.java diff --git a/smack-core/src/main/java/org/jivesoftware/smack/AbstractConnectionClosedListener.java b/smack-core/src/main/java/org/jivesoftware/smack/AbstractConnectionClosedListener.java new file mode 100644 index 000000000..31f63d53d --- /dev/null +++ b/smack-core/src/main/java/org/jivesoftware/smack/AbstractConnectionClosedListener.java @@ -0,0 +1,35 @@ +/** + * + * Copyright 2015 Florian Schmaus + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jivesoftware.smack; + +/** + * + */ +public abstract class AbstractConnectionClosedListener extends AbstractConnectionListener { + + @Override + public final void connectionClosed() { + connectionTerminated(); + } + + @Override + public final void connectionClosedOnError(Exception e) { + connectionTerminated(); + } + + public abstract void connectionTerminated(); +} diff --git a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java index b01fe0a0a..f7049957c 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java @@ -135,8 +135,9 @@ public class Roster { connection.addSyncPacketListener(presencePacketListener, PRESENCE_PACKET_FILTER); // Listen for connection events - connection.addConnectionListener(new AbstractConnectionListener() { - + connection.addConnectionListener(new AbstractConnectionClosedListener() { + + @Override public void authenticated(XMPPConnection connection) { // Anonymous users can't have a roster, but it is possible that a Roster instance is // retrieved if getRoster() is called *before* connect(). So we have to check here @@ -154,12 +155,8 @@ public class Roster { } } - public void connectionClosed() { - // Changes the presence available contacts to unavailable - setOfflinePresencesAndResetLoaded(); - } - - public void connectionClosedOnError(Exception e) { + @Override + public void connectionTerminated() { // Changes the presence available contacts to unavailable setOfflinePresencesAndResetLoaded(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java index 4c82cf892..499106b20 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/ibb/InBandBytestreamManager.java @@ -24,7 +24,7 @@ import java.util.Map; import java.util.Random; import java.util.concurrent.ConcurrentHashMap; -import org.jivesoftware.smack.AbstractConnectionListener; +import org.jivesoftware.smack.AbstractConnectionClosedListener; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NotConnectedException; @@ -107,15 +107,10 @@ public class InBandBytestreamManager implements BytestreamManager { InBandBytestreamManager.getByteStreamManager(connection); // register shutdown listener - connection.addConnectionListener(new AbstractConnectionListener() { + connection.addConnectionListener(new AbstractConnectionClosedListener() { @Override - public void connectionClosed() { - InBandBytestreamManager.getByteStreamManager(connection).disableService(); - } - - @Override - public void connectionClosedOnError(Exception e) { + public void connectionTerminated() { InBandBytestreamManager.getByteStreamManager(connection).disableService(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java index 3607c91ab..43706b793 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java @@ -28,7 +28,7 @@ import java.util.Random; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeoutException; -import org.jivesoftware.smack.AbstractConnectionListener; +import org.jivesoftware.smack.AbstractConnectionClosedListener; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.FeatureNotSupportedException; @@ -100,15 +100,10 @@ public final class Socks5BytestreamManager implements BytestreamManager { Socks5BytestreamManager.getBytestreamManager(connection); // register shutdown listener - connection.addConnectionListener(new AbstractConnectionListener() { + connection.addConnectionListener(new AbstractConnectionClosedListener() { @Override - public void connectionClosed() { - Socks5BytestreamManager.getBytestreamManager(connection).disableService(); - } - - @Override - public void connectionClosedOnError(Exception e) { + public void connectionTerminated() { Socks5BytestreamManager.getBytestreamManager(connection).disableService(); } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java index 97b8f6946..cf495478d 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/caps/EntityCapsManager.java @@ -16,7 +16,7 @@ */ package org.jivesoftware.smackx.caps; -import org.jivesoftware.smack.AbstractConnectionListener; +import org.jivesoftware.smack.AbstractConnectionClosedListener; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.XMPPConnection; @@ -274,7 +274,7 @@ public class EntityCapsManager extends Manager { this.sdm = ServiceDiscoveryManager.getInstanceFor(connection); instances.put(connection, this); - connection.addConnectionListener(new AbstractConnectionListener() { + connection.addConnectionListener(new AbstractConnectionClosedListener() { @Override public void connected(XMPPConnection connection) { // It's not clear when a server would report the caps stream @@ -290,11 +290,7 @@ public class EntityCapsManager extends Manager { processCapsStreamFeatureIfAvailable(connection); } @Override - public void connectionClosed() { - presenceSend = false; - } - @Override - public void connectionClosedOnError(Exception e) { + public void connectionTerminated() { presenceSend = false; } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java index 69c7c04c5..1334c50f7 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/ping/PingManager.java @@ -1,6 +1,6 @@ /** * - * Copyright 2012-2014 Florian Schmaus + * Copyright 2012-2015 Florian Schmaus * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -28,7 +28,7 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Level; import java.util.logging.Logger; -import org.jivesoftware.smack.AbstractConnectionListener; +import org.jivesoftware.smack.AbstractConnectionClosedListener; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NotConnectedException; @@ -135,17 +135,13 @@ public class PingManager extends Manager { connection().sendPacket(ping.getPong()); } }, PING_PACKET_FILTER); - connection.addConnectionListener(new AbstractConnectionListener() { + connection.addConnectionListener(new AbstractConnectionClosedListener() { @Override public void authenticated(XMPPConnection connection) { maybeSchedulePingServerTask(); } @Override - public void connectionClosed() { - maybeStopPingServerTask(); - } - @Override - public void connectionClosedOnError(Exception arg0) { + public void connectionTerminated() { maybeStopPingServerTask(); } }); diff --git a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java index 73af7edde..8efa0574a 100644 --- a/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java +++ b/smack-jingle-old/src/main/java/org/jivesoftware/smackx/jingleold/JingleSession.java @@ -23,7 +23,7 @@ import java.util.Map; import java.util.Random; import java.util.logging.Logger; -import org.jivesoftware.smack.AbstractConnectionListener; +import org.jivesoftware.smack.AbstractConnectionClosedListener; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.SmackException; @@ -628,14 +628,9 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList */ private void installConnectionListeners(final XMPPConnection connection) { if (connection != null) { - connectionListener = new AbstractConnectionListener() { + connectionListener = new AbstractConnectionClosedListener() { @Override - public void connectionClosed() { - unregisterInstanceFor(connection); - } - - @Override - public void connectionClosedOnError(java.lang.Exception e) { + public void connectionTerminated() { unregisterInstanceFor(connection); } };