From 127319a821bb14a4b2cd374b8a2b54207091f27f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Niess?= Date: Tue, 9 Feb 2010 11:55:56 +0000 Subject: [PATCH] SMACK-279: The XMPPConnection extends the new abstract Connection class git-svn-id: http://svn.igniterealtime.org/svn/repos/smack/trunk@11613 b35dd754-fafc-0310-a699-88a17e54d16e --- documentation/connections.html | 9 +- documentation/debugging.html | 4 +- documentation/extensions/disco.html | 14 +- documentation/extensions/filetransfer.html | 4 +- documentation/extensions/messageevents.html | 8 +- documentation/extensions/muc.html | 18 +- documentation/extensions/pubsub.html | 34 +- documentation/extensions/rosterexchange.html | 2 +- documentation/extensions/xhtml.html | 4 +- documentation/gettingstarted.html | 12 +- documentation/messaging.html | 2 +- documentation/overview.html | 2 +- documentation/processing.html | 4 +- documentation/roster.html | 2 +- .../smackx/jingle/JingleManager.java | 24 +- .../smackx/jingle/JingleNegotiator.java | 8 +- .../smackx/jingle/JingleSession.java | 20 +- .../smackx/jingle/mediaimpl/demo/Demo.java | 3 +- .../smackx/jingle/nat/BridgedResolver.java | 8 +- .../jingle/nat/BridgedTransportManager.java | 6 +- .../smackx/jingle/nat/ICEResolver.java | 6 +- .../jingle/nat/ICETransportManager.java | 4 +- .../smackx/jingle/nat/RTPBridge.java | 42 +- .../jivesoftware/smackx/jingle/nat/STUN.java | 24 +- .../smackx/jingle/nat/TransportCandidate.java | 12 +- .../jivesoftware/smack/AccountManager.java | 6 +- source/org/jivesoftware/smack/Chat.java | 2 +- .../org/jivesoftware/smack/ChatManager.java | 4 +- source/org/jivesoftware/smack/Connection.java | 856 ++++++++++++++++++ .../smack/ConnectionConfiguration.java | 24 +- .../smack/ConnectionCreationListener.java | 6 +- .../smack/ConnectionListener.java | 6 +- .../smack/NonSASLAuthentication.java | 7 +- .../jivesoftware/smack/PacketCollector.java | 12 +- .../jivesoftware/smack/PacketInterceptor.java | 4 +- .../jivesoftware/smack/PacketListener.java | 2 +- .../org/jivesoftware/smack/PacketReader.java | 100 +- .../org/jivesoftware/smack/PacketWriter.java | 165 +--- .../smack/PrivacyListManager.java | 16 +- .../smack/ReconnectionManager.java | 25 +- source/org/jivesoftware/smack/Roster.java | 6 +- .../org/jivesoftware/smack/RosterEntry.java | 6 +- .../org/jivesoftware/smack/RosterGroup.java | 4 +- .../smack/SASLAuthentication.java | 4 +- .../jivesoftware/smack/XMPPConnection.java | 579 ++---------- .../smack/debugger/ConsoleDebugger.java | 6 +- .../smack/debugger/LiteDebugger.java | 4 +- .../smack/debugger/SmackDebugger.java | 2 +- .../smack/packet/Authentication.java | 4 +- .../smack/provider/ProviderManager.java | 8 +- .../jivesoftware/smackx/ChatStateManager.java | 16 +- .../smackx/LastActivityManager.java | 20 +- .../smackx/MessageEventManager.java | 8 +- .../smackx/MultipleRecipientInfo.java | 2 +- .../smackx/MultipleRecipientManager.java | 14 +- .../smackx/OfflineMessageManager.java | 6 +- .../org/jivesoftware/smackx/PEPManager.java | 8 +- .../smackx/PrivateDataManager.java | 8 +- .../smackx/RosterExchangeManager.java | 8 +- .../smackx/ServiceDiscoveryManager.java | 20 +- .../smackx/SharedGroupManager.java | 4 +- .../org/jivesoftware/smackx/XHTMLManager.java | 12 +- .../smackx/bookmark/BookmarkManager.java | 8 +- .../smackx/bookmark/Bookmarks.java | 2 +- .../smackx/commands/AdHocCommandManager.java | 22 +- .../smackx/commands/RemoteCommand.java | 6 +- .../smackx/debugger/EnhancedDebugger.java | 8 +- .../filetransfer/FaultTolerantNegotiator.java | 8 +- .../filetransfer/FileTransferManager.java | 8 +- .../filetransfer/FileTransferNegotiator.java | 20 +- .../filetransfer/IBBTransferNegotiator.java | 4 +- .../Socks5TransferNegotiator.java | 6 +- .../Socks5TransferNegotiatorManager.java | 6 +- .../smackx/filetransfer/StreamNegotiator.java | 4 +- .../ConnectionDetachedPacketCollector.java | 2 +- .../jivesoftware/smackx/muc/HostedRoom.java | 4 +- .../smackx/muc/InvitationListener.java | 6 +- .../smackx/muc/MultiUserChat.java | 44 +- .../smackx/muc/RoomListenerMultiplexor.java | 34 +- .../smackx/packet/LastActivity.java | 8 +- .../org/jivesoftware/smackx/packet/Nick.java | 3 - .../smackx/packet/SyncPacketSend.java | 6 +- .../org/jivesoftware/smackx/packet/VCard.java | 14 +- .../smackx/pubsub/Affiliation.java | 4 +- .../smackx/pubsub/CollectionNode.java | 4 +- .../jivesoftware/smackx/pubsub/LeafNode.java | 4 +- .../org/jivesoftware/smackx/pubsub/Node.java | 6 +- .../smackx/pubsub/PubSubManager.java | 16 +- .../smackx/pubsub/packet/SyncPacketSend.java | 6 +- .../smackx/search/UserSearch.java | 14 +- .../smackx/search/UserSearchManager.java | 10 +- .../smackx/workgroup/agent/Agent.java | 8 +- .../smackx/workgroup/agent/AgentRoster.java | 6 +- .../smackx/workgroup/agent/AgentSession.java | 12 +- .../smackx/workgroup/agent/Offer.java | 6 +- .../workgroup/agent/OfferConfirmation.java | 4 +- .../workgroup/agent/TranscriptManager.java | 6 +- .../agent/TranscriptSearchManager.java | 6 +- .../smackx/workgroup/user/Workgroup.java | 8 +- .../jivesoftware/smack/PacketReaderTest.java | 6 +- .../smackx/muc/MultiUserChatTest.java | 4 +- .../smackx/pubsub/TestEvents.java | 1 - 102 files changed, 1420 insertions(+), 1194 deletions(-) create mode 100644 source/org/jivesoftware/smack/Connection.java diff --git a/documentation/connections.html b/documentation/connections.html index 173edd6ac..4ef2f55ff 100644 --- a/documentation/connections.html +++ b/documentation/connections.html @@ -19,8 +19,9 @@

- The org.jivesoftware.smack.XMPPConnection class manages your connection to an XMPP - server. Two constructors are available. The first, XMPPConnection(String) takes + The org.jivesoftware.smack.Connection class manages your connection to an XMPP + server. The default implementation is the org.jivesoftware.smack.XMPPConnection + class. Two constructors are mainly used. The first, XMPPConnection(String) takes the server name you'd like to connect to as an argument. All default connection settings will be used:

* * @author Matt Tucker - * @see XMPPConnection#getRoster() + * @see Connection#getRoster() */ public class Roster { @@ -55,7 +55,7 @@ public class Roster { */ private static SubscriptionMode defaultSubscriptionMode = SubscriptionMode.accept_all; - private XMPPConnection connection; + private Connection connection; private final Map groups; private final Map entries; private final List unfiledEntries; @@ -97,7 +97,7 @@ public class Roster { * * @param connection an XMPP connection. */ - Roster(final XMPPConnection connection) { + Roster(final Connection connection) { this.connection = connection; groups = new ConcurrentHashMap(); unfiledEntries = new CopyOnWriteArrayList(); diff --git a/source/org/jivesoftware/smack/RosterEntry.java b/source/org/jivesoftware/smack/RosterEntry.java index 69c75a09d..f431c20da 100644 --- a/source/org/jivesoftware/smack/RosterEntry.java +++ b/source/org/jivesoftware/smack/RosterEntry.java @@ -37,7 +37,7 @@ public class RosterEntry { private String name; private RosterPacket.ItemType type; private RosterPacket.ItemStatus status; - private XMPPConnection connection; + private Connection connection; /** * Creates a new roster entry. @@ -49,7 +49,7 @@ public class RosterEntry { * @param connection a connection to the XMPP server. */ RosterEntry(String user, String name, RosterPacket.ItemType type, - RosterPacket.ItemStatus status, XMPPConnection connection) { + RosterPacket.ItemStatus status, Connection connection) { this.user = user; this.name = name; this.type = type; @@ -114,7 +114,7 @@ public class RosterEntry { List results = new ArrayList(); // Loop through all roster groups and find the ones that contain this // entry. This algorithm should be fine - for (RosterGroup group: connection.roster.getGroups()) { + for (RosterGroup group: connection.getRoster().getGroups()) { if (group.contains(this)) { results.add(group); } diff --git a/source/org/jivesoftware/smack/RosterGroup.java b/source/org/jivesoftware/smack/RosterGroup.java index 83e3804a3..e479a85ca 100644 --- a/source/org/jivesoftware/smack/RosterGroup.java +++ b/source/org/jivesoftware/smack/RosterGroup.java @@ -39,7 +39,7 @@ import java.util.List; public class RosterGroup { private String name; - private XMPPConnection connection; + private Connection connection; private final List entries; /** @@ -48,7 +48,7 @@ public class RosterGroup { * @param name the name of the group. * @param connection the connection the group belongs to. */ - RosterGroup(String name, XMPPConnection connection) { + RosterGroup(String name, Connection connection) { this.name = name; this.connection = connection; entries = new ArrayList(); diff --git a/source/org/jivesoftware/smack/SASLAuthentication.java b/source/org/jivesoftware/smack/SASLAuthentication.java index e76521772..a7487878b 100644 --- a/source/org/jivesoftware/smack/SASLAuthentication.java +++ b/source/org/jivesoftware/smack/SASLAuthentication.java @@ -66,7 +66,7 @@ public class SASLAuthentication implements UserAuthentication { private static Map implementedMechanisms = new HashMap(); private static List mechanismsPreferences = new ArrayList(); - private XMPPConnection connection; + private Connection connection; private Collection serverMechanisms = new ArrayList(); private SASLMechanism currentMechanism = null; /** @@ -171,7 +171,7 @@ public class SASLAuthentication implements UserAuthentication { return answer; } - SASLAuthentication(XMPPConnection connection) { + SASLAuthentication(Connection connection) { super(); this.connection = connection; this.init(); diff --git a/source/org/jivesoftware/smack/XMPPConnection.java b/source/org/jivesoftware/smack/XMPPConnection.java index 52f9a4b09..65274809d 100644 --- a/source/org/jivesoftware/smack/XMPPConnection.java +++ b/source/org/jivesoftware/smack/XMPPConnection.java @@ -20,7 +20,6 @@ package org.jivesoftware.smack; -import org.jivesoftware.smack.debugger.SmackDebugger; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.packet.Presence; @@ -43,102 +42,21 @@ import java.security.KeyStore; import java.security.Provider; import java.security.Security; import java.util.Collection; -import java.util.Set; -import java.util.concurrent.CopyOnWriteArraySet; -import java.util.concurrent.atomic.AtomicInteger; /** - * Creates a connection to a XMPP server. A simple use of this API might - * look like the following: - *
- * // Create a connection to the igniterealtime.org XMPP server.
- * XMPPConnection con = new XMPPConnection("igniterealtime.org");
- * // Connect to the server
- * con.connect();
- * // Most servers require you to login before performing other tasks.
- * con.login("jsmith", "mypass");
- * // Start a new conversation with John Doe and send him a message.
- * Chat chat = connection.getChatManager().createChat("jdoe@igniterealtime.org", new MessageListener() {
- * 

- * public void processMessage(Chat chat, Message message) { - * // Print out any messages we get back to standard out. - * System.out.println("Received message: " + message); - * } - * }); - * chat.sendMessage("Howdy!"); - * // Disconnect from the server - * con.disconnect(); - *

- *

- * XMPPConnections can be reused between connections. This means that an XMPPConnection - * may be connected, disconnected and then connected again. Listeners of the XMPPConnection - * will be retained accross connections.

- *

- * If a connected XMPPConnection gets disconnected abruptly then it will try to reconnect - * again. To stop the reconnection process, use {@link #disconnect()}. Once stopped - * you can use {@link #connect()} to manually connect to the server. - * + * Creates a socket connection to a XMPP server. This is the default connection + * to a Jabber server and is specified in the XMPP Core (RFC 3920). + * + * @see Connection * @author Matt Tucker */ -public class XMPPConnection { +public class XMPPConnection extends Connection { /** - * Value that indicates whether debugging is enabled. When enabled, a debug - * window will apear for each new connection that will contain the following - * information:

    - *
  • Client Traffic -- raw XML traffic generated by Smack and sent to the server. - *
  • Server Traffic -- raw XML traffic sent by the server to the client. - *
  • Interpreted Packets -- shows XML packets from the server as parsed by Smack. - *
- *

- * Debugging can be enabled by setting this field to true, or by setting the Java system - * property smack.debugEnabled to true. The system property can be set on the - * command line such as "java SomeApp -Dsmack.debugEnabled=true". + * The socket which is used for this connection. */ - public static boolean DEBUG_ENABLED = false; - - private final static Set connectionEstablishedListeners = - new CopyOnWriteArraySet(); - - // Counter to uniquely identify connections that are created. This is distinct from the - // connection ID, which is a value sent by the server once a connection is made. - private static AtomicInteger connectionCounter = new AtomicInteger(0); - - // CallbackHandler to handle prompting for theh keystore password. - private CallbackHandler callbackHandler = null; - - static { - // Use try block since we may not have permission to get a system - // property (for example, when an applet). - try { - DEBUG_ENABLED = Boolean.getBoolean("smack.debugEnabled"); - } - catch (Exception e) { - // Ignore. - } - // Ensure the SmackConfiguration class is loaded by calling a method in it. - SmackConfiguration.getVersion(); - } - - private SmackDebugger debugger = null; - - /** - * IP address or host name of the server. This information is only used when - * creating new socket connections to the server. If this information is not - * configured then it will be assumed that the host name matches the service name. - */ - String host; - int port; Socket socket; - /** - * Hostname of the XMPP server. Usually servers use the same service name as the name - * of the server. However, there are some servers like google where host would be - * talk.google.com and the serviceName would be gmail.com. - */ - String serviceName; - - int connectionCounterValue = connectionCounter.getAndIncrement(); String connectionID = null; private String user = null; private boolean connected = false; @@ -158,25 +76,15 @@ public class XMPPConnection { PacketReader packetReader; Roster roster = null; - private AccountManager accountManager = null; - private SASLAuthentication saslAuthentication = new SASLAuthentication(this); - - Writer writer; - Reader reader; /** * Collection of available stream compression methods offered by the server. */ - private Collection compressionMethods; + private Collection compressionMethods; /** * Flag that indicates if stream compression is actually in use. */ private boolean usingCompression; - /** - * Holds the initial configuration used while creating the connection. - */ - private ConnectionConfiguration configuration; - private ChatManager chatManager; /** @@ -203,12 +111,11 @@ public class XMPPConnection { */ public XMPPConnection(String serviceName, CallbackHandler callbackHandler) { // Create the configuration for this new connection - ConnectionConfiguration config = new ConnectionConfiguration(serviceName); + super(new ConnectionConfiguration(serviceName)); config.setCompressionEnabled(false); config.setSASLAuthenticationEnabled(true); config.setDebuggerEnabled(DEBUG_ENABLED); - this.configuration = config; - this.callbackHandler = callbackHandler; + config.setCallbackHandler(callbackHandler); } /** @@ -221,12 +128,10 @@ public class XMPPConnection { */ public XMPPConnection(String serviceName) { // Create the configuration for this new connection - ConnectionConfiguration config = new ConnectionConfiguration(serviceName); + super(new ConnectionConfiguration(serviceName)); config.setCompressionEnabled(false); config.setSASLAuthenticationEnabled(true); config.setDebuggerEnabled(DEBUG_ENABLED); - this.configuration = config; - this.callbackHandler = config.getCallbackHandler(); } /** @@ -239,8 +144,7 @@ public class XMPPConnection { * @param config the connection configuration. */ public XMPPConnection(ConnectionConfiguration config) { - this.configuration = config; - this.callbackHandler = config.getCallbackHandler(); + super(config); } /** @@ -262,19 +166,10 @@ public class XMPPConnection { * @param callbackHandler the CallbackHandler used to prompt for the password to the keystore. */ public XMPPConnection(ConnectionConfiguration config, CallbackHandler callbackHandler) { - this.configuration = config; - this.callbackHandler = callbackHandler; + super(config); + config.setCallbackHandler(callbackHandler); } - - /** - * Returns the connection ID for this connection, which is the value set by the server - * when opening a XMPP stream. If the server does not set a connection ID, this value - * will be null. This value will be null if not connected to the server. - * - * @return the ID of this connection returned from the XMPP server or null if - * not connected to the server. - */ public String getConnectionID() { if (!isConnected()) { return null; @@ -282,43 +177,6 @@ public class XMPPConnection { return connectionID; } - /** - * Returns the name of the service provided by the XMPP server for this connection. After - * authenticating with the server the returned value may be different. - * - * @return the name of the service provided by the XMPP server. - */ - public String getServiceName() { - return serviceName; - } - - /** - * Returns the host name of the server where the XMPP server is running. This would be the - * IP address of the server or a name that may be resolved by a DNS server. - * - * @return the host name of the server where the XMPP server is running. - */ - public String getHost() { - return host; - } - - /** - * Returns the port number of the XMPP server for this connection. The default port - * for normal connections is 5222. The default port for SSL connections is 5223. - * - * @return the port number of the XMPP server. - */ - public int getPort() { - return port; - } - - /** - * Returns the full XMPP address of the user that is logged in to the connection or - * null if not logged in yet. An XMPP address is in the form - * username@server/resource. - * - * @return the full XMPP address of the user logged in. - */ public String getUser() { if (!isAuthenticated()) { return null; @@ -326,29 +184,6 @@ public class XMPPConnection { return user; } - /** - * Logs in to the server using the strongest authentication mode supported by - * the server, then sets presence to available. If more than five seconds - * (default timeout) elapses in each step of the authentication process without - * a response from the server, or if an error occurs, a XMPPException will be thrown.

- * - * It is possible to log in without sending an initial available presence by using - * {@link ConnectionConfiguration#setSendPresence(boolean)}. If this connection is - * not interested in loading its roster upon login then use - * {@link ConnectionConfiguration#setRosterLoadedAtLogin(boolean)}. - * Finally, if you want to not pass a password and instead use a more advanced mechanism - * while using SASL then you may be interested in using - * {@link ConnectionConfiguration#setCallbackHandler(javax.security.auth.callback.CallbackHandler)}. - * For more advanced login settings see {@link ConnectionConfiguration}. - * - * @param username the username. - * @param password the password or null if using a CallbackHandler. - * @throws XMPPException if an error occurs. - */ - public void login(String username, String password) throws XMPPException { - login(username, password, "Smack"); - } - /** * Logs in to the server using the strongest authentication mode supported by * the server. If the server supports SASL authentication then the user will be @@ -388,7 +223,7 @@ public class XMPPConnection { username = username.toLowerCase().trim(); String response; - if (configuration.isSASLAuthenticationEnabled() && + if (config.isSASLAuthenticationEnabled() && saslAuthentication.hasNonAnonymousAuthentication()) { // Authenticate using SASL if (password != null) { @@ -396,7 +231,7 @@ public class XMPPConnection { } else { response = saslAuthentication - .authenticate(username, resource, configuration.getCallbackHandler()); + .authenticate(username, resource, config.getCallbackHandler()); } } else { @@ -408,17 +243,17 @@ public class XMPPConnection { if (response != null) { this.user = response; // Update the serviceName with the one returned by the server - this.serviceName = StringUtils.parseServer(response); + config.setServiceName(StringUtils.parseServer(response)); } else { - this.user = username + "@" + this.serviceName; + this.user = username + "@" + getServiceName(); if (resource != null) { this.user += "/" + resource; } } // If compression is enabled then request the server to use stream compression - if (configuration.isCompressionEnabled()) { + if (config.isCompressionEnabled()) { useCompression(); } @@ -426,12 +261,12 @@ public class XMPPConnection { if (this.roster == null) { this.roster = new Roster(this); } - if (configuration.isRosterLoadedAtLogin()) { - roster.reload(); + if (config.isRosterLoadedAtLogin()) { + this.roster.reload(); } // Set presence to online. - if (configuration.isSendPresence()) { + if (config.isSendPresence()) { packetWriter.sendPacket(new Presence(Presence.Type.available)); } @@ -440,13 +275,13 @@ public class XMPPConnection { anonymous = false; // Stores the autentication for future reconnection - this.getConfiguration().setLoginInfo(username, password, resource); + config.setLoginInfo(username, password, resource); // If debugging is enabled, change the the debug window title to include the // name we are now logged-in as. // If DEBUG_ENABLED was set to true AFTER the connection was created the debugger // will be null - if (configuration.isDebuggerEnabled() && debugger != null) { + if (config.isDebuggerEnabled() && debugger != null) { debugger.userHasLogged(user); } } @@ -470,7 +305,7 @@ public class XMPPConnection { } String response; - if (configuration.isSASLAuthenticationEnabled() && + if (config.isSASLAuthenticationEnabled() && saslAuthentication.hasAnonymousAuthentication()) { response = saslAuthentication.authenticateAnonymously(); } @@ -482,10 +317,10 @@ public class XMPPConnection { // Set the user value. this.user = response; // Update the serviceName with the one returned by the server - this.serviceName = StringUtils.parseServer(response); + config.setServiceName(StringUtils.parseServer(response)); // If compression is enabled then request the server to use stream compression - if (configuration.isCompressionEnabled()) { + if (config.isCompressionEnabled()) { useCompression(); } @@ -503,25 +338,18 @@ public class XMPPConnection { // name we are now logged-in as. // If DEBUG_ENABLED was set to true AFTER the connection was created the debugger // will be null - if (configuration.isDebuggerEnabled() && debugger != null) { + if (config.isDebuggerEnabled() && debugger != null) { debugger.userHasLogged(user); } } - /** - * Returns the roster for the user logged into the server. If the user has not yet - * logged into the server (or if the user is logged in anonymously), this method will return - * null. - * - * @return the user's roster, or null if the user has not logged in yet. - */ public Roster getRoster() { - if (!configuration.isRosterLoadedAtLogin()) { - roster.reload(); - } if (roster == null) { return null; } + if (!config.isRosterLoadedAtLogin()) { + roster.reload(); + } // If this is the first time the user has asked for the roster after calling // login, we want to wait for the server to send back the user's roster. This // behavior shields API users from having to worry about the fact that roster @@ -552,64 +380,18 @@ public class XMPPConnection { return roster; } - /** - * Returns an account manager instance for this connection. - * - * @return an account manager for this connection. - */ - public AccountManager getAccountManager() { - if (accountManager == null) { - accountManager = new AccountManager(this); - } - return accountManager; - } - - /** - * Returns a chat manager instance for this connection. The ChatManager manages all incoming and - * outgoing chats on the current connection. - * - * @return a chat manager instance for this connection. - */ - public synchronized ChatManager getChatManager() { - if (this.chatManager == null) { - this.chatManager = new ChatManager(this); - } - return this.chatManager; - } - - /** - * Returns true if currently connected to the XMPP server. - * - * @return true if connected. - */ public boolean isConnected() { return connected; } - /** - * Returns true if the connection to the server has successfully negotiated TLS. Once TLS - * has been negotiatied the connection has been secured. @see #isUsingTLS. - * - * @return true if a secure connection to the server. - */ public boolean isSecureConnection() { return isUsingTLS(); } - /** - * Returns true if currently authenticated by successfully calling the login method. - * - * @return true if authenticated. - */ public boolean isAuthenticated() { return authenticated; } - /** - * Returns true if currently authenticated anonymously. - * - * @return true if authenticated anonymously. - */ public boolean isAnonymous() { return anonymous; } @@ -667,37 +449,6 @@ public class XMPPConnection { saslAuthentication.init(); } - /** - * Closes the connection by setting presence to unavailable then closing the stream to - * the XMPP server. The XMPPConnection can still be used for connecting to the server - * again.

- *

- * This method cleans up all resources used by the connection. Therefore, the roster, - * listeners and other stateful objects cannot be re-used by simply calling connect() - * on this connection again. This is unlike the behavior during unexpected disconnects - * (and subsequent connections). In that case, all state is preserved to allow for - * more seamless error recovery. - */ - public void disconnect() { - disconnect(new Presence(Presence.Type.unavailable)); - } - - /** - * Closes the connection. A custom unavailable presence is sent to the server, followed - * by closing the stream. The XMPPConnection can still be used for connecting to the server - * again. A custom unavilable presence is useful for communicating offline presence - * information such as "On vacation". Typically, just the status text of the presence - * packet is set with online information, but most XMPP servers will deliver the full - * presence packet with whatever data is set.

- *

- * This method cleans up all resources used by the connection. Therefore, the roster, - * listeners and other stateful objects cannot be re-used by simply calling connect() - * on this connection again. This is unlike the behavior during unexpected disconnects - * (and subsequent connections). In that case, all state is preserved to allow for - * more seamless error recovery. - * - * @param unavailablePresence the presence packet to send during shutdown. - */ public void disconnect(Presence unavailablePresence) { // If not connected, ignore this request. if (packetReader == null || packetWriter == null) { @@ -719,11 +470,6 @@ public class XMPPConnection { packetReader = null; } - /** - * Sends the specified packet to the server. - * - * @param packet the packet to send. - */ public void sendPacket(Packet packet) { if (!isConnected()) { throw new IllegalStateException("Not connected to server."); @@ -735,29 +481,28 @@ public class XMPPConnection { } /** - * Registers a packet listener with this connection. A packet filter determines - * which packets will be delivered to the listener. If the same packet listener - * is added again with a different filter, only the new filter will be used. + * Registers a packet interceptor with this connection. The interceptor will be + * invoked every time a packet is about to be sent by this connection. Interceptors + * may modify the packet to be sent. A packet filter determines which packets + * will be delivered to the interceptor. * - * @param packetListener the packet listener to notify of new packets. - * @param packetFilter the packet filter to use. + * @param packetInterceptor the packet interceptor to notify of packets about to be sent. + * @param packetFilter the packet filter to use. + * @deprecated replaced by {@link Connection#addPacketInterceptor(PacketInterceptor, PacketFilter)}. */ - public void addPacketListener(PacketListener packetListener, PacketFilter packetFilter) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - packetReader.addPacketListener(packetListener, packetFilter); + public void addPacketWriterInterceptor(PacketInterceptor packetInterceptor, + PacketFilter packetFilter) { + addPacketInterceptor(packetInterceptor, packetFilter); } /** - * Removes a packet listener from this connection. + * Removes a packet interceptor. * - * @param packetListener the packet listener to remove. + * @param packetInterceptor the packet interceptor to remove. + * @deprecated replaced by {@link Connection#removePacketInterceptor(PacketInterceptor)}. */ - public void removePacketListener(PacketListener packetListener) { - if (packetReader != null) { - packetReader.removePacketListener(packetListener); - } + public void removePacketWriterInterceptor(PacketInterceptor packetInterceptor) { + removePacketInterceptor(packetInterceptor); } /** @@ -770,116 +515,25 @@ public class XMPPConnection { * * @param packetListener the packet listener to notify of sent packets. * @param packetFilter the packet filter to use. + * @deprecated replaced by {@link #addPacketSendingListener(PacketListener, PacketFilter)}. */ public void addPacketWriterListener(PacketListener packetListener, PacketFilter packetFilter) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - packetWriter.addPacketListener(packetListener, packetFilter); + addPacketSendingListener(packetListener, packetFilter); } /** - * Removes a packet listener from this connection. + * Removes a packet listener for sending packets from this connection. * * @param packetListener the packet listener to remove. + * @deprecated replaced by {@link #removePacketSendingListener(PacketListener)}. */ public void removePacketWriterListener(PacketListener packetListener) { - if (packetWriter != null) { - packetWriter.removePacketListener(packetListener); - } - } - - /** - * Registers a packet interceptor with this connection. The interceptor will be - * invoked every time a packet is about to be sent by this connection. Interceptors - * may modify the packet to be sent. A packet filter determines which packets - * will be delivered to the interceptor. - * - * @param packetInterceptor the packet interceptor to notify of packets about to be sent. - * @param packetFilter the packet filter to use. - */ - public void addPacketWriterInterceptor(PacketInterceptor packetInterceptor, - PacketFilter packetFilter) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - packetWriter.addPacketInterceptor(packetInterceptor, packetFilter); - } - - /** - * Removes a packet interceptor. - * - * @param packetInterceptor the packet interceptor to remove. - */ - public void removePacketWriterInterceptor(PacketInterceptor packetInterceptor) { - packetWriter.removePacketInterceptor(packetInterceptor); - } - - /** - * Creates a new packet collector for this connection. A packet filter determines - * which packets will be accumulated by the collector. - * - * @param packetFilter the packet filter to use. - * @return a new packet collector. - */ - public PacketCollector createPacketCollector(PacketFilter packetFilter) { - return packetReader.createPacketCollector(packetFilter); - } - - /** - * Adds a connection listener to this connection that will be notified when - * the connection closes or fails. The connection needs to already be connected - * or otherwise an IllegalStateException will be thrown. - * - * @param connectionListener a connection listener. - */ - public void addConnectionListener(ConnectionListener connectionListener) { - if (!isConnected()) { - throw new IllegalStateException("Not connected to server."); - } - if (connectionListener == null) { - return; - } - if (!packetReader.connectionListeners.contains(connectionListener)) { - packetReader.connectionListeners.add(connectionListener); - } - } - - /** - * Removes a connection listener from this connection. - * - * @param connectionListener a connection listener. - */ - public void removeConnectionListener(ConnectionListener connectionListener) { - if (packetReader != null) { - packetReader.connectionListeners.remove(connectionListener); - } - } - - /** - * Adds a new listener that will be notified when new XMPPConnections are created. Note - * that newly created connections will not be actually connected to the server. - * - * @param connectionCreationListener a listener interested on new connections. - */ - public static void addConnectionCreationListener( - ConnectionCreationListener connectionCreationListener) { - connectionEstablishedListeners.add(connectionCreationListener); - } - - /** - * Removes a listener that was interested in connection creation events. - * - * @param connectionCreationListener a listener interested on new connections. - */ - public static void removeConnectionCreationListener( - ConnectionCreationListener connectionCreationListener) { - connectionEstablishedListeners.remove(connectionCreationListener); + removePacketSendingListener(packetListener); } private void connectUsingConfiguration(ConnectionConfiguration config) throws XMPPException { - this.host = config.getHost(); - this.port = config.getPort(); + String host = config.getHost(); + int port = config.getPort(); try { if (config.getSocketFactory() == null) { this.socket = new Socket(host, port); @@ -900,7 +554,6 @@ public class XMPPConnection { throw new XMPPException(errorMessage, new XMPPError( XMPPError.Condition.remote_server_error, errorMessage), ioe); } - this.serviceName = config.getServiceName(); initConnection(); } @@ -926,10 +579,10 @@ public class XMPPConnection { // If debugging is enabled, we should start the thread that will listen for // all packets and then log them. - if (configuration.isDebuggerEnabled()) { - packetReader.addPacketListener(debugger.getReaderListener(), null); + if (config.isDebuggerEnabled()) { + addPacketListener(debugger.getReaderListener(), null); if (debugger.getWriterListener() != null) { - packetWriter.addPacketListener(debugger.getWriterListener(), null); + addPacketSendingListener(debugger.getWriterListener(), null); } } } @@ -953,7 +606,7 @@ public class XMPPConnection { if (isFirstInitialization) { // Notify listeners that a new connection has been established - for (ConnectionCreationListener listener : connectionEstablishedListeners) { + for (ConnectionCreationListener listener : getConnectionCreationListeners()) { listener.connectionCreated(this); } } @@ -1053,62 +706,7 @@ public class XMPPConnection { } // If debugging is enabled, we open a window and write out all network traffic. - if (configuration.isDebuggerEnabled()) { - if (debugger == null) { - // Detect the debugger class to use. - String className = null; - // Use try block since we may not have permission to get a system - // property (for example, when an applet). - try { - className = System.getProperty("smack.debuggerClass"); - } - catch (Throwable t) { - // Ignore. - } - Class debuggerClass = null; - if (className != null) { - try { - debuggerClass = Class.forName(className); - } - catch (Exception e) { - e.printStackTrace(); - } - } - if (debuggerClass == null) { - try { - debuggerClass = - Class.forName("org.jivesoftware.smackx.debugger.EnhancedDebugger"); - } - catch (Exception ex) { - try { - debuggerClass = - Class.forName("org.jivesoftware.smack.debugger.LiteDebugger"); - } - catch (Exception ex2) { - ex2.printStackTrace(); - } - } - } - // Create a new debugger instance. If an exception occurs then disable the debugging - // option - try { - Constructor constructor = debuggerClass - .getConstructor(XMPPConnection.class, Writer.class, Reader.class); - debugger = (SmackDebugger) constructor.newInstance(this, writer, reader); - reader = debugger.getReader(); - writer = debugger.getWriter(); - } - catch (Exception e) { - e.printStackTrace(); - DEBUG_ENABLED = false; - } - } - else { - // Obtain new reader and writer from the existing debugger - reader = debugger.newConnectionReader(reader); - writer = debugger.newConnectionWriter(writer); - } - } + initDebugger(); } /*********************************************** @@ -1125,26 +723,6 @@ public class XMPPConnection { return usingTLS; } - /** - * Returns the SASLAuthentication manager that is responsible for authenticating with - * the server. - * - * @return the SASLAuthentication manager that is responsible for authenticating with - * the server. - */ - public SASLAuthentication getSASLAuthentication() { - return saslAuthentication; - } - - /** - * Returns the configuration used to connect to the server. - * - * @return the configuration used to connect to the server. - */ - protected ConnectionConfiguration getConfiguration() { - return configuration; - } - /** * Notification message saying that the server supports TLS so confirm the server that we * want to secure the connection. @@ -1152,14 +730,14 @@ public class XMPPConnection { * @param required true when the server indicates that TLS is required. */ void startTLSReceived(boolean required) { - if (required && configuration.getSecurityMode() == + if (required && config.getSecurityMode() == ConnectionConfiguration.SecurityMode.disabled) { packetReader.notifyConnectionError(new IllegalStateException( "TLS required by server but not allowed by connection configuration")); return; } - if (configuration.getSecurityMode() == ConnectionConfiguration.SecurityMode.disabled) { + if (config.getSecurityMode() == ConnectionConfiguration.SecurityMode.disabled) { // Do not secure the connection using TLS since TLS was disabled return; } @@ -1185,24 +763,24 @@ public class XMPPConnection { KeyManager[] kms = null; PasswordCallback pcb = null; - if(callbackHandler == null) { + if(config.getCallbackHandler() == null) { ks = null; } else { //System.out.println("Keystore type: "+configuration.getKeystoreType()); - if(configuration.getKeystoreType().equals("NONE")) { + if(config.getKeystoreType().equals("NONE")) { ks = null; pcb = null; } - else if(configuration.getKeystoreType().equals("PKCS11")) { + else if(config.getKeystoreType().equals("PKCS11")) { try { Constructor c = Class.forName("sun.security.pkcs11.SunPKCS11").getConstructor(InputStream.class); - String pkcs11Config = "name = SmartCard\nlibrary = "+configuration.getPKCS11Library(); + String pkcs11Config = "name = SmartCard\nlibrary = "+config.getPKCS11Library(); ByteArrayInputStream config = new ByteArrayInputStream(pkcs11Config.getBytes()); Provider p = (Provider)c.newInstance(config); Security.addProvider(p); ks = KeyStore.getInstance("PKCS11",p); pcb = new PasswordCallback("PKCS11 Password: ",false); - callbackHandler.handle(new Callback[]{pcb}); + this.config.getCallbackHandler().handle(new Callback[]{pcb}); ks.load(null,pcb.getPassword()); } catch (Exception e) { @@ -1210,18 +788,18 @@ public class XMPPConnection { pcb = null; } } - else if(configuration.getKeystoreType().equals("Apple")) { + else if(config.getKeystoreType().equals("Apple")) { ks = KeyStore.getInstance("KeychainStore","Apple"); ks.load(null,null); //pcb = new PasswordCallback("Apple Keychain",false); //pcb.setPassword(null); } else { - ks = KeyStore.getInstance(configuration.getKeystoreType()); + ks = KeyStore.getInstance(config.getKeystoreType()); try { pcb = new PasswordCallback("Keystore Password: ",false); - callbackHandler.handle(new Callback[]{pcb}); - ks.load(new FileInputStream(configuration.getKeystorePath()), pcb.getPassword()); + config.getCallbackHandler().handle(new Callback[]{pcb}); + ks.load(new FileInputStream(config.getKeystorePath()), pcb.getPassword()); } catch(Exception e) { ks = null; @@ -1244,7 +822,8 @@ public class XMPPConnection { // Verify certificate presented by the server context.init(kms, - new javax.net.ssl.TrustManager[]{new ServerTrustManager(serviceName, configuration)}, + new javax.net.ssl.TrustManager[]{new ServerTrustManager(getServiceName(), config)}, + //new javax.net.ssl.TrustManager[]{new OpenTrustManager()}, new java.security.SecureRandom()); Socket plain = socket; // Secure the plain connection @@ -1279,7 +858,7 @@ public class XMPPConnection { * * @param methods compression methods offered by the server. */ - void setAvailableCompressionMethods(Collection methods) { + void setAvailableCompressionMethods(Collection methods) { compressionMethods = methods; } @@ -1293,16 +872,6 @@ public class XMPPConnection { return compressionMethods != null && compressionMethods.contains(method); } - /** - * Returns true if network traffic is being compressed. When using stream compression network - * traffic can be reduced up to 90%. Therefore, stream compression is ideal when using a slow - * speed network connection. However, the server will need to use more CPU time in order to - * un/compress network data so under high load the server performance might be affected.

- *

- * Note: to use stream compression the smackx.jar file has to be present in the classpath. - * - * @return true if network traffic is being compressed. - */ public boolean isUsingCompression() { return usingCompression; } @@ -1412,7 +981,7 @@ public class XMPPConnection { */ public void connect() throws XMPPException { // Stablishes the connection, readers and writers - connectUsingConfiguration(configuration); + connectUsingConfiguration(config); // Automatically makes the login if the user was previouslly connected successfully // to the server and the connection was terminated abruptly if (connected && wasAuthenticated) { @@ -1423,8 +992,8 @@ public class XMPPConnection { loginAnonymously(); } else { - login(getConfiguration().getUsername(), getConfiguration().getPassword(), - getConfiguration().getResource()); + login(config.getUsername(), config.getPassword(), + config.getResource()); } } catch (XMPPException e) { diff --git a/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java b/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java index 0ff5c3be5..0d3e5b761 100644 --- a/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java +++ b/source/org/jivesoftware/smack/debugger/ConsoleDebugger.java @@ -2,7 +2,7 @@ package org.jivesoftware.smack.debugger; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.util.*; @@ -27,7 +27,7 @@ public class ConsoleDebugger implements SmackDebugger { public static boolean printInterpreted = false; private SimpleDateFormat dateFormatter = new SimpleDateFormat("hh:mm:ss aaa"); - private XMPPConnection connection = null; + private Connection connection = null; private PacketListener listener = null; private ConnectionListener connListener = null; @@ -37,7 +37,7 @@ public class ConsoleDebugger implements SmackDebugger { private ReaderListener readerListener; private WriterListener writerListener; - public ConsoleDebugger(XMPPConnection connection, Writer writer, Reader reader) { + public ConsoleDebugger(Connection connection, Writer writer, Reader reader) { this.connection = connection; this.writer = writer; this.reader = reader; diff --git a/source/org/jivesoftware/smack/debugger/LiteDebugger.java b/source/org/jivesoftware/smack/debugger/LiteDebugger.java index 1535ac7bd..b69f3db23 100644 --- a/source/org/jivesoftware/smack/debugger/LiteDebugger.java +++ b/source/org/jivesoftware/smack/debugger/LiteDebugger.java @@ -42,7 +42,7 @@ public class LiteDebugger implements SmackDebugger { private static final String NEWLINE = "\n"; private JFrame frame = null; - private XMPPConnection connection = null; + private Connection connection = null; private PacketListener listener = null; @@ -51,7 +51,7 @@ public class LiteDebugger implements SmackDebugger { private ReaderListener readerListener; private WriterListener writerListener; - public LiteDebugger(XMPPConnection connection, Writer writer, Reader reader) { + public LiteDebugger(Connection connection, Writer writer, Reader reader) { this.connection = connection; this.writer = writer; this.reader = reader; diff --git a/source/org/jivesoftware/smack/debugger/SmackDebugger.java b/source/org/jivesoftware/smack/debugger/SmackDebugger.java index c69acc464..562720b17 100644 --- a/source/org/jivesoftware/smack/debugger/SmackDebugger.java +++ b/source/org/jivesoftware/smack/debugger/SmackDebugger.java @@ -29,7 +29,7 @@ import org.jivesoftware.smack.*; * displays XML traffic.

* * Every implementation of this interface must have a public constructor with the following - * arguments: XMPPConnection, Writer, Reader. + * arguments: Connection, Writer, Reader. * * @author Gaston Dombiak */ diff --git a/source/org/jivesoftware/smack/packet/Authentication.java b/source/org/jivesoftware/smack/packet/Authentication.java index 6ac5d18e3..a47c079db 100644 --- a/source/org/jivesoftware/smack/packet/Authentication.java +++ b/source/org/jivesoftware/smack/packet/Authentication.java @@ -106,7 +106,7 @@ public class Authentication extends IQ { * * @param connectionID the connection ID. * @param password the password. - * @see org.jivesoftware.smack.XMPPConnection#getConnectionID() + * @see org.jivesoftware.smack.Connection#getConnectionID() */ public void setDigest(String connectionID, String password) { this.digest = StringUtils.hash(connectionID + password); @@ -121,7 +121,7 @@ public class Authentication extends IQ { * * @param digest the digest, which is the SHA-1 hash of the connection ID * the user's password, encoded as hex. - * @see org.jivesoftware.smack.XMPPConnection#getConnectionID() + * @see org.jivesoftware.smack.Connection#getConnectionID() */ public void setDigest(String digest) { this.digest = digest; diff --git a/source/org/jivesoftware/smack/provider/ProviderManager.java b/source/org/jivesoftware/smack/provider/ProviderManager.java index 2ae56e473..b0bda61c0 100644 --- a/source/org/jivesoftware/smack/provider/ProviderManager.java +++ b/source/org/jivesoftware/smack/provider/ProviderManager.java @@ -109,9 +109,9 @@ import java.util.concurrent.ConcurrentHashMap; * * It is possible to provide a custom provider manager instead of the default implementation * provided by Smack. If you want to provide your own provider manager then you need to do it - * before creating any {@link org.jivesoftware.smack.XMPPConnection} by sending the static + * before creating any {@link org.jivesoftware.smack.Connection} by sending the static * {@link #setInstance(ProviderManager)} message. Trying to change the provider manager after - * an XMPPConnection was created will result in an {@link IllegalStateException} error. + * an Connection was created will result in an {@link IllegalStateException} error. * * @author Matt Tucker */ @@ -137,9 +137,9 @@ public class ProviderManager { } /** - * Sets the only ProviderManager valid instance to be used by all XMPPConnections. If you + * Sets the only ProviderManager valid instance to be used by all Connections. If you * want to provide your own provider manager then you need to do it before creating - * any XMPPConnection. Otherwise an IllegalStateException will be thrown. + * any Connection. Otherwise an IllegalStateException will be thrown. * * @param providerManager the only ProviderManager valid instance to be used. * @throws IllegalStateException if a provider manager was already configued. diff --git a/source/org/jivesoftware/smackx/ChatStateManager.java b/source/org/jivesoftware/smackx/ChatStateManager.java index 325cf03c5..d452a9f35 100644 --- a/source/org/jivesoftware/smackx/ChatStateManager.java +++ b/source/org/jivesoftware/smackx/ChatStateManager.java @@ -34,11 +34,11 @@ import java.util.Map; import java.util.WeakHashMap; /** - * Handles chat state for all chats on a particular XMPPConnection. This class manages both the + * Handles chat state for all chats on a particular Connection. This class manages both the * packet extensions and the disco response neccesary for compliance with * XEP-0085. * - * NOTE: {@link org.jivesoftware.smackx.ChatStateManager#getInstance(org.jivesoftware.smack.XMPPConnection)} + * NOTE: {@link org.jivesoftware.smackx.ChatStateManager#getInstance(org.jivesoftware.smack.Connection)} * needs to be called in order for the listeners to be registered appropriately with the connection. * If this does not occur you will not receive the update notifications. * @@ -48,20 +48,20 @@ import java.util.WeakHashMap; */ public class ChatStateManager { - private static final Map managers = - new WeakHashMap(); + private static final Map managers = + new WeakHashMap(); private static final PacketFilter filter = new NotFilter( new PacketExtensionFilter("http://jabber.org/protocol/chatstates")); /** - * Returns the ChatStateManager related to the XMPPConnection and it will create one if it does + * Returns the ChatStateManager related to the Connection and it will create one if it does * not yet exist. * * @param connection the connection to return the ChatStateManager * @return the ChatStateManager related the the connection. */ - public static ChatStateManager getInstance(final XMPPConnection connection) { + public static ChatStateManager getInstance(final Connection connection) { if(connection == null) { return null; } @@ -77,7 +77,7 @@ public class ChatStateManager { } } - private final XMPPConnection connection; + private final Connection connection; private final OutgoingMessageInterceptor outgoingInterceptor = new OutgoingMessageInterceptor(); @@ -89,7 +89,7 @@ public class ChatStateManager { private final Map chatStates = new ReferenceMap(ReferenceMap.WEAK, ReferenceMap.HARD); - private ChatStateManager(XMPPConnection connection) { + private ChatStateManager(Connection connection) { this.connection = connection; } diff --git a/source/org/jivesoftware/smackx/LastActivityManager.java b/source/org/jivesoftware/smackx/LastActivityManager.java index 2b64a53a2..9e231c7df 100644 --- a/source/org/jivesoftware/smackx/LastActivityManager.java +++ b/source/org/jivesoftware/smackx/LastActivityManager.java @@ -32,7 +32,7 @@ import org.jivesoftware.smackx.packet.LastActivity; /** * A last activity manager for handling information about the last activity associated * with a Jabber ID. A manager handles incoming LastActivity requests of existing - * XMPPConnections. It also allows to request last activity information of other users.

+ * Connections. It also allows to request last activity information of other users.

* * LastActivity (JEP-012) based on the sending JID's type allows for retrieval of: *

    @@ -46,7 +46,7 @@ import org.jivesoftware.smackx.packet.LastActivity; * LastActivity packet to them, as in the following code:

    * *

    - * XMPPConnection con = new XMPPConnection("jabber.org");
    + * Connection con = new XMPPConnection("jabber.org");
      * con.login("john", "doe");
      * LastActivity activity = LastActivity.getLastActivity(con, "xray@jabber.org/Smack");
      * 
    @@ -71,12 +71,12 @@ public class LastActivityManager { private long lastMessageSent; - private XMPPConnection connection; + private Connection connection; // Enable the LastActivity support on every established connection static { - XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() { - public void connectionCreated(XMPPConnection connection) { + Connection.addConnectionCreationListener(new ConnectionCreationListener() { + public void connectionCreated(Connection connection) { new LastActivityManager(connection); } }); @@ -85,13 +85,13 @@ public class LastActivityManager { /** * Creates a last activity manager to response last activity requests. * - * @param connection The XMPPConnection that the last activity requests will use. + * @param connection The Connection that the last activity requests will use. */ - private LastActivityManager(XMPPConnection connection) { + private LastActivityManager(Connection connection) { this.connection = connection; // Listen to all the sent messages to reset the idle time on each one - connection.addPacketWriterListener(new PacketListener() { + connection.addPacketSendingListener(new PacketListener() { public void processPacket(Packet packet) { resetIdleTime(); } @@ -141,12 +141,12 @@ public class LastActivityManager { * when the jid is a server or component (e.g., a JID of the form 'host') the * last activity is the uptime. * - * @param con the current XMPPConnection. + * @param con the current Connection. * @param jid the JID of the user. * @return the LastActivity packet of the jid. * @throws XMPPException thrown if a server error has occured. */ - public static LastActivity getLastActivity(XMPPConnection con, String jid) + public static LastActivity getLastActivity(Connection con, String jid) throws XMPPException { LastActivity activity = new LastActivity(); activity.setTo(jid); diff --git a/source/org/jivesoftware/smackx/MessageEventManager.java b/source/org/jivesoftware/smackx/MessageEventManager.java index 4409c11e5..f8f553aac 100644 --- a/source/org/jivesoftware/smackx/MessageEventManager.java +++ b/source/org/jivesoftware/smackx/MessageEventManager.java @@ -27,7 +27,7 @@ import java.util.Iterator; import java.util.List; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.PacketExtensionFilter; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Message; @@ -46,7 +46,7 @@ public class MessageEventManager { private List messageEventNotificationListeners = new ArrayList(); private List messageEventRequestListeners = new ArrayList(); - private XMPPConnection con; + private Connection con; private PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:event"); private PacketListener packetListener; @@ -54,9 +54,9 @@ public class MessageEventManager { /** * Creates a new message event manager. * - * @param con an XMPPConnection. + * @param con a Connection to a XMPP server. */ - public MessageEventManager(XMPPConnection con) { + public MessageEventManager(Connection con) { this.con = con; init(); } diff --git a/source/org/jivesoftware/smackx/MultipleRecipientInfo.java b/source/org/jivesoftware/smackx/MultipleRecipientInfo.java index 6bc68f1f4..a9ac0f83c 100644 --- a/source/org/jivesoftware/smackx/MultipleRecipientInfo.java +++ b/source/org/jivesoftware/smackx/MultipleRecipientInfo.java @@ -74,7 +74,7 @@ public class MultipleRecipientInfo { /** * Returns true if the received packet should not be replied. Use - * {@link MultipleRecipientManager#reply(org.jivesoftware.smack.XMPPConnection, org.jivesoftware.smack.packet.Message, org.jivesoftware.smack.packet.Message)} + * {@link MultipleRecipientManager#reply(org.jivesoftware.smack.Connection, org.jivesoftware.smack.packet.Message, org.jivesoftware.smack.packet.Message)} * to send replies. * * @return true if the received packet should not be replied. diff --git a/source/org/jivesoftware/smackx/MultipleRecipientManager.java b/source/org/jivesoftware/smackx/MultipleRecipientManager.java index 51a55a9d1..e8de33ac3 100644 --- a/source/org/jivesoftware/smackx/MultipleRecipientManager.java +++ b/source/org/jivesoftware/smackx/MultipleRecipientManager.java @@ -20,7 +20,7 @@ package org.jivesoftware.smackx; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smack.packet.Packet; @@ -67,7 +67,7 @@ public class MultipleRecipientManager { * @throws XMPPException if server does not support JEP-33: Extended Stanza Addressing and * some JEP-33 specific features were requested. */ - public static void send(XMPPConnection connection, Packet packet, List to, List cc, List bcc) + public static void send(Connection connection, Packet packet, List to, List cc, List bcc) throws XMPPException { send(connection, packet, to, cc, bcc, null, null, false); } @@ -95,7 +95,7 @@ public class MultipleRecipientManager { * @throws XMPPException if server does not support JEP-33: Extended Stanza Addressing and * some JEP-33 specific features were requested. */ - public static void send(XMPPConnection connection, Packet packet, List to, List cc, List bcc, + public static void send(Connection connection, Packet packet, List to, List cc, List bcc, String replyTo, String replyRoom, boolean noReply) throws XMPPException { String serviceAddress = getMultipleRecipienServiceAddress(connection); if (serviceAddress != null) { @@ -127,7 +127,7 @@ public class MultipleRecipientManager { * @throws XMPPException if the original message was not sent to multiple recipients, or the * original message cannot be replied or reply should be sent to a room. */ - public static void reply(XMPPConnection connection, Message original, Message reply) + public static void reply(Connection connection, Message original, Message reply) throws XMPPException { MultipleRecipientInfo info = getMultipleRecipientInfo(original); if (info == null) { @@ -201,7 +201,7 @@ public class MultipleRecipientManager { return extension == null ? null : new MultipleRecipientInfo(extension); } - private static void sendToIndividualRecipients(XMPPConnection connection, Packet packet, + private static void sendToIndividualRecipients(Connection connection, Packet packet, List to, List cc, List bcc) { if (to != null) { for (Iterator it = to.iterator(); it.hasNext();) { @@ -226,7 +226,7 @@ public class MultipleRecipientManager { } } - private static void sendThroughService(XMPPConnection connection, Packet packet, List to, + private static void sendThroughService(Connection connection, Packet packet, List to, List cc, List bcc, String replyTo, String replyRoom, boolean noReply, String serviceAddress) { // Create multiple recipient extension @@ -280,7 +280,7 @@ public class MultipleRecipientManager { * queried. * @return the address of the multiple recipients service or null if none was found. */ - private static String getMultipleRecipienServiceAddress(XMPPConnection connection) { + private static String getMultipleRecipienServiceAddress(Connection connection) { String serviceName = connection.getServiceName(); String serviceAddress = (String) services.get(serviceName); if (serviceAddress == null) { diff --git a/source/org/jivesoftware/smackx/OfflineMessageManager.java b/source/org/jivesoftware/smackx/OfflineMessageManager.java index c79b770d5..efc928021 100644 --- a/source/org/jivesoftware/smackx/OfflineMessageManager.java +++ b/source/org/jivesoftware/smackx/OfflineMessageManager.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.*; import org.jivesoftware.smack.packet.IQ; @@ -57,11 +57,11 @@ public class OfflineMessageManager { private final static String namespace = "http://jabber.org/protocol/offline"; - private XMPPConnection connection; + private Connection connection; private PacketFilter packetFilter; - public OfflineMessageManager(XMPPConnection connection) { + public OfflineMessageManager(Connection connection) { this.connection = connection; packetFilter = new AndFilter(new PacketExtensionFilter("offline", namespace), diff --git a/source/org/jivesoftware/smackx/PEPManager.java b/source/org/jivesoftware/smackx/PEPManager.java index d8d0a735e..159b1d378 100644 --- a/source/org/jivesoftware/smackx/PEPManager.java +++ b/source/org/jivesoftware/smackx/PEPManager.java @@ -24,7 +24,7 @@ import java.util.ArrayList; import java.util.List; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.PacketExtensionFilter; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Message; @@ -64,7 +64,7 @@ public class PEPManager { private List pepListeners = new ArrayList(); - private XMPPConnection connection; + private Connection connection; private PacketFilter packetFilter = new PacketExtensionFilter("event", "http://jabber.org/protocol/pubsub#event"); private PacketListener packetListener; @@ -72,9 +72,9 @@ public class PEPManager { /** * Creates a new PEP exchange manager. * - * @param connection an XMPPConnection. + * @param connection a Connection which is used to send and receive messages. */ - public PEPManager(XMPPConnection connection) { + public PEPManager(Connection connection) { this.connection = connection; init(); } diff --git a/source/org/jivesoftware/smackx/PrivateDataManager.java b/source/org/jivesoftware/smackx/PrivateDataManager.java index 6e77c8b2d..03ba44845 100644 --- a/source/org/jivesoftware/smackx/PrivateDataManager.java +++ b/source/org/jivesoftware/smackx/PrivateDataManager.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -118,7 +118,7 @@ public class PrivateDataManager { } - private XMPPConnection connection; + private Connection connection; /** * The user to get and set private data for. In most cases, this value should @@ -135,7 +135,7 @@ public class PrivateDataManager { * @param connection an XMPP connection which must have already undergone a * successful login. */ - public PrivateDataManager(XMPPConnection connection) { + public PrivateDataManager(Connection connection) { if (!connection.isAuthenticated()) { throw new IllegalStateException("Must be logged in to XMPP server."); } @@ -154,7 +154,7 @@ public class PrivateDataManager { * successful login. * @param user the XMPP address of the user to get and set private data for. */ - public PrivateDataManager(XMPPConnection connection, String user) { + public PrivateDataManager(Connection connection, String user) { if (!connection.isAuthenticated()) { throw new IllegalStateException("Must be logged in to XMPP server."); } diff --git a/source/org/jivesoftware/smackx/RosterExchangeManager.java b/source/org/jivesoftware/smackx/RosterExchangeManager.java index d3960ae01..024940141 100644 --- a/source/org/jivesoftware/smackx/RosterExchangeManager.java +++ b/source/org/jivesoftware/smackx/RosterExchangeManager.java @@ -28,7 +28,7 @@ import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.Roster; import org.jivesoftware.smack.RosterEntry; import org.jivesoftware.smack.RosterGroup; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.PacketExtensionFilter; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Message; @@ -48,7 +48,7 @@ public class RosterExchangeManager { private List rosterExchangeListeners = new ArrayList(); - private XMPPConnection con; + private Connection con; private PacketFilter packetFilter = new PacketExtensionFilter("x", "jabber:x:roster"); private PacketListener packetListener; @@ -56,9 +56,9 @@ public class RosterExchangeManager { /** * Creates a new roster exchange manager. * - * @param con an XMPPConnection. + * @param con a Connection which is used to send and receive messages. */ - public RosterExchangeManager(XMPPConnection con) { + public RosterExchangeManager(Connection con) { this.con = con; init(); } diff --git a/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java b/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java index c3b9aa1c0..4dbea30cd 100644 --- a/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java +++ b/source/org/jivesoftware/smackx/ServiceDiscoveryManager.java @@ -50,10 +50,10 @@ public class ServiceDiscoveryManager { private static String identityName = "Smack"; private static String identityType = "pc"; - private static Map instances = - new ConcurrentHashMap(); + private static Map instances = + new ConcurrentHashMap(); - private XMPPConnection connection; + private Connection connection; private final List features = new ArrayList(); private DataForm extendedInfo = null; private Map nodeInformationProviders = @@ -61,32 +61,32 @@ public class ServiceDiscoveryManager { // Create a new ServiceDiscoveryManager on every established connection static { - XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() { - public void connectionCreated(XMPPConnection connection) { + Connection.addConnectionCreationListener(new ConnectionCreationListener() { + public void connectionCreated(Connection connection) { new ServiceDiscoveryManager(connection); } }); } /** - * Creates a new ServiceDiscoveryManager for a given XMPPConnection. This means that the + * Creates a new ServiceDiscoveryManager for a given Connection. This means that the * service manager will respond to any service discovery request that the connection may * receive. * * @param connection the connection to which a ServiceDiscoveryManager is going to be created. */ - public ServiceDiscoveryManager(XMPPConnection connection) { + public ServiceDiscoveryManager(Connection connection) { this.connection = connection; init(); } /** - * Returns the ServiceDiscoveryManager instance associated with a given XMPPConnection. + * Returns the ServiceDiscoveryManager instance associated with a given Connection. * * @param connection the connection used to look for the proper ServiceDiscoveryManager. - * @return the ServiceDiscoveryManager associated with a given XMPPConnection. + * @return the ServiceDiscoveryManager associated with a given Connection. */ - public static ServiceDiscoveryManager getInstanceFor(XMPPConnection connection) { + public static ServiceDiscoveryManager getInstanceFor(Connection connection) { return instances.get(connection); } diff --git a/source/org/jivesoftware/smackx/SharedGroupManager.java b/source/org/jivesoftware/smackx/SharedGroupManager.java index 928e1bdae..c973730e0 100644 --- a/source/org/jivesoftware/smackx/SharedGroupManager.java +++ b/source/org/jivesoftware/smackx/SharedGroupManager.java @@ -1,6 +1,6 @@ package org.jivesoftware.smackx; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; import org.jivesoftware.smack.XMPPException; @@ -27,7 +27,7 @@ public class SharedGroupManager { * @param connection connection to use to get the user's shared groups. * @return collection with the shared groups' name of the logged user. */ - public static List getSharedGroups(XMPPConnection connection) throws XMPPException { + public static List getSharedGroups(Connection connection) throws XMPPException { // Discover the shared groups of the logged user SharedGroupsInfo info = new SharedGroupsInfo(); info.setType(IQ.Type.GET); diff --git a/source/org/jivesoftware/smackx/XHTMLManager.java b/source/org/jivesoftware/smackx/XHTMLManager.java index 0b024822f..f0c102c34 100644 --- a/source/org/jivesoftware/smackx/XHTMLManager.java +++ b/source/org/jivesoftware/smackx/XHTMLManager.java @@ -21,7 +21,7 @@ package org.jivesoftware.smackx; import org.jivesoftware.smack.ConnectionCreationListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Message; import org.jivesoftware.smackx.packet.DiscoverInfo; @@ -43,8 +43,8 @@ public class XHTMLManager { // Enable the XHTML support on every established connection // The ServiceDiscoveryManager class should have been already initialized static { - XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() { - public void connectionCreated(XMPPConnection connection) { + Connection.addConnectionCreationListener(new ConnectionCreationListener() { + public void connectionCreated(Connection connection) { XHTMLManager.setServiceEnabled(connection, true); } }); @@ -101,7 +101,7 @@ public class XHTMLManager { * @param connection the connection where the service will be enabled or disabled * @param enabled indicates if the service will be enabled or disabled */ - public synchronized static void setServiceEnabled(XMPPConnection connection, boolean enabled) { + public synchronized static void setServiceEnabled(Connection connection, boolean enabled) { if (isServiceEnabled(connection) == enabled) return; @@ -119,7 +119,7 @@ public class XHTMLManager { * @param connection the connection to look for XHTML support * @return a boolean indicating if the XHTML support is enabled for the given connection */ - public static boolean isServiceEnabled(XMPPConnection connection) { + public static boolean isServiceEnabled(Connection connection) { return ServiceDiscoveryManager.getInstanceFor(connection).includesFeature(namespace); } @@ -130,7 +130,7 @@ public class XHTMLManager { * @param userID the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com * @return a boolean indicating whether the specified user handles XHTML messages */ - public static boolean isServiceEnabled(XMPPConnection connection, String userID) { + public static boolean isServiceEnabled(Connection connection, String userID) { try { DiscoverInfo result = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(userID); diff --git a/source/org/jivesoftware/smackx/bookmark/BookmarkManager.java b/source/org/jivesoftware/smackx/bookmark/BookmarkManager.java index 918193eb0..f85cc9c10 100644 --- a/source/org/jivesoftware/smackx/bookmark/BookmarkManager.java +++ b/source/org/jivesoftware/smackx/bookmark/BookmarkManager.java @@ -19,7 +19,7 @@ package org.jivesoftware.smackx.bookmark; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smackx.PrivateDataManager; @@ -36,7 +36,7 @@ import java.util.*; * @author Alexander Wenckus */ public class BookmarkManager { - private static final Map bookmarkManagerMap = new HashMap(); + private static final Map bookmarkManagerMap = new HashMap(); static { PrivateDataManager.addPrivateDataProvider("storage", "storage:bookmarks", new Bookmarks.Provider()); @@ -50,7 +50,7 @@ public class BookmarkManager { * exist it is created. * @throws XMPPException Thrown if the connection is null or has not yet been authenticated. */ - public synchronized static BookmarkManager getBookmarkManager(XMPPConnection connection) + public synchronized static BookmarkManager getBookmarkManager(Connection connection) throws XMPPException { BookmarkManager manager = (BookmarkManager) bookmarkManagerMap.get(connection); @@ -72,7 +72,7 @@ public class BookmarkManager { * @param connection the connection for persisting and retrieving bookmarks. * @throws XMPPException thrown when the connection is null or has not been authenticated. */ - private BookmarkManager(XMPPConnection connection) throws XMPPException { + private BookmarkManager(Connection connection) throws XMPPException { if(connection == null || !connection.isAuthenticated()) { throw new XMPPException("Invalid connection."); } diff --git a/source/org/jivesoftware/smackx/bookmark/Bookmarks.java b/source/org/jivesoftware/smackx/bookmark/Bookmarks.java index 0f6fa01ec..100fa4649 100644 --- a/source/org/jivesoftware/smackx/bookmark/Bookmarks.java +++ b/source/org/jivesoftware/smackx/bookmark/Bookmarks.java @@ -35,7 +35,7 @@ import java.util.List; * See the following code sample for saving Bookmarks: *

    *

    - * XMPPConnection con = new XMPPConnection("jabber.org");
    + * Connection con = new XMPPConnection("jabber.org");
      * con.login("john", "doe");
      * Bookmarks bookmarks = new Bookmarks();
      * 

    diff --git a/source/org/jivesoftware/smackx/commands/AdHocCommandManager.java b/source/org/jivesoftware/smackx/commands/AdHocCommandManager.java index 74907f463..61fa9a075 100755 --- a/source/org/jivesoftware/smackx/commands/AdHocCommandManager.java +++ b/source/org/jivesoftware/smackx/commands/AdHocCommandManager.java @@ -47,8 +47,8 @@ import java.util.concurrent.ConcurrentHashMap; * An AdHocCommandManager is responsible for keeping the list of available * commands offered by a service and for processing commands requests. * - * Pass in an XMPPConnection isntance to - * {@link #getAddHocCommandsManager(org.jivesoftware.smack.XMPPConnection)} in order to + * Pass in a Connection instance to + * {@link #getAddHocCommandsManager(org.jivesoftware.smack.Connection)} in order to * get an instance of this class. * * @author Gabriel Guardincerri @@ -65,11 +65,11 @@ public class AdHocCommandManager { private static final int SESSION_TIMEOUT = 2 * 60; /** - * Map a XMPPConnection with it AdHocCommandManager. This map have a key-value + * Map a Connection with it AdHocCommandManager. This map have a key-value * pair for every active connection. */ - private static Map instances = - new ConcurrentHashMap(); + private static Map instances = + new ConcurrentHashMap(); /** * Register the listener for all the connection creations. When a new @@ -77,8 +77,8 @@ public class AdHocCommandManager { * related to that connection. */ static { - XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() { - public void connectionCreated(XMPPConnection connection) { + Connection.addConnectionCreationListener(new ConnectionCreationListener() { + public void connectionCreated(Connection connection) { new AdHocCommandManager(connection); } }); @@ -91,7 +91,7 @@ public class AdHocCommandManager { * @param connection the XMPP connection. * @return the AdHocCommandManager associated with the connection. */ - public static AdHocCommandManager getAddHocCommandsManager(XMPPConnection connection) { + public static AdHocCommandManager getAddHocCommandsManager(Connection connection) { return instances.get(connection); } @@ -101,9 +101,9 @@ public class AdHocCommandManager { private Thread sessionsSweeper; /** - * The XMPPConnection that this instances of AdHocCommandManager manages + * The Connection that this instances of AdHocCommandManager manages */ - private XMPPConnection connection; + private Connection connection; /** * Map a command node with its AdHocCommandInfo. Note: Key=command node, @@ -120,7 +120,7 @@ public class AdHocCommandManager { */ private Map executingCommands = new ConcurrentHashMap(); - private AdHocCommandManager(XMPPConnection connection) { + private AdHocCommandManager(Connection connection) { super(); this.connection = connection; init(); diff --git a/source/org/jivesoftware/smackx/commands/RemoteCommand.java b/source/org/jivesoftware/smackx/commands/RemoteCommand.java index ccb759bf8..a32d26733 100755 --- a/source/org/jivesoftware/smackx/commands/RemoteCommand.java +++ b/source/org/jivesoftware/smackx/commands/RemoteCommand.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.commands; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -49,7 +49,7 @@ public class RemoteCommand extends AdHocCommand { /** * The connection that is used to execute this command */ - private XMPPConnection connection; + private Connection connection; /** * The full JID of the command host @@ -77,7 +77,7 @@ public class RemoteCommand extends AdHocCommand { * @param node the identifier of the command. * @param jid the JID of the host. */ - protected RemoteCommand(XMPPConnection connection, String node, String jid) { + protected RemoteCommand(Connection connection, String node, String jid) { super(); this.connection = connection; this.jid = jid; diff --git a/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java b/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java index c6b2d5ca3..8f490229a 100644 --- a/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java +++ b/source/org/jivesoftware/smackx/debugger/EnhancedDebugger.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.debugger; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.debugger.SmackDebugger; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smack.packet.Message; @@ -112,7 +112,7 @@ public class EnhancedDebugger implements SmackDebugger { private JFormattedTextField userField = null; private JFormattedTextField statusField = null; - private XMPPConnection connection = null; + private Connection connection = null; private PacketListener packetReaderListener = null; private PacketListener packetWriterListener = null; @@ -140,7 +140,7 @@ public class EnhancedDebugger implements SmackDebugger { JTabbedPane tabbedPane; - public EnhancedDebugger(XMPPConnection connection, Writer writer, Reader reader) { + public EnhancedDebugger(Connection connection, Writer writer, Reader reader) { this.connection = connection; this.writer = writer; this.reader = reader; @@ -919,7 +919,7 @@ public class EnhancedDebugger implements SmackDebugger { void cancel() { connection.removeConnectionListener(connListener); connection.removePacketListener(packetReaderListener); - connection.removePacketWriterListener(packetWriterListener); + connection.removePacketSendingListener(packetWriterListener); ((ObservableReader) reader).removeReaderListener(readerListener); ((ObservableWriter) writer).removeWriterListener(writerListener); messagesTable = null; diff --git a/source/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java index 28ca043b7..3d9c3160f 100644 --- a/source/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/FaultTolerantNegotiator.java @@ -21,7 +21,7 @@ package org.jivesoftware.smackx.filetransfer; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.OrFilter; import org.jivesoftware.smack.filter.PacketFilter; @@ -44,11 +44,11 @@ public class FaultTolerantNegotiator extends StreamNegotiator { private StreamNegotiator primaryNegotiator; private StreamNegotiator secondaryNegotiator; - private XMPPConnection connection; + private Connection connection; private PacketFilter primaryFilter; private PacketFilter secondaryFilter; - public FaultTolerantNegotiator(XMPPConnection connection, StreamNegotiator primary, + public FaultTolerantNegotiator(Connection connection, StreamNegotiator primary, StreamNegotiator secondary) { this.primaryNegotiator = primary; this.secondaryNegotiator = secondary; @@ -68,7 +68,7 @@ public class FaultTolerantNegotiator extends StreamNegotiator { "stream method."); } - final Packet initiateIncomingStream(XMPPConnection connection, StreamInitiation initiation) { + final Packet initiateIncomingStream(Connection connection, StreamInitiation initiation) { throw new UnsupportedOperationException("Initiation handled by createIncomingStream " + "method"); } diff --git a/source/org/jivesoftware/smackx/filetransfer/FileTransferManager.java b/source/org/jivesoftware/smackx/filetransfer/FileTransferManager.java index 6fbb58b25..2682c391e 100644 --- a/source/org/jivesoftware/smackx/filetransfer/FileTransferManager.java +++ b/source/org/jivesoftware/smackx/filetransfer/FileTransferManager.java @@ -20,7 +20,7 @@ package org.jivesoftware.smackx.filetransfer; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.AndFilter; import org.jivesoftware.smack.filter.IQTypeFilter; import org.jivesoftware.smack.filter.PacketTypeFilter; @@ -50,15 +50,15 @@ public class FileTransferManager { private List listeners; - private XMPPConnection connection; + private Connection connection; /** * Creates a file transfer manager to initiate and receive file transfers. * * @param connection - * The XMPPConnection that the file transfers will use. + * The Connection that the file transfers will use. */ - public FileTransferManager(XMPPConnection connection) { + public FileTransferManager(Connection connection) { this.connection = connection; this.fileTransferNegotiator = FileTransferNegotiator .getInstanceFor(connection); diff --git a/source/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java index 5ad3b032f..0a910dc99 100644 --- a/source/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java @@ -21,7 +21,7 @@ package org.jivesoftware.smackx.filetransfer; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketCollector; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -65,8 +65,8 @@ public class FileTransferNegotiator { private static final String[] PROTOCOLS = {BYTE_STREAM, INBAND_BYTE_STREAM}; - private static final Map transferObject = - new ConcurrentHashMap(); + private static final Map transferObject = + new ConcurrentHashMap(); private static final String STREAM_INIT_PREFIX = "jsi_"; @@ -90,7 +90,7 @@ public class FileTransferNegotiator { * @return The IMFileTransferManager */ public static FileTransferNegotiator getInstanceFor( - final XMPPConnection connection) { + final Connection connection) { if (connection == null) { throw new IllegalArgumentException("Connection cannot be null"); } @@ -117,7 +117,7 @@ public class FileTransferNegotiator { * @param connection The connection on which to enable or disable the services. * @param isEnabled True to enable, false to disable. */ - public static void setServiceEnabled(final XMPPConnection connection, + public static void setServiceEnabled(final Connection connection, final boolean isEnabled) { ServiceDiscoveryManager manager = ServiceDiscoveryManager .getInstanceFor(connection); @@ -138,7 +138,7 @@ public class FileTransferNegotiator { * @param connection The connection to check * @return True if all related services are enabled, false if they are not. */ - public static boolean isServiceEnabled(final XMPPConnection connection) { + public static boolean isServiceEnabled(final Connection connection) { for (String ns : NAMESPACE) { if (!ServiceDiscoveryManager.getInstanceFor(connection).includesFeature(ns)) return false; @@ -181,13 +181,13 @@ public class FileTransferNegotiator { // non-static - private final XMPPConnection connection; + private final Connection connection; private final Socks5TransferNegotiatorManager byteStreamTransferManager; private final StreamNegotiator inbandTransferManager; - private FileTransferNegotiator(final XMPPConnection connection) { + private FileTransferNegotiator(final Connection connection) { configureConnection(connection); this.connection = connection; @@ -195,7 +195,7 @@ public class FileTransferNegotiator { inbandTransferManager = new IBBTransferNegotiator(connection); } - private void configureConnection(final XMPPConnection connection) { + private void configureConnection(final Connection connection) { connection.addConnectionListener(new ConnectionListener() { public void connectionClosed() { cleanup(connection); @@ -219,7 +219,7 @@ public class FileTransferNegotiator { }); } - private void cleanup(final XMPPConnection connection) { + private void cleanup(final Connection connection) { if (transferObject.remove(connection) != null) { byteStreamTransferManager.cleanup(); inbandTransferManager.cleanup(); diff --git a/source/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java index 59a4c244b..6669f9ab0 100644 --- a/source/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/IBBTransferNegotiator.java @@ -49,14 +49,14 @@ public class IBBTransferNegotiator extends StreamNegotiator { public static final int DEFAULT_BLOCK_SIZE = 4096; - private XMPPConnection connection; + private Connection connection; /** * The default constructor for the In-Band Bystream Negotiator. * * @param connection The connection which this negotiator works on. */ - protected IBBTransferNegotiator(XMPPConnection connection) { + protected IBBTransferNegotiator(Connection connection) { this.connection = connection; } diff --git a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java index da83ad6c8..624aa537c 100644 --- a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiator.java @@ -21,7 +21,7 @@ package org.jivesoftware.smackx.filetransfer; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.AndFilter; import org.jivesoftware.smack.filter.FromMatchesFilter; @@ -79,12 +79,12 @@ public class Socks5TransferNegotiator extends StreamNegotiator { public static boolean isAllowLocalProxyHost = true; - private final XMPPConnection connection; + private final Connection connection; private Socks5TransferNegotiatorManager transferNegotiatorManager; public Socks5TransferNegotiator(Socks5TransferNegotiatorManager transferNegotiatorManager, - final XMPPConnection connection) + final Connection connection) { this.connection = connection; this.transferNegotiatorManager = transferNegotiatorManager; diff --git a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiatorManager.java b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiatorManager.java index bc49d59ed..730c79312 100644 --- a/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiatorManager.java +++ b/source/org/jivesoftware/smackx/filetransfer/Socks5TransferNegotiatorManager.java @@ -22,7 +22,7 @@ import org.jivesoftware.smack.util.Cache; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; import org.jivesoftware.smackx.ServiceDiscoveryManager; @@ -54,13 +54,13 @@ public class Socks5TransferNegotiatorManager implements FileTransferNegotiatorMa private final Cache addressBlacklist = new Cache(100, BLACKLIST_LIFETIME); - private XMPPConnection connection; + private Connection connection; private List proxies; private List streamHosts; - public Socks5TransferNegotiatorManager(XMPPConnection connection) { + public Socks5TransferNegotiatorManager(Connection connection) { this.connection = connection; } diff --git a/source/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java b/source/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java index f5021a451..c18f207a0 100644 --- a/source/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java +++ b/source/org/jivesoftware/smackx/filetransfer/StreamNegotiator.java @@ -21,7 +21,7 @@ package org.jivesoftware.smackx.filetransfer; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.IQ; @@ -81,7 +81,7 @@ public abstract class StreamNegotiator { return iq; } - Packet initiateIncomingStream(XMPPConnection connection, StreamInitiation initiation) throws XMPPException { + Packet initiateIncomingStream(Connection connection, StreamInitiation initiation) throws XMPPException { StreamInitiation response = createInitiationAccept(initiation, getNamespaces()); diff --git a/source/org/jivesoftware/smackx/muc/ConnectionDetachedPacketCollector.java b/source/org/jivesoftware/smackx/muc/ConnectionDetachedPacketCollector.java index 600149b0b..95c4f6610 100644 --- a/source/org/jivesoftware/smackx/muc/ConnectionDetachedPacketCollector.java +++ b/source/org/jivesoftware/smackx/muc/ConnectionDetachedPacketCollector.java @@ -26,7 +26,7 @@ import java.util.LinkedList; /** * A variant of the {@link org.jivesoftware.smack.PacketCollector} class - * that does not force attachment to an XMPPConnection + * that does not force attachment to a Connection * on creation and no filter is required. Used to collect message * packets targeted to a group chat room. * diff --git a/source/org/jivesoftware/smackx/muc/HostedRoom.java b/source/org/jivesoftware/smackx/muc/HostedRoom.java index 67fc7269d..7cd580ba1 100644 --- a/source/org/jivesoftware/smackx/muc/HostedRoom.java +++ b/source/org/jivesoftware/smackx/muc/HostedRoom.java @@ -25,9 +25,9 @@ import org.jivesoftware.smackx.packet.DiscoverItems; * Hosted rooms by a chat service may be discovered if they are configured to appear in the room * directory . The information that may be discovered is the XMPP address of the room and the room * name. The address of the room may be used for obtaining more detailed information - * {@link org.jivesoftware.smackx.muc.MultiUserChat#getRoomInfo(org.jivesoftware.smack.XMPPConnection, String)} + * {@link org.jivesoftware.smackx.muc.MultiUserChat#getRoomInfo(org.jivesoftware.smack.Connection, String)} * or could be used for joining the room - * {@link org.jivesoftware.smackx.muc.MultiUserChat#MultiUserChat(org.jivesoftware.smack.XMPPConnection, String)} + * {@link org.jivesoftware.smackx.muc.MultiUserChat#MultiUserChat(org.jivesoftware.smack.Connection, String)} * and {@link org.jivesoftware.smackx.muc.MultiUserChat#join(String)}. * * @author Gaston Dombiak diff --git a/source/org/jivesoftware/smackx/muc/InvitationListener.java b/source/org/jivesoftware/smackx/muc/InvitationListener.java index d2b7e0203..34c915ddd 100644 --- a/source/org/jivesoftware/smackx/muc/InvitationListener.java +++ b/source/org/jivesoftware/smackx/muc/InvitationListener.java @@ -20,7 +20,7 @@ package org.jivesoftware.smackx.muc; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.packet.Message; /** @@ -36,14 +36,14 @@ public interface InvitationListener { * If the room is password-protected, the invitee will receive a password to use to join * the room. If the room is members-only, the the invitee may be added to the member list. * - * @param conn the XMPPConnection that received the invitation. + * @param conn the Connection that received the invitation. * @param room the room that invitation refers to. * @param inviter the inviter that sent the invitation. (e.g. crone1@shakespeare.lit). * @param reason the reason why the inviter sent the invitation. * @param password the password to use when joining the room. * @param message the message used by the inviter to send the invitation. */ - public abstract void invitationReceived(XMPPConnection conn, String room, String inviter, String reason, + public abstract void invitationReceived(Connection conn, String room, String inviter, String reason, String password, Message message); } diff --git a/source/org/jivesoftware/smackx/muc/MultiUserChat.java b/source/org/jivesoftware/smackx/muc/MultiUserChat.java index 11875fc35..529c7e576 100644 --- a/source/org/jivesoftware/smackx/muc/MultiUserChat.java +++ b/source/org/jivesoftware/smackx/muc/MultiUserChat.java @@ -40,7 +40,7 @@ import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.PacketInterceptor; import org.jivesoftware.smack.PacketListener; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.AndFilter; import org.jivesoftware.smack.filter.FromMatchesFilter; @@ -79,10 +79,10 @@ public class MultiUserChat { private final static String discoNamespace = "http://jabber.org/protocol/muc"; private final static String discoNode = "http://jabber.org/protocol/muc#rooms"; - private static Map> joinedRooms = - new WeakHashMap>(); + private static Map> joinedRooms = + new WeakHashMap>(); - private XMPPConnection connection; + private Connection connection; private String room; private String subject; private String nickname = null; @@ -106,8 +106,8 @@ public class MultiUserChat { private List connectionListeners = new ArrayList(); static { - XMPPConnection.addConnectionCreationListener(new ConnectionCreationListener() { - public void connectionCreated(final XMPPConnection connection) { + Connection.addConnectionCreationListener(new ConnectionCreationListener() { + public void connectionCreated(final Connection connection) { // Set on every established connection that this client supports the Multi-User // Chat protocol. This information will be used when another client tries to // discover whether this client supports MUC or not. @@ -153,7 +153,7 @@ public class MultiUserChat { * "service" is the hostname at which the multi-user chat * service is running. Make sure to provide a valid JID. */ - public MultiUserChat(XMPPConnection connection, String room) { + public MultiUserChat(Connection connection, String room) { this.connection = connection; this.room = room.toLowerCase(); init(); @@ -166,7 +166,7 @@ public class MultiUserChat { * @param user the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com. * @return a boolean indicating whether the specified user supports the MUC protocol. */ - public static boolean isServiceEnabled(XMPPConnection connection, String user) { + public static boolean isServiceEnabled(Connection connection, String user) { try { DiscoverInfo result = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(user); @@ -186,7 +186,7 @@ public class MultiUserChat { * @param connection the connection used to join the rooms. * @return an Iterator on the rooms where the user has joined using a given connection. */ - private static Iterator getJoinedRooms(XMPPConnection connection) { + private static Iterator getJoinedRooms(Connection connection) { List rooms = joinedRooms.get(connection); if (rooms != null) { return rooms.iterator(); @@ -203,7 +203,7 @@ public class MultiUserChat { * @param user the user to check. A fully qualified xmpp ID, e.g. jdoe@example.com. * @return an Iterator on the rooms where the requested user has joined. */ - public static Iterator getJoinedRooms(XMPPConnection connection, String user) { + public static Iterator getJoinedRooms(Connection connection, String user) { try { ArrayList answer = new ArrayList(); // Send the disco packet to the user @@ -232,7 +232,7 @@ public class MultiUserChat { * @return the discovered information of a given room without actually having to join the room. * @throws XMPPException if an error occured while trying to discover information of a room. */ - public static RoomInfo getRoomInfo(XMPPConnection connection, String room) + public static RoomInfo getRoomInfo(Connection connection, String room) throws XMPPException { DiscoverInfo info = ServiceDiscoveryManager.getInstanceFor(connection).discoverInfo(room); return new RoomInfo(info); @@ -245,7 +245,7 @@ public class MultiUserChat { * @return a collection with the XMPP addresses of the Multi-User Chat services. * @throws XMPPException if an error occured while trying to discover MUC services. */ - public static Collection getServiceNames(XMPPConnection connection) throws XMPPException { + public static Collection getServiceNames(Connection connection) throws XMPPException { final List answer = new ArrayList(); ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection); DiscoverItems items = discoManager.discoverItems(connection.getServiceName()); @@ -275,7 +275,7 @@ public class MultiUserChat { * @return a collection of HostedRooms. * @throws XMPPException if an error occured while trying to discover the information. */ - public static Collection getHostedRooms(XMPPConnection connection, String serviceName) + public static Collection getHostedRooms(Connection connection, String serviceName) throws XMPPException { List answer = new ArrayList(); ServiceDiscoveryManager discoManager = ServiceDiscoveryManager.getInstanceFor(connection); @@ -768,7 +768,7 @@ public class MultiUserChat { * @param inviter the inviter of the declined invitation. * @param reason the reason why the invitee is declining the invitation. */ - public static void decline(XMPPConnection conn, String room, String inviter, String reason) { + public static void decline(Connection conn, String room, String inviter, String reason) { Message message = new Message(room); // Create the MUCUser packet that will include the rejection @@ -790,7 +790,7 @@ public class MultiUserChat { * @param conn the connection where the listener will be applied. * @param listener an invitation listener. */ - public static void addInvitationListener(XMPPConnection conn, InvitationListener listener) { + public static void addInvitationListener(Connection conn, InvitationListener listener) { InvitationsMonitor.getInvitationsMonitor(conn).addInvitationListener(listener); } @@ -801,7 +801,7 @@ public class MultiUserChat { * @param conn the connection where the listener was applied. * @param listener an invitation listener. */ - public static void removeInvitationListener(XMPPConnection conn, InvitationListener listener) { + public static void removeInvitationListener(Connection conn, InvitationListener listener) { InvitationsMonitor.getInvitationsMonitor(conn).removeInvitationListener(listener); } @@ -1901,7 +1901,7 @@ public class MultiUserChat { * group chat. Only "group chat" messages addressed to this group chat will * be delivered to the listener. If you wish to listen for other packets * that may be associated with this group chat, you should register a - * PacketListener directly with the XMPPConnection with the appropriate + * PacketListener directly with the Connection with the appropriate * PacketListener. * * @param listener a packet listener. @@ -2555,12 +2555,12 @@ public class MultiUserChat { private static class InvitationsMonitor implements ConnectionListener { // We use a WeakHashMap so that the GC can collect the monitor when the // connection is no longer referenced by any object. - private final static Map> monitors = - new WeakHashMap>(); + private final static Map> monitors = + new WeakHashMap>(); private final List invitationsListeners = new ArrayList(); - private XMPPConnection connection; + private Connection connection; private PacketFilter invitationFilter; private PacketListener invitationPacketListener; @@ -2570,7 +2570,7 @@ public class MultiUserChat { * @param conn the connection to monitor for room invitations. * @return a new or existing InvitationsMonitor for a given connection. */ - public static InvitationsMonitor getInvitationsMonitor(XMPPConnection conn) { + public static InvitationsMonitor getInvitationsMonitor(Connection conn) { synchronized (monitors) { if (!monitors.containsKey(conn)) { // We need to use a WeakReference because the monitor references the @@ -2589,7 +2589,7 @@ public class MultiUserChat { * * @param connection the connection to monitor for possible room invitations */ - private InvitationsMonitor(XMPPConnection connection) { + private InvitationsMonitor(Connection connection) { this.connection = connection; } diff --git a/source/org/jivesoftware/smackx/muc/RoomListenerMultiplexor.java b/source/org/jivesoftware/smackx/muc/RoomListenerMultiplexor.java index 0c9a6e0c3..3c9668f79 100644 --- a/source/org/jivesoftware/smackx/muc/RoomListenerMultiplexor.java +++ b/source/org/jivesoftware/smackx/muc/RoomListenerMultiplexor.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.muc; import org.jivesoftware.smack.ConnectionListener; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.util.StringUtils; @@ -34,9 +34,9 @@ import java.util.concurrent.ConcurrentHashMap; /** * A RoomListenerMultiplexor multiplexes incoming packets on - * an XMPPConnection using a single listener/filter pair. + * a Connection using a single listener/filter pair. * A single RoomListenerMultiplexor is created for each - * {@link org.jivesoftware.smack.XMPPConnection} that has joined MUC rooms + * {@link org.jivesoftware.smack.Connection} that has joined MUC rooms * within its session. * * @author Larry Kirschner @@ -45,10 +45,10 @@ class RoomListenerMultiplexor implements ConnectionListener { // We use a WeakHashMap so that the GC can collect the monitor when the // connection is no longer referenced by any object. - private static final Map> monitors = - new WeakHashMap>(); + private static final Map> monitors = + new WeakHashMap>(); - private XMPPConnection connection; + private Connection connection; private RoomMultiplexFilter filter; private RoomMultiplexListener listener; @@ -58,7 +58,7 @@ class RoomListenerMultiplexor implements ConnectionListener { * @param conn the connection to monitor for room invitations. * @return a new or existing RoomListenerMultiplexor for a given connection. */ - public static RoomListenerMultiplexor getRoomMultiplexor(XMPPConnection conn) { + public static RoomListenerMultiplexor getRoomMultiplexor(Connection conn) { synchronized (monitors) { if (!monitors.containsKey(conn)) { RoomListenerMultiplexor rm = new RoomListenerMultiplexor(conn, new RoomMultiplexFilter(), @@ -78,9 +78,9 @@ class RoomListenerMultiplexor implements ConnectionListener { /** * All access should be through - * the static method {@link #getRoomMultiplexor(XMPPConnection)}. + * the static method {@link #getRoomMultiplexor(Connection)}. */ - private RoomListenerMultiplexor(XMPPConnection connection, RoomMultiplexFilter filter, + private RoomListenerMultiplexor(Connection connection, RoomMultiplexFilter filter, RoomMultiplexListener listener) { if (connection == null) { throw new IllegalArgumentException("Connection is null"); @@ -146,11 +146,11 @@ class RoomListenerMultiplexor implements ConnectionListener { } /** - * The single XMPPConnection-level PacketFilter used by a {@link RoomListenerMultiplexor} - * for all muc chat rooms on an XMPPConnection. + * The single Connection-level PacketFilter used by a {@link RoomListenerMultiplexor} + * for all muc chat rooms on an Connection. * Each time a muc chat room is added to/removed from an - * XMPPConnection the address for that chat room - * is added to/removed from that XMPPConnection's + * Connection the address for that chat room + * is added to/removed from that Connection's * RoomMultiplexFilter. */ private static class RoomMultiplexFilter implements PacketFilter { @@ -181,12 +181,12 @@ class RoomListenerMultiplexor implements ConnectionListener { } /** - * The single XMPPConnection-level PacketListener + * The single Connection-level PacketListener * used by a {@link RoomListenerMultiplexor} - * for all muc chat rooms on an XMPPConnection. + * for all muc chat rooms on an Connection. * Each time a muc chat room is added to/removed from an - * XMPPConnection the address and listener for that chat room - * are added to/removed from that XMPPConnection's + * Connection the address and listener for that chat room + * are added to/removed from that Connection's * RoomMultiplexListener. * * @author Larry Kirschner diff --git a/source/org/jivesoftware/smackx/packet/LastActivity.java b/source/org/jivesoftware/smackx/packet/LastActivity.java index a6fcfa23f..30c616f0b 100644 --- a/source/org/jivesoftware/smackx/packet/LastActivity.java +++ b/source/org/jivesoftware/smackx/packet/LastActivity.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.packet; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -127,14 +127,14 @@ public class LastActivity extends IQ { /** * Retrieve the last activity of a particular jid. - * @param con the current XMPPConnection. + * @param con the current Connection. * @param jid the JID of the user. * @return the LastActivity packet of the jid. * @throws XMPPException thrown if a server error has occured. * @deprecated This method only retreives the lapsed time since the last logout of a particular jid. - * Replaced by {@link org.jivesoftware.smackx.LastActivityManager#getLastActivity(XMPPConnection, String) getLastActivity} + * Replaced by {@link org.jivesoftware.smackx.LastActivityManager#getLastActivity(Connection, String) getLastActivity} */ - public static LastActivity getLastActivity(XMPPConnection con, String jid) throws XMPPException { + public static LastActivity getLastActivity(Connection con, String jid) throws XMPPException { LastActivity activity = new LastActivity(); jid = StringUtils.parseBareAddress(jid); activity.setTo(jid); diff --git a/source/org/jivesoftware/smackx/packet/Nick.java b/source/org/jivesoftware/smackx/packet/Nick.java index 722fab305..9a64eaa42 100644 --- a/source/org/jivesoftware/smackx/packet/Nick.java +++ b/source/org/jivesoftware/smackx/packet/Nick.java @@ -64,7 +64,6 @@ public class Nick implements PacketExtension { * * @see org.jivesoftware.smack.packet.PacketExtension#getElementName() */ - @Override public String getElementName() { return ELEMENT_NAME; } @@ -74,7 +73,6 @@ public class Nick implements PacketExtension { * * @see org.jivesoftware.smack.packet.PacketExtension#getNamespace() */ - @Override public String getNamespace() { return NAMESPACE; } @@ -84,7 +82,6 @@ public class Nick implements PacketExtension { * * @see org.jivesoftware.smack.packet.PacketExtension#toXML() */ - @Override public String toXML() { final StringBuilder buf = new StringBuilder(); diff --git a/source/org/jivesoftware/smackx/packet/SyncPacketSend.java b/source/org/jivesoftware/smackx/packet/SyncPacketSend.java index 463d5abf0..8ce87f92b 100644 --- a/source/org/jivesoftware/smackx/packet/SyncPacketSend.java +++ b/source/org/jivesoftware/smackx/packet/SyncPacketSend.java @@ -15,7 +15,7 @@ package org.jivesoftware.smackx.packet; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.filter.PacketIDFilter; @@ -32,7 +32,7 @@ final public class SyncPacketSend private SyncPacketSend() { } - static public Packet getReply(XMPPConnection connection, Packet packet, long timeout) + static public Packet getReply(Connection connection, Packet packet, long timeout) throws XMPPException { PacketFilter responseFilter = new PacketIDFilter(packet.getPacketID()); @@ -55,7 +55,7 @@ final public class SyncPacketSend return result; } - static public Packet getReply(XMPPConnection connection, Packet packet) + static public Packet getReply(Connection connection, Packet packet) throws XMPPException { return getReply(connection, packet, SmackConfiguration.getPacketReplyTimeout()); diff --git a/source/org/jivesoftware/smackx/packet/VCard.java b/source/org/jivesoftware/smackx/packet/VCard.java index 7c4234a61..b4cd17c1a 100644 --- a/source/org/jivesoftware/smackx/packet/VCard.java +++ b/source/org/jivesoftware/smackx/packet/VCard.java @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.packet; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -493,10 +493,10 @@ public class VCard extends IQ { *

    * NOTE: the method is asynchronous and does not wait for the returned value. * - * @param connection the XMPPConnection to use. + * @param connection the Connection to use. * @throws XMPPException thrown if there was an issue setting the VCard in the server. */ - public void save(XMPPConnection connection) throws XMPPException { + public void save(Connection connection) throws XMPPException { checkAuthenticated(connection, true); setType(IQ.Type.SET); @@ -520,7 +520,7 @@ public class VCard extends IQ { * Load VCard information for a connected user. Connection should be authenticated * and not anonymous. */ - public void load(XMPPConnection connection) throws XMPPException { + public void load(Connection connection) throws XMPPException { checkAuthenticated(connection, true); setFrom(connection.getUser()); @@ -530,14 +530,14 @@ public class VCard extends IQ { /** * Load VCard information for a given user. Connection should be authenticated and not anonymous. */ - public void load(XMPPConnection connection, String user) throws XMPPException { + public void load(Connection connection, String user) throws XMPPException { checkAuthenticated(connection, false); setTo(user); doLoad(connection, user); } - private void doLoad(XMPPConnection connection, String user) throws XMPPException { + private void doLoad(Connection connection, String user) throws XMPPException { setType(Type.GET); PacketCollector collector = connection.createPacketCollector( new PacketIDFilter(getPacketID())); @@ -587,7 +587,7 @@ public class VCard extends IQ { } } - private void checkAuthenticated(XMPPConnection connection, boolean checkForAnonymous) { + private void checkAuthenticated(Connection connection, boolean checkForAnonymous) { if (connection == null) { throw new IllegalArgumentException("No connection was provided"); } diff --git a/source/org/jivesoftware/smackx/pubsub/Affiliation.java b/source/org/jivesoftware/smackx/pubsub/Affiliation.java index 2be8d103f..d0fc7dcf4 100644 --- a/source/org/jivesoftware/smackx/pubsub/Affiliation.java +++ b/source/org/jivesoftware/smackx/pubsub/Affiliation.java @@ -13,7 +13,7 @@ */ package org.jivesoftware.smackx.pubsub; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.packet.PacketExtension; /** @@ -22,7 +22,7 @@ import org.jivesoftware.smack.packet.PacketExtension; * * Affiliations are retrieved from the {@link PubSubManager#getAffiliations()} method, which * gets affiliations for the calling user, based on the identity that is associated with - * the {@link XMPPConnection}. + * the {@link Connection}. * * @author Robin Collier */ diff --git a/source/org/jivesoftware/smackx/pubsub/CollectionNode.java b/source/org/jivesoftware/smackx/pubsub/CollectionNode.java index 84e362263..0300610f7 100644 --- a/source/org/jivesoftware/smackx/pubsub/CollectionNode.java +++ b/source/org/jivesoftware/smackx/pubsub/CollectionNode.java @@ -3,11 +3,11 @@ */ package org.jivesoftware.smackx.pubsub; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; public class CollectionNode extends Node { - CollectionNode(XMPPConnection connection, String nodeId) + CollectionNode(Connection connection, String nodeId) { super(connection, nodeId); } diff --git a/source/org/jivesoftware/smackx/pubsub/LeafNode.java b/source/org/jivesoftware/smackx/pubsub/LeafNode.java index 2bd92dc95..eee629361 100644 --- a/source/org/jivesoftware/smackx/pubsub/LeafNode.java +++ b/source/org/jivesoftware/smackx/pubsub/LeafNode.java @@ -17,7 +17,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.IQ.Type; import org.jivesoftware.smackx.packet.DiscoverItems; @@ -34,7 +34,7 @@ import org.jivesoftware.smackx.pubsub.packet.SyncPacketSend; */ public class LeafNode extends Node { - LeafNode(XMPPConnection connection, String nodeName) + LeafNode(Connection connection, String nodeName) { super(connection, nodeName); } diff --git a/source/org/jivesoftware/smackx/pubsub/Node.java b/source/org/jivesoftware/smackx/pubsub/Node.java index 9b03caaaf..c9004939c 100644 --- a/source/org/jivesoftware/smackx/pubsub/Node.java +++ b/source/org/jivesoftware/smackx/pubsub/Node.java @@ -10,7 +10,7 @@ import java.util.List; import java.util.concurrent.ConcurrentHashMap; import org.jivesoftware.smack.PacketListener; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.OrFilter; import org.jivesoftware.smack.filter.PacketFilter; @@ -33,7 +33,7 @@ import org.jivesoftware.smackx.pubsub.util.NodeUtils; abstract public class Node { - protected XMPPConnection con; + protected Connection con; protected String id; protected String to; @@ -48,7 +48,7 @@ abstract public class Node * @param connection The connection the node is associated with * @param nodeName The node id */ - Node(XMPPConnection connection, String nodeName) + Node(Connection connection, String nodeName) { con = connection; id = nodeName; diff --git a/source/org/jivesoftware/smackx/pubsub/PubSubManager.java b/source/org/jivesoftware/smackx/pubsub/PubSubManager.java index b1edbaffb..4e67b315e 100644 --- a/source/org/jivesoftware/smackx/pubsub/PubSubManager.java +++ b/source/org/jivesoftware/smackx/pubsub/PubSubManager.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.packet.Packet; import org.jivesoftware.smack.packet.PacketExtension; @@ -43,7 +43,7 @@ import org.jivesoftware.smackx.pubsub.util.NodeUtils; */ final public class PubSubManager { - private XMPPConnection con; + private Connection con; private String to; private Map nodeMap = new ConcurrentHashMap(); @@ -52,7 +52,7 @@ final public class PubSubManager * * @param connection The XMPP connection */ - public PubSubManager(XMPPConnection connection) + public PubSubManager(Connection connection) { con = connection; } @@ -64,7 +64,7 @@ final public class PubSubManager * @param connection The XMPP connection * @param toAddress The pubsub specific to address (required for some servers) */ - public PubSubManager(XMPPConnection connection, String toAddress) + public PubSubManager(Connection connection, String toAddress) { con = connection; to = toAddress; @@ -300,25 +300,25 @@ final public class PubSubManager return request; } - static Packet sendPubsubPacket(XMPPConnection con, String to, Type type, PacketExtension ext) + static Packet sendPubsubPacket(Connection con, String to, Type type, PacketExtension ext) throws XMPPException { return sendPubsubPacket(con, to, type, ext, null); } - static Packet sendPubsubPacket(XMPPConnection con, String to, Type type, PacketExtension ext, PubSubNamespace ns) + static Packet sendPubsubPacket(Connection con, String to, Type type, PacketExtension ext, PubSubNamespace ns) throws XMPPException { return SyncPacketSend.getReply(con, createPubsubPacket(to, type, ext, ns)); } - static Packet sendPubsubPacket(XMPPConnection con, String to, Type type, PubSub packet) + static Packet sendPubsubPacket(Connection con, String to, Type type, PubSub packet) throws XMPPException { return sendPubsubPacket(con, to, type, packet, null); } - static Packet sendPubsubPacket(XMPPConnection con, String to, Type type, PubSub packet, PubSubNamespace ns) + static Packet sendPubsubPacket(Connection con, String to, Type type, PubSub packet, PubSubNamespace ns) throws XMPPException { return SyncPacketSend.getReply(con, packet); diff --git a/source/org/jivesoftware/smackx/pubsub/packet/SyncPacketSend.java b/source/org/jivesoftware/smackx/pubsub/packet/SyncPacketSend.java index c5be230eb..080129bd0 100644 --- a/source/org/jivesoftware/smackx/pubsub/packet/SyncPacketSend.java +++ b/source/org/jivesoftware/smackx/pubsub/packet/SyncPacketSend.java @@ -15,7 +15,7 @@ package org.jivesoftware.smackx.pubsub.packet; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.filter.PacketIDFilter; @@ -32,7 +32,7 @@ final public class SyncPacketSend private SyncPacketSend() { } - static public Packet getReply(XMPPConnection connection, Packet packet, long timeout) + static public Packet getReply(Connection connection, Packet packet, long timeout) throws XMPPException { PacketFilter responseFilter = new PacketIDFilter(packet.getPacketID()); @@ -55,7 +55,7 @@ final public class SyncPacketSend return result; } - static public Packet getReply(XMPPConnection connection, Packet packet) + static public Packet getReply(Connection connection, Packet packet) throws XMPPException { return getReply(connection, packet, SmackConfiguration.getPacketReplyTimeout()); diff --git a/source/org/jivesoftware/smackx/search/UserSearch.java b/source/org/jivesoftware/smackx/search/UserSearch.java index 7b69de18a..781dd9ae1 100644 --- a/source/org/jivesoftware/smackx/search/UserSearch.java +++ b/source/org/jivesoftware/smackx/search/UserSearch.java @@ -18,7 +18,7 @@ package org.jivesoftware.smackx.search; import org.jivesoftware.smack.PacketCollector; import org.jivesoftware.smack.SmackConfiguration; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smack.filter.PacketIDFilter; import org.jivesoftware.smack.packet.IQ; @@ -59,13 +59,13 @@ public class UserSearch extends IQ { /** * Returns the form for all search fields supported by the search service. * - * @param con the current XMPPConnection. + * @param con the current Connection. * @param searchService the search service to use. (ex. search.jivesoftware.com) * @return the search form received by the server. * @throws org.jivesoftware.smack.XMPPException * thrown if a server error has occurred. */ - public Form getSearchForm(XMPPConnection con, String searchService) throws XMPPException { + public Form getSearchForm(Connection con, String searchService) throws XMPPException { UserSearch search = new UserSearch(); search.setType(IQ.Type.GET); search.setTo(searchService); @@ -89,14 +89,14 @@ public class UserSearch extends IQ { /** * Sends the filled out answer form to be sent and queried by the search service. * - * @param con the current XMPPConnection. + * @param con the current Connection. * @param searchForm the Form to send for querying. * @param searchService the search service to use. (ex. search.jivesoftware.com) * @return ReportedData the data found from the query. * @throws org.jivesoftware.smack.XMPPException * thrown if a server error has occurred. */ - public ReportedData sendSearchForm(XMPPConnection con, Form searchForm, String searchService) throws XMPPException { + public ReportedData sendSearchForm(Connection con, Form searchForm, String searchService) throws XMPPException { UserSearch search = new UserSearch(); search.setType(IQ.Type.SET); search.setTo(searchService); @@ -124,14 +124,14 @@ public class UserSearch extends IQ { /** * Sends the filled out answer form to be sent and queried by the search service. * - * @param con the current XMPPConnection. + * @param con the current Connection. * @param searchForm the Form to send for querying. * @param searchService the search service to use. (ex. search.jivesoftware.com) * @return ReportedData the data found from the query. * @throws org.jivesoftware.smack.XMPPException * thrown if a server error has occurred. */ - public ReportedData sendSimpleSearchForm(XMPPConnection con, Form searchForm, String searchService) throws XMPPException { + public ReportedData sendSimpleSearchForm(Connection con, Form searchForm, String searchService) throws XMPPException { SimpleUserSearch search = new SimpleUserSearch(); search.setForm(searchForm); search.setType(IQ.Type.SET); diff --git a/source/org/jivesoftware/smackx/search/UserSearchManager.java b/source/org/jivesoftware/smackx/search/UserSearchManager.java index 6ff75cbb6..83c19e3b6 100644 --- a/source/org/jivesoftware/smackx/search/UserSearchManager.java +++ b/source/org/jivesoftware/smackx/search/UserSearchManager.java @@ -16,7 +16,7 @@ package org.jivesoftware.smackx.search; -import org.jivesoftware.smack.XMPPConnection; +import org.jivesoftware.smack.Connection; import org.jivesoftware.smack.XMPPException; import org.jivesoftware.smackx.Form; import org.jivesoftware.smackx.ReportedData; @@ -35,7 +35,7 @@ import java.util.List; * searching (DataForms or No DataForms), but allows the user to simply use the DataForm model for both * types of support. *

    - * XMPPConnection con = new XMPPConnection("jabber.org");
    + * Connection con = new XMPPConnection("jabber.org");
      * con.login("john", "doe");
      * UserSearchManager search = new UserSearchManager(con, "users.jabber.org");
      * Form searchForm = search.getSearchForm();
    @@ -49,15 +49,15 @@ import java.util.List;
      */
     public class UserSearchManager {
     
    -    private XMPPConnection con;
    +    private Connection con;
         private UserSearch userSearch;
     
         /**
          * Creates a new UserSearchManager.
          *
    -     * @param con the XMPPConnection to use.
    +     * @param con the Connection to use.
          */
    -    public UserSearchManager(XMPPConnection con) {
    +    public UserSearchManager(Connection con) {
             this.con = con;
             userSearch = new UserSearch();
         }
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/Agent.java b/source/org/jivesoftware/smackx/workgroup/agent/Agent.java
    index 68d79bbd3..bebac3721 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/Agent.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/Agent.java
    @@ -23,7 +23,7 @@ import org.jivesoftware.smackx.workgroup.packet.AgentInfo;
     import org.jivesoftware.smackx.workgroup.packet.AgentWorkgroups;
     import org.jivesoftware.smack.PacketCollector;
     import org.jivesoftware.smack.SmackConfiguration;
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.XMPPException;
     import org.jivesoftware.smack.filter.PacketIDFilter;
     import org.jivesoftware.smack.packet.IQ;
    @@ -36,10 +36,10 @@ import java.util.Collection;
      * @author Derek DeMoro
      */
     public class Agent {
    -    private XMPPConnection connection;
    +    private Connection connection;
         private String workgroupJID;
     
    -    public static Collection getWorkgroups(String serviceJID, String agentJID, XMPPConnection connection) throws XMPPException {
    +    public static Collection getWorkgroups(String serviceJID, String agentJID, Connection connection) throws XMPPException {
             AgentWorkgroups request = new AgentWorkgroups(agentJID);
             request.setTo(serviceJID);
             PacketCollector collector = connection.createPacketCollector(new PacketIDFilter(request.getPacketID()));
    @@ -62,7 +62,7 @@ public class Agent {
         /**
          * Constructs an Agent.
          */
    -    Agent(XMPPConnection connection, String workgroupJID) {
    +    Agent(Connection connection, String workgroupJID) {
             this.connection = connection;
             this.workgroupJID = workgroupJID;
         }
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java b/source/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java
    index 6cc92df5d..155a1c3d6 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/AgentRoster.java
    @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.workgroup.agent;
     import org.jivesoftware.smackx.workgroup.packet.AgentStatus;
     import org.jivesoftware.smackx.workgroup.packet.AgentStatusRequest;
     import org.jivesoftware.smack.PacketListener;
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.filter.PacketFilter;
     import org.jivesoftware.smack.filter.PacketTypeFilter;
     import org.jivesoftware.smack.packet.Packet;
    @@ -50,7 +50,7 @@ public class AgentRoster {
         private static final int EVENT_AGENT_REMOVED = 1;
         private static final int EVENT_PRESENCE_CHANGED = 2;
     
    -    private XMPPConnection connection;
    +    private Connection connection;
         private String workgroupJID;
         private List entries;
         private List listeners;
    @@ -64,7 +64,7 @@ public class AgentRoster {
          *
          * @param connection an XMPP connection.
          */
    -    AgentRoster(XMPPConnection connection, String workgroupJID) {
    +    AgentRoster(Connection connection, String workgroupJID) {
             this.connection = connection;
             this.workgroupJID = workgroupJID;
             entries = new ArrayList();
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/AgentSession.java b/source/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
    index b44a728d6..340de4f39 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/AgentSession.java
    @@ -53,7 +53,7 @@ import java.util.*;
      */
     public class AgentSession {
     
    -    private XMPPConnection connection;
    +    private Connection connection;
     
         private String workgroupJID;
     
    @@ -83,7 +83,7 @@ public class AgentSession {
          *                     authentication.
          * @param workgroupJID the fully qualified JID of the workgroup.
          */
    -    public AgentSession(String workgroupJID, XMPPConnection connection) {
    +    public AgentSession(String workgroupJID, Connection connection) {
             // Login must have been done before passing in connection.
             if (!connection.isAuthenticated()) {
                 throw new IllegalStateException("Must login to server before creating workgroup.");
    @@ -1112,12 +1112,12 @@ public class AgentSession {
         /**
          * Returns the generic metadata of the workgroup the agent belongs to.
          *
    -     * @param con   the XMPPConnection to use.
    +     * @param con   the Connection to use.
          * @param query an optional query object used to tell the server what metadata to retrieve. This can be null.
          * @throws XMPPException if an error occurs while sending the request to the server.
          * @return the settings for the workgroup.
          */
    -    public GenericSettings getGenericSettings(XMPPConnection con, String query) throws XMPPException {
    +    public GenericSettings getGenericSettings(Connection con, String query) throws XMPPException {
             GenericSettings setting = new GenericSettings();
             setting.setType(IQ.Type.GET);
             setting.setTo(workgroupJID);
    @@ -1138,7 +1138,7 @@ public class AgentSession {
             return response;
         }
     
    -    public boolean hasMonitorPrivileges(XMPPConnection con) throws XMPPException {
    +    public boolean hasMonitorPrivileges(Connection con) throws XMPPException {
             MonitorPacket request = new MonitorPacket();
             request.setType(IQ.Type.GET);
             request.setTo(workgroupJID);
    @@ -1160,7 +1160,7 @@ public class AgentSession {
     
         }
     
    -    public void makeRoomOwner(XMPPConnection con, String sessionID) throws XMPPException {
    +    public void makeRoomOwner(Connection con, String sessionID) throws XMPPException {
             MonitorPacket request = new MonitorPacket();
             request.setType(IQ.Type.SET);
             request.setTo(workgroupJID);
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/Offer.java b/source/org/jivesoftware/smackx/workgroup/agent/Offer.java
    index 51793c8e7..cb8dcfbc1 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/Offer.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/Offer.java
    @@ -19,7 +19,7 @@
     
     package org.jivesoftware.smackx.workgroup.agent;
     
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.packet.IQ;
     import org.jivesoftware.smack.packet.Packet;
     
    @@ -36,7 +36,7 @@ import java.util.Map;
      */
     public class Offer {
     
    -    private XMPPConnection connection;
    +    private Connection connection;
         private AgentSession session;
     
         private String sessionID;
    @@ -64,7 +64,7 @@ public class Offer {
          * @param content content of the offer. The content explains the reason for the offer
          *        (e.g. user request, transfer)
          */
    -    Offer(XMPPConnection conn, AgentSession agentSession, String userID,
    +    Offer(Connection conn, AgentSession agentSession, String userID,
                 String userJID, String workgroupName, Date expiresDate,
                 String sessionID, Map metaData, OfferContent content)
         {
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java b/source/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java
    index 56c1a67ba..f55d5881a 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/OfferConfirmation.java
    @@ -19,7 +19,7 @@
     
     package org.jivesoftware.smackx.workgroup.agent;
     
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.packet.IQ;
     import org.jivesoftware.smack.provider.IQProvider;
     import org.xmlpull.v1.XmlPullParser;
    @@ -46,7 +46,7 @@ public class OfferConfirmation extends IQ {
         }
     
     
    -    public void notifyService(XMPPConnection con, String workgroup, String createdRoomName) {
    +    public void notifyService(Connection con, String workgroup, String createdRoomName) {
             NotifyServicePacket packet = new NotifyServicePacket(workgroup, createdRoomName);
             con.sendPacket(packet);
         }
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java b/source/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java
    index 07d5c5688..8a3801fcf 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/TranscriptManager.java
    @@ -23,7 +23,7 @@ import org.jivesoftware.smackx.workgroup.packet.Transcript;
     import org.jivesoftware.smackx.workgroup.packet.Transcripts;
     import org.jivesoftware.smack.PacketCollector;
     import org.jivesoftware.smack.SmackConfiguration;
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.XMPPException;
     import org.jivesoftware.smack.filter.PacketIDFilter;
     
    @@ -35,9 +35,9 @@ import org.jivesoftware.smack.filter.PacketIDFilter;
      * @author Gaston Dombiak
      */
     public class TranscriptManager {
    -    private XMPPConnection connection;
    +    private Connection connection;
     
    -    public TranscriptManager(XMPPConnection connection) {
    +    public TranscriptManager(Connection connection) {
             this.connection = connection;
         }
     
    diff --git a/source/org/jivesoftware/smackx/workgroup/agent/TranscriptSearchManager.java b/source/org/jivesoftware/smackx/workgroup/agent/TranscriptSearchManager.java
    index a262da954..8260cd6b1 100644
    --- a/source/org/jivesoftware/smackx/workgroup/agent/TranscriptSearchManager.java
    +++ b/source/org/jivesoftware/smackx/workgroup/agent/TranscriptSearchManager.java
    @@ -22,7 +22,7 @@ package org.jivesoftware.smackx.workgroup.agent;
     import org.jivesoftware.smackx.workgroup.packet.TranscriptSearch;
     import org.jivesoftware.smack.PacketCollector;
     import org.jivesoftware.smack.SmackConfiguration;
    -import org.jivesoftware.smack.XMPPConnection;
    +import org.jivesoftware.smack.Connection;
     import org.jivesoftware.smack.XMPPException;
     import org.jivesoftware.smack.filter.PacketIDFilter;
     import org.jivesoftware.smack.packet.IQ;
    @@ -37,9 +37,9 @@ import org.jivesoftware.smackx.ReportedData;
      * @author Gaston Dombiak
      */
     public class TranscriptSearchManager {
    -    private XMPPConnection connection;
    +    private Connection connection;
     
    -    public TranscriptSearchManager(XMPPConnection connection) {
    +    public TranscriptSearchManager(Connection connection) {
             this.connection = connection;
         }
     
    diff --git a/source/org/jivesoftware/smackx/workgroup/user/Workgroup.java b/source/org/jivesoftware/smackx/workgroup/user/Workgroup.java
    index 905e5d97a..a21b99661 100644
    --- a/source/org/jivesoftware/smackx/workgroup/user/Workgroup.java
    +++ b/source/org/jivesoftware/smackx/workgroup/user/Workgroup.java
    @@ -56,7 +56,7 @@ import java.util.Map;
     public class Workgroup {
     
         private String workgroupJID;
    -    private XMPPConnection connection;
    +    private Connection connection;
         private boolean inQueue;
         private List invitationListeners;
         private List queueListeners;
    @@ -75,7 +75,7 @@ public class Workgroup {
          * @param connection   an XMPP connection which must have already undergone a
          *                     successful login.
          */
    -    public Workgroup(String workgroupJID, XMPPConnection connection) {
    +    public Workgroup(String workgroupJID, Connection connection) {
             // Login must have been done before passing in connection.
             if (!connection.isAuthenticated()) {
                 throw new IllegalStateException("Must login to server before creating workgroup.");
    @@ -114,7 +114,7 @@ public class Workgroup {
              */
             MultiUserChat.addInvitationListener(connection,
                     new org.jivesoftware.smackx.muc.InvitationListener() {
    -                    public void invitationReceived(XMPPConnection conn, String room, String inviter,
    +                    public void invitationReceived(Connection conn, String room, String inviter,
                                                        String reason, String password, Message message) {
                             inQueue = false;
                             queuePosition = -1;
    @@ -854,7 +854,7 @@ public class Workgroup {
     
         /*
         public static void main(String args[]) throws Exception {
    -        XMPPConnection con = new XMPPConnection("anteros");
    +        Connection con = new XMPPConnection("anteros");
             con.connect();
             con.loginAnonymously();
     
    diff --git a/test/org/jivesoftware/smack/PacketReaderTest.java b/test/org/jivesoftware/smack/PacketReaderTest.java
    index 2445b392c..33f593a7c 100644
    --- a/test/org/jivesoftware/smack/PacketReaderTest.java
    +++ b/test/org/jivesoftware/smack/PacketReaderTest.java
    @@ -140,12 +140,12 @@ public class PacketReaderTest extends SmackTestCase {
                 }
             };
             // Keep number of current listeners
    -        int listenersSize = getConnection(0).packetReader.listeners.size();
    +        int listenersSize = getConnection(0).getPacketListeners().size();
             // Add a new listener
             getConnection(0).addPacketListener(listener, new MockPacketFilter(true));
             // Check that the listener was added
             assertEquals("Listener was not added", listenersSize + 1,
    -                getConnection(0).packetReader.listeners.size());
    +                getConnection(0).getPacketListeners().size());
     
             Message msg = new Message(getConnection(0).getUser(), Message.Type.normal);
     
    @@ -155,7 +155,7 @@ public class PacketReaderTest extends SmackTestCase {
             getConnection(0).removePacketListener(listener);
             // Check that the number of listeners is correct (i.e. the listener was removed)
             assertEquals("Listener was not removed", listenersSize,
    -                getConnection(0).packetReader.listeners.size());
    +                getConnection(0).getPacketListeners().size());
         }
     
         /**
    diff --git a/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java b/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java
    index a41ad724e..30102c0b9 100644
    --- a/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java
    +++ b/test/org/jivesoftware/smackx/muc/MultiUserChatTest.java
    @@ -286,7 +286,7 @@ public class MultiUserChatTest extends SmackTestCase {
                 // User3 is listening to MUC invitations
                 MultiUserChat.addInvitationListener(getConnection(2), new InvitationListener() {
                     public void invitationReceived(
    -                    XMPPConnection conn,
    +                    Connection conn,
                         String room,
                         String inviter,
                         String reason,
    @@ -336,7 +336,7 @@ public class MultiUserChatTest extends SmackTestCase {
                 // User3 is listening to MUC invitations
                 MultiUserChat.addInvitationListener(getConnection(2), new InvitationListener() {
                     public void invitationReceived(
    -                    XMPPConnection conn,
    +                    Connection conn,
                         String room,
                         String inviter,
                         String reason,
    diff --git a/test/org/jivesoftware/smackx/pubsub/TestEvents.java b/test/org/jivesoftware/smackx/pubsub/TestEvents.java
    index d8f30e2b1..18ce059d7 100644
    --- a/test/org/jivesoftware/smackx/pubsub/TestEvents.java
    +++ b/test/org/jivesoftware/smackx/pubsub/TestEvents.java
    @@ -499,7 +499,6 @@ public class TestEvents extends SmackTestCase
     			this.id = id;
     		}
     
    -		@Override
     		public void handlePublishedItems(ItemPublishEvent items)
     		{
     			events = items;