1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-25 15:52:06 +01:00

Add and use AbstractConnectionClosedListener

This commit is contained in:
Florian Schmaus 2015-01-07 19:56:44 +01:00
parent b23c3226d2
commit 82eb9b18dd
7 changed files with 56 additions and 47 deletions

View file

@ -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();
}

View file

@ -135,8 +135,9 @@ public class Roster {
connection.addSyncPacketListener(presencePacketListener, PRESENCE_PACKET_FILTER); connection.addSyncPacketListener(presencePacketListener, PRESENCE_PACKET_FILTER);
// Listen for connection events // Listen for connection events
connection.addConnectionListener(new AbstractConnectionListener() { connection.addConnectionListener(new AbstractConnectionClosedListener() {
@Override
public void authenticated(XMPPConnection connection) { public void authenticated(XMPPConnection connection) {
// Anonymous users can't have a roster, but it is possible that a Roster instance is // 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 // retrieved if getRoster() is called *before* connect(). So we have to check here
@ -154,12 +155,8 @@ public class Roster {
} }
} }
public void connectionClosed() { @Override
// Changes the presence available contacts to unavailable public void connectionTerminated() {
setOfflinePresencesAndResetLoaded();
}
public void connectionClosedOnError(Exception e) {
// Changes the presence available contacts to unavailable // Changes the presence available contacts to unavailable
setOfflinePresencesAndResetLoaded(); setOfflinePresencesAndResetLoaded();
} }

View file

@ -24,7 +24,7 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.concurrent.ConcurrentHashMap; 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;
import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotConnectedException;
@ -107,15 +107,10 @@ public class InBandBytestreamManager implements BytestreamManager {
InBandBytestreamManager.getByteStreamManager(connection); InBandBytestreamManager.getByteStreamManager(connection);
// register shutdown listener // register shutdown listener
connection.addConnectionListener(new AbstractConnectionListener() { connection.addConnectionListener(new AbstractConnectionClosedListener() {
@Override @Override
public void connectionClosed() { public void connectionTerminated() {
InBandBytestreamManager.getByteStreamManager(connection).disableService();
}
@Override
public void connectionClosedOnError(Exception e) {
InBandBytestreamManager.getByteStreamManager(connection).disableService(); InBandBytestreamManager.getByteStreamManager(connection).disableService();
} }

View file

@ -28,7 +28,7 @@ import java.util.Random;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeoutException; 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;
import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.SmackException.FeatureNotSupportedException; import org.jivesoftware.smack.SmackException.FeatureNotSupportedException;
@ -100,15 +100,10 @@ public final class Socks5BytestreamManager implements BytestreamManager {
Socks5BytestreamManager.getBytestreamManager(connection); Socks5BytestreamManager.getBytestreamManager(connection);
// register shutdown listener // register shutdown listener
connection.addConnectionListener(new AbstractConnectionListener() { connection.addConnectionListener(new AbstractConnectionClosedListener() {
@Override @Override
public void connectionClosed() { public void connectionTerminated() {
Socks5BytestreamManager.getBytestreamManager(connection).disableService();
}
@Override
public void connectionClosedOnError(Exception e) {
Socks5BytestreamManager.getBytestreamManager(connection).disableService(); Socks5BytestreamManager.getBytestreamManager(connection).disableService();
} }

View file

@ -16,7 +16,7 @@
*/ */
package org.jivesoftware.smackx.caps; 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.NoResponseException;
import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotConnectedException;
import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.XMPPConnection;
@ -274,7 +274,7 @@ public class EntityCapsManager extends Manager {
this.sdm = ServiceDiscoveryManager.getInstanceFor(connection); this.sdm = ServiceDiscoveryManager.getInstanceFor(connection);
instances.put(connection, this); instances.put(connection, this);
connection.addConnectionListener(new AbstractConnectionListener() { connection.addConnectionListener(new AbstractConnectionClosedListener() {
@Override @Override
public void connected(XMPPConnection connection) { public void connected(XMPPConnection connection) {
// It's not clear when a server would report the caps stream // It's not clear when a server would report the caps stream
@ -290,11 +290,7 @@ public class EntityCapsManager extends Manager {
processCapsStreamFeatureIfAvailable(connection); processCapsStreamFeatureIfAvailable(connection);
} }
@Override @Override
public void connectionClosed() { public void connectionTerminated() {
presenceSend = false;
}
@Override
public void connectionClosedOnError(Exception e) {
presenceSend = false; presenceSend = false;
} }

View file

@ -1,6 +1,6 @@
/** /**
* *
* Copyright 2012-2014 Florian Schmaus * Copyright 2012-2015 Florian Schmaus
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with 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.Level;
import java.util.logging.Logger; 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;
import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NoResponseException;
import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotConnectedException;
@ -135,17 +135,13 @@ public class PingManager extends Manager {
connection().sendPacket(ping.getPong()); connection().sendPacket(ping.getPong());
} }
}, PING_PACKET_FILTER); }, PING_PACKET_FILTER);
connection.addConnectionListener(new AbstractConnectionListener() { connection.addConnectionListener(new AbstractConnectionClosedListener() {
@Override @Override
public void authenticated(XMPPConnection connection) { public void authenticated(XMPPConnection connection) {
maybeSchedulePingServerTask(); maybeSchedulePingServerTask();
} }
@Override @Override
public void connectionClosed() { public void connectionTerminated() {
maybeStopPingServerTask();
}
@Override
public void connectionClosedOnError(Exception arg0) {
maybeStopPingServerTask(); maybeStopPingServerTask();
} }
}); });

View file

@ -23,7 +23,7 @@ import java.util.Map;
import java.util.Random; import java.util.Random;
import java.util.logging.Logger; import java.util.logging.Logger;
import org.jivesoftware.smack.AbstractConnectionListener; import org.jivesoftware.smack.AbstractConnectionClosedListener;
import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.ConnectionListener;
import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.PacketListener;
import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.SmackException;
@ -628,14 +628,9 @@ public class JingleSession extends JingleNegotiator implements MediaReceivedList
*/ */
private void installConnectionListeners(final XMPPConnection connection) { private void installConnectionListeners(final XMPPConnection connection) {
if (connection != null) { if (connection != null) {
connectionListener = new AbstractConnectionListener() { connectionListener = new AbstractConnectionClosedListener() {
@Override @Override
public void connectionClosed() { public void connectionTerminated() {
unregisterInstanceFor(connection);
}
@Override
public void connectionClosedOnError(java.lang.Exception e) {
unregisterInstanceFor(connection); unregisterInstanceFor(connection);
} }
}; };