mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2025-12-09 06:31:08 +01:00
Enable trailing whitespace checkstyle check
for all source code regions, including javadoc.
This commit is contained in:
parent
9d61a6de7d
commit
e8923b9d16
545 changed files with 3713 additions and 3715 deletions
|
|
@ -21,7 +21,7 @@ package org.jivesoftware.smack;
|
|||
* methods defined by the {@link ConnectionListener} interface. This is a
|
||||
* convenience class which should be used in case you do not need to implement
|
||||
* all methods.
|
||||
*
|
||||
*
|
||||
* @author Henning Staib
|
||||
*/
|
||||
public class AbstractConnectionListener implements ConnectionListener {
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
public abstract class AbstractXMPPConnection implements XMPPConnection {
|
||||
private static final Logger LOGGER = Logger.getLogger(AbstractXMPPConnection.class.getName());
|
||||
|
||||
/**
|
||||
/**
|
||||
* Counter to uniquely identify connections that are created.
|
||||
*/
|
||||
private static final AtomicInteger connectionCounter = new AtomicInteger(0);
|
||||
|
|
@ -293,7 +293,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
|
||||
/**
|
||||
* Create a new XMPPConnection to an XMPP server.
|
||||
*
|
||||
*
|
||||
* @param configuration The configuration which is used to establish the connection.
|
||||
*/
|
||||
protected AbstractXMPPConnection(ConnectionConfiguration configuration) {
|
||||
|
|
@ -355,12 +355,12 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* <p>
|
||||
* Listeners will be preserved from a previous connection.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @throws XMPPException if an error occurs on the XMPP protocol level.
|
||||
* @throws SmackException if an error occurs somewhere else besides XMPP protocol level.
|
||||
* @throws IOException
|
||||
* @throws IOException
|
||||
* @return a reference to this object, to chain <code>connect()</code> with <code>login()</code>.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public synchronized AbstractXMPPConnection connect() throws SmackException, IOException, XMPPException, InterruptedException {
|
||||
// Check if not already connected
|
||||
|
|
@ -395,11 +395,11 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* Abstract method that concrete subclasses of XMPPConnection need to implement to perform their
|
||||
* way of XMPP connection establishment. Implementations are required to perform an automatic
|
||||
* login if the previous connection state was logged (authenticated).
|
||||
*
|
||||
*
|
||||
* @throws SmackException
|
||||
* @throws IOException
|
||||
* @throws XMPPException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
protected abstract void connectInternal() throws SmackException, IOException, XMPPException, InterruptedException;
|
||||
|
||||
|
|
@ -412,7 +412,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
|
||||
/**
|
||||
* Logs in to the server using the strongest SASL mechanism supported by
|
||||
* the server. If more than the connection's default stanza timeout elapses in each step of the
|
||||
* the server. If more than the connection's default stanza timeout elapses in each step of the
|
||||
* authentication process without a response from the server, a
|
||||
* {@link SmackException.NoResponseException} will be thrown.
|
||||
* <p>
|
||||
|
|
@ -427,11 +427,11 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* {@link ConnectionConfiguration.Builder#setCallbackHandler(javax.security.auth.callback.CallbackHandler)}.
|
||||
* For more advanced login settings see {@link ConnectionConfiguration}.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @throws XMPPException if an error occurs on the XMPP protocol level.
|
||||
* @throws SmackException if an error occurs somewhere else besides XMPP protocol level.
|
||||
* @throws IOException if an I/O error occurs during login.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public synchronized void login() throws XMPPException, SmackException, IOException, InterruptedException {
|
||||
// The previously used username, password and resource take over precedence over the
|
||||
|
|
@ -445,13 +445,13 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Same as {@link #login(CharSequence, String, Resourcepart)}, but takes the resource from the connection
|
||||
* configuration.
|
||||
*
|
||||
*
|
||||
* @param username
|
||||
* @param password
|
||||
* @throws XMPPException
|
||||
* @throws SmackException
|
||||
* @throws IOException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @see #login
|
||||
*/
|
||||
public synchronized void login(CharSequence username, String password) throws XMPPException, SmackException,
|
||||
|
|
@ -462,14 +462,14 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Login with the given username (authorization identity). You may omit the password if a callback handler is used.
|
||||
* If resource is null, then the server will generate one.
|
||||
*
|
||||
*
|
||||
* @param username
|
||||
* @param password
|
||||
* @param resource
|
||||
* @throws XMPPException
|
||||
* @throws SmackException
|
||||
* @throws IOException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @see #login
|
||||
*/
|
||||
public synchronized void login(CharSequence username, String password, Resourcepart resource) throws XMPPException,
|
||||
|
|
@ -580,7 +580,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* Get the name of the SASL mechanism that was used to authenticate this connection. This returns the name of
|
||||
* mechanism which was used the last time this connection was authenticated, and will return <code>null</code> if
|
||||
* this connection was not authenticated before.
|
||||
*
|
||||
*
|
||||
* @return the name of the used SASL mechanism.
|
||||
* @since 4.2
|
||||
*/
|
||||
|
|
@ -674,7 +674,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Returns the SASLAuthentication manager that is responsible for authenticating with
|
||||
* the server.
|
||||
*
|
||||
*
|
||||
* @return the SASLAuthentication manager that is responsible for authenticating with
|
||||
* the server.
|
||||
*/
|
||||
|
|
@ -708,9 +708,9 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* information such as "On vacation". Typically, just the status text of the presence
|
||||
* stanza is set with online information, but most XMPP servers will deliver the full
|
||||
* presence stanza with whatever data is set.
|
||||
*
|
||||
*
|
||||
* @param unavailablePresence the optional presence stanza to send during shutdown.
|
||||
* @throws NotConnectedException
|
||||
* @throws NotConnectedException
|
||||
*/
|
||||
public synchronized void disconnect(Presence unavailablePresence) throws NotConnectedException {
|
||||
if (unavailablePresence != null) {
|
||||
|
|
@ -871,7 +871,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* <p>
|
||||
* Compared to {@link #firePacketInterceptors(Stanza)}, the listeners will be invoked in a new thread.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param packet the stanza to process.
|
||||
*/
|
||||
@SuppressWarnings("javadoc")
|
||||
|
|
@ -946,7 +946,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
* Since the thread that requested to send the stanza will invoke all interceptors, it
|
||||
* is important that interceptors perform their work as soon as possible so that the
|
||||
* thread does not remain blocked for a long period.
|
||||
*
|
||||
*
|
||||
* @param packet the stanza that is going to be sent to the server
|
||||
*/
|
||||
private void firePacketInterceptors(Stanza packet) {
|
||||
|
|
@ -970,7 +970,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Initialize the {@link #debugger}. You can specify a customized {@link SmackDebugger}
|
||||
* by setup the system property <code>smack.debuggerClass</code> to the implementation.
|
||||
*
|
||||
*
|
||||
* @throws IllegalStateException if the reader or writer isn't yet initialized.
|
||||
* @throws IllegalArgumentException if the SmackDebugger can't be loaded.
|
||||
*/
|
||||
|
|
@ -1208,7 +1208,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Sets whether the connection has already logged in the server. This method assures that the
|
||||
* {@link #wasAuthenticated} flag is never reset once it has ever been set.
|
||||
*
|
||||
*
|
||||
*/
|
||||
protected void setWasAuthenticated() {
|
||||
// Never reset the flag if the connection has ever been authenticated
|
||||
|
|
@ -1284,7 +1284,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
|
||||
/**
|
||||
* Create a class which associates a stanza filter with a listener.
|
||||
*
|
||||
*
|
||||
* @param packetListener the stanza listener.
|
||||
* @param packetFilter the associated filter or null if it listen for all packets.
|
||||
*/
|
||||
|
|
@ -1312,7 +1312,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
|
||||
/**
|
||||
* Create a class which associates a stanza filter with an interceptor.
|
||||
*
|
||||
*
|
||||
* @param packetInterceptor the interceptor.
|
||||
* @param packetFilter the associated filter or null if it intercepts all packets.
|
||||
*/
|
||||
|
|
@ -1681,7 +1681,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
/**
|
||||
* Install a parsing exception callback, which will be invoked once an exception is encountered while parsing a
|
||||
* stanza.
|
||||
*
|
||||
*
|
||||
* @param callback the callback to install
|
||||
*/
|
||||
public void setParsingExceptionCallback(ParsingExceptionCallback callback) {
|
||||
|
|
@ -1690,7 +1690,7 @@ public abstract class AbstractXMPPConnection implements XMPPConnection {
|
|||
|
||||
/**
|
||||
* Get the current active parsing exception callback.
|
||||
*
|
||||
*
|
||||
* @return the active exception callback or null if there is none
|
||||
*/
|
||||
public ParsingExceptionCallback getParsingExceptionCallback() {
|
||||
|
|
|
|||
|
|
@ -107,12 +107,12 @@ public abstract class ConnectionConfiguration {
|
|||
private final X509TrustManager customX509TrustManager;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private final String[] enabledSSLProtocols;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private final String[] enabledSSLCiphers;
|
||||
|
||||
|
|
@ -210,7 +210,7 @@ public abstract class ConnectionConfiguration {
|
|||
}
|
||||
|
||||
/**
|
||||
* Retuns the path to the keystore file. The key store file contains the
|
||||
* Retuns the path to the keystore file. The key store file contains the
|
||||
* certificates that may be used to authenticate the client to the server,
|
||||
* in the event the server requests or requires it.
|
||||
*
|
||||
|
|
@ -271,7 +271,7 @@ public abstract class ConnectionConfiguration {
|
|||
* Returns the configured HostnameVerifier of this ConnectionConfiguration or the Smack default
|
||||
* HostnameVerifier configured with
|
||||
* {@link SmackConfiguration#setDefaultHostnameVerifier(HostnameVerifier)}.
|
||||
*
|
||||
*
|
||||
* @return a configured HostnameVerifier or <code>null</code>
|
||||
*/
|
||||
public HostnameVerifier getHostnameVerifier() {
|
||||
|
|
@ -305,7 +305,7 @@ public abstract class ConnectionConfiguration {
|
|||
/**
|
||||
* Returns the socket factory used to create new xmppConnection sockets.
|
||||
* This is useful when connecting through SOCKS5 proxies.
|
||||
*
|
||||
*
|
||||
* @return socketFactory used to create new sockets.
|
||||
*/
|
||||
public SocketFactory getSocketFactory() {
|
||||
|
|
@ -413,7 +413,7 @@ public abstract class ConnectionConfiguration {
|
|||
|
||||
/**
|
||||
* Returns the optional XMPP address to be requested as the SASL authorization identity.
|
||||
*
|
||||
*
|
||||
* @return the authorization identifier.
|
||||
* @see <a href="http://tools.ietf.org/html/rfc6120#section-6.3.8">RFC 6120 § 6.3.8. Authorization Identity</a>
|
||||
* @since 4.2
|
||||
|
|
@ -689,7 +689,7 @@ public abstract class ConnectionConfiguration {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the path to the keystore file. The key store file contains the
|
||||
* Sets the path to the keystore file. The key store file contains the
|
||||
* certificates that may be used to authenticate the client to the server,
|
||||
* in the event the server requests or requires it.
|
||||
*
|
||||
|
|
@ -752,8 +752,8 @@ public abstract class ConnectionConfiguration {
|
|||
|
||||
/**
|
||||
* Set the enabled SSL/TLS ciphers.
|
||||
*
|
||||
* @param enabledSSLCiphers the enabled SSL/TLS ciphers
|
||||
*
|
||||
* @param enabledSSLCiphers the enabled SSL/TLS ciphers
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
public B setEnabledSSLCiphers(String[] enabledSSLCiphers) {
|
||||
|
|
@ -764,7 +764,7 @@ public abstract class ConnectionConfiguration {
|
|||
/**
|
||||
* Set the HostnameVerifier used to verify the hostname of SSLSockets used by XMPP connections
|
||||
* created with this ConnectionConfiguration.
|
||||
*
|
||||
*
|
||||
* @param verifier
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
|
|
@ -795,7 +795,7 @@ public abstract class ConnectionConfiguration {
|
|||
|
||||
/**
|
||||
* Set the Smack debugger factory used to construct Smack debuggers.
|
||||
*
|
||||
*
|
||||
* @param debuggerFactory the Smack debugger factory.
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
|
|
@ -832,7 +832,7 @@ public abstract class ConnectionConfiguration {
|
|||
*
|
||||
* Some SASL mechanisms (e.g. SASL External) may also signal the username (as "authorization identity"), in
|
||||
* which case Smack should not throw an IllegalArgumentException when the username is not set.
|
||||
*
|
||||
*
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
public B allowEmptyOrNullUsernames() {
|
||||
|
|
@ -843,7 +843,7 @@ public abstract class ConnectionConfiguration {
|
|||
/**
|
||||
* Perform anonymous authentication using SASL ANONYMOUS. Your XMPP service must support this authentication
|
||||
* mechanism. This method also calls {@link #addEnabledSaslMechanism(String)} with "ANONYMOUS" as argument.
|
||||
*
|
||||
*
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
public B performSaslAnonymousAuthentication() {
|
||||
|
|
@ -902,7 +902,7 @@ public abstract class ConnectionConfiguration {
|
|||
* Enable the given SASL mechanisms. If you never add a mechanism to the set of enabled ones, <b>all mechanisms
|
||||
* known to Smack</b> will be enabled. Only explicitly enable particular SASL mechanisms if you want to limit
|
||||
* the used mechanisms to the enabled ones.
|
||||
*
|
||||
*
|
||||
* @param saslMechanisms a collection of names of mechanisms to enable.
|
||||
* @return a reference to this builder.
|
||||
*/
|
||||
|
|
@ -935,7 +935,7 @@ public abstract class ConnectionConfiguration {
|
|||
* service domain, which should typically match.
|
||||
* Calling this will also SASL CRAM, since this mechanism does not support authzid.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param authzid The BareJid to be requested as the authorization identifier.
|
||||
* @return a reference to this builder.
|
||||
* @see <a href="http://tools.ietf.org/html/rfc6120#section-6.3.8">RFC 6120 § 6.3.8. Authorization Identity</a>
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ public interface ConnectionCreationListener {
|
|||
/**
|
||||
* Notification that a new connection has been created. The new connection
|
||||
* will not yet be connected to the server.
|
||||
*
|
||||
*
|
||||
* @param connection the newly created connection.
|
||||
*/
|
||||
void connectionCreated(XMPPConnection connection);
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ package org.jivesoftware.smack;
|
|||
*
|
||||
* @see XMPPConnection#addConnectionListener
|
||||
* @see XMPPConnection#removeConnectionListener
|
||||
*
|
||||
*
|
||||
* @author Matt Tucker
|
||||
*/
|
||||
public interface ConnectionListener {
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ import org.jivesoftware.smack.util.Async;
|
|||
* <li>If that fails it will indefinitely try to connect once every five minutes.
|
||||
* </ol>
|
||||
*
|
||||
* {@link ReconnectionPolicy#FIXED_DELAY} - The reconnection mechanism will try to reconnect after a fixed delay
|
||||
* {@link ReconnectionPolicy#FIXED_DELAY} - The reconnection mechanism will try to reconnect after a fixed delay
|
||||
* independently from the number of reconnection attempts already performed.
|
||||
* <p>
|
||||
* Interrupting the reconnection thread will abort the reconnection mechanism.
|
||||
|
|
@ -60,7 +60,7 @@ public final class ReconnectionManager {
|
|||
|
||||
/**
|
||||
* Get a instance of ReconnectionManager for the given connection.
|
||||
*
|
||||
*
|
||||
* @param connection
|
||||
* @return a ReconnectionManager for the connection.
|
||||
*/
|
||||
|
|
@ -89,7 +89,7 @@ public final class ReconnectionManager {
|
|||
/**
|
||||
* Set if the automatic reconnection mechanism will be enabled per default for new XMPP connections. The default is
|
||||
* 'false'.
|
||||
*
|
||||
*
|
||||
* @param enabled
|
||||
*/
|
||||
public static void setEnabledPerDefault(boolean enabled) {
|
||||
|
|
@ -121,7 +121,7 @@ public final class ReconnectionManager {
|
|||
/**
|
||||
* Set the default fixed delay in seconds between the reconnection attempts. Also set the
|
||||
* default connection policy to {@link ReconnectionPolicy#FIXED_DELAY}
|
||||
*
|
||||
*
|
||||
* @param fixedDelay Delay expressed in seconds
|
||||
*/
|
||||
public static void setDefaultFixedDelay(int fixedDelay) {
|
||||
|
|
@ -131,7 +131,7 @@ public final class ReconnectionManager {
|
|||
|
||||
/**
|
||||
* Set the default Reconnection Policy to use.
|
||||
*
|
||||
*
|
||||
* @param reconnectionPolicy
|
||||
*/
|
||||
public static void setDefaultReconnectionPolicy(ReconnectionPolicy reconnectionPolicy) {
|
||||
|
|
@ -162,7 +162,7 @@ public final class ReconnectionManager {
|
|||
/**
|
||||
* Set the fixed delay in seconds between the reconnection attempts Also set the connection
|
||||
* policy to {@link ReconnectionPolicy#FIXED_DELAY}.
|
||||
*
|
||||
*
|
||||
* @param fixedDelay Delay expressed in seconds
|
||||
*/
|
||||
public void setFixedDelay(int fixedDelay) {
|
||||
|
|
@ -172,7 +172,7 @@ public final class ReconnectionManager {
|
|||
|
||||
/**
|
||||
* Set the Reconnection Policy to use.
|
||||
*
|
||||
*
|
||||
* @param reconnectionPolicy
|
||||
*/
|
||||
public void setReconnectionPolicy(ReconnectionPolicy reconnectionPolicy) {
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ public final class SASLAuthentication {
|
|||
/**
|
||||
* Unregister a SASLMechanism by it's full class name. For example
|
||||
* "org.jivesoftware.smack.sasl.javax.SASLCramMD5Mechanism".
|
||||
*
|
||||
*
|
||||
* @param clazz the SASLMechanism class's name
|
||||
* @return true if the given SASLMechanism was removed, false otherwise
|
||||
*/
|
||||
|
|
@ -228,10 +228,10 @@ public final class SASLAuthentication {
|
|||
/**
|
||||
* Wrapper for {@link #challengeReceived(String, boolean)}, with <code>finalChallenge</code> set
|
||||
* to <code>false</code>.
|
||||
*
|
||||
*
|
||||
* @param challenge a base64 encoded string representing the challenge.
|
||||
* @throws SmackException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public void challengeReceived(String challenge) throws SmackException, InterruptedException {
|
||||
challengeReceived(challenge, false);
|
||||
|
|
@ -261,8 +261,8 @@ public final class SASLAuthentication {
|
|||
* Notification message saying that SASL authentication was successful. The next step
|
||||
* would be to bind the resource.
|
||||
* @param success result of the authentication.
|
||||
* @throws SmackException
|
||||
* @throws InterruptedException
|
||||
* @throws SmackException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public void authenticated(Success success) throws SmackException, InterruptedException {
|
||||
// RFC6120 6.3.10 "At the end of the authentication exchange, the SASL server (the XMPP
|
||||
|
|
@ -284,7 +284,7 @@ public final class SASLAuthentication {
|
|||
/**
|
||||
* Notification message saying that SASL authentication has failed. The server may have
|
||||
* closed the connection depending on the number of possible retries.
|
||||
*
|
||||
*
|
||||
* @param saslFailure the SASL failure as reported by the server
|
||||
* @see <a href="https://tools.ietf.org/html/rfc6120#section-6.5">RFC6120 6.5</a>
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ import org.jivesoftware.smack.util.Objects;
|
|||
* </ul>
|
||||
*
|
||||
* Configuration settings are stored in org.jivesoftware.smack/smack-config.xml.
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public final class SmackConfiguration {
|
||||
|
|
@ -86,7 +86,7 @@ public final class SmackConfiguration {
|
|||
|
||||
/**
|
||||
* Returns the Smack version information, eg "1.3.0".
|
||||
*
|
||||
*
|
||||
* @return the Smack version information.
|
||||
*/
|
||||
public static String getVersion() {
|
||||
|
|
@ -96,7 +96,7 @@ public final class SmackConfiguration {
|
|||
/**
|
||||
* Returns the number of milliseconds to wait for a response from
|
||||
* the server. The default value is 5000 ms.
|
||||
*
|
||||
*
|
||||
* @return the milliseconds to wait for a response from the server
|
||||
* @deprecated use {@link #getDefaultReplyTimeout()} instead.
|
||||
*/
|
||||
|
|
@ -108,7 +108,7 @@ public final class SmackConfiguration {
|
|||
/**
|
||||
* Sets the number of milliseconds to wait for a response from
|
||||
* the server.
|
||||
*
|
||||
*
|
||||
* @param timeout the milliseconds to wait for a response from the server
|
||||
* @deprecated use {@link #setDefaultReplyTimeout(int)} instead.
|
||||
*/
|
||||
|
|
@ -120,7 +120,7 @@ public final class SmackConfiguration {
|
|||
/**
|
||||
* Returns the number of milliseconds to wait for a response from
|
||||
* the server. The default value is 5000 ms.
|
||||
*
|
||||
*
|
||||
* @return the milliseconds to wait for a response from the server
|
||||
*/
|
||||
public static int getDefaultReplyTimeout() {
|
||||
|
|
@ -134,7 +134,7 @@ public final class SmackConfiguration {
|
|||
/**
|
||||
* Sets the number of milliseconds to wait for a response from
|
||||
* the server.
|
||||
*
|
||||
*
|
||||
* @param timeout the milliseconds to wait for a response from the server
|
||||
*/
|
||||
public static void setDefaultReplyTimeout(int timeout) {
|
||||
|
|
@ -153,9 +153,9 @@ public final class SmackConfiguration {
|
|||
}
|
||||
|
||||
/**
|
||||
* Gets the default max size of a stanza collector before it will delete
|
||||
* Gets the default max size of a stanza collector before it will delete
|
||||
* the older packets.
|
||||
*
|
||||
*
|
||||
* @return The number of packets to queue before deleting older packets.
|
||||
*/
|
||||
public static int getStanzaCollectorSize() {
|
||||
|
|
@ -163,9 +163,9 @@ public final class SmackConfiguration {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sets the default max size of a stanza collector before it will delete
|
||||
* Sets the default max size of a stanza collector before it will delete
|
||||
* the older packets.
|
||||
*
|
||||
*
|
||||
* @param collectorSize the number of packets to queue before deleting older packets.
|
||||
*/
|
||||
public static void setStanzaCollectorSize(int collectorSize) {
|
||||
|
|
@ -235,7 +235,7 @@ public final class SmackConfiguration {
|
|||
|
||||
/**
|
||||
* Returns the default parsing exception callback.
|
||||
*
|
||||
*
|
||||
* @return the default parsing exception callback
|
||||
* @see ParsingExceptionCallback
|
||||
*/
|
||||
|
|
@ -334,7 +334,7 @@ public final class SmackConfiguration {
|
|||
|
||||
/**
|
||||
* Check if Smack was successfully initialized.
|
||||
*
|
||||
*
|
||||
* @return true if smack was initialized, false otherwise
|
||||
*/
|
||||
public static boolean isSmackInitialized() {
|
||||
|
|
|
|||
|
|
@ -26,19 +26,19 @@ import org.jxmpp.jid.Jid;
|
|||
|
||||
/**
|
||||
* Smack uses SmackExceptions for errors that are not defined by any XMPP specification.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*/
|
||||
public class SmackException extends Exception {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1844674365368214457L;
|
||||
|
||||
/**
|
||||
* Creates a new SmackException with the Throwable that was the root cause of the exception.
|
||||
*
|
||||
*
|
||||
* @param wrappedThrowable the root cause of the exception.
|
||||
*/
|
||||
public SmackException(Throwable wrappedThrowable) {
|
||||
|
|
@ -63,7 +63,7 @@ public class SmackException extends Exception {
|
|||
*/
|
||||
public static final class NoResponseException extends SmackException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -6523363748984543636L;
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ public class SmackException extends Exception {
|
|||
public static class NotLoggedInException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 3216216839100019278L;
|
||||
|
||||
|
|
@ -136,7 +136,7 @@ public class SmackException extends Exception {
|
|||
public static class AlreadyLoggedInException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5011416918049935231L;
|
||||
|
||||
|
|
@ -148,7 +148,7 @@ public class SmackException extends Exception {
|
|||
public static class AlreadyConnectedException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5011416918049135231L;
|
||||
|
||||
|
|
@ -160,7 +160,7 @@ public class SmackException extends Exception {
|
|||
public static class NotConnectedException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 9197980400776001173L;
|
||||
|
||||
|
|
@ -187,7 +187,7 @@ public class SmackException extends Exception {
|
|||
public static class IllegalStateChangeException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -1766023961577168927L;
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ public class SmackException extends Exception {
|
|||
public abstract static class SecurityRequiredException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 384291845029773545L;
|
||||
|
||||
|
|
@ -209,7 +209,7 @@ public class SmackException extends Exception {
|
|||
|
||||
public static class SecurityRequiredByClientException extends SecurityRequiredException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 2395325821201543159L;
|
||||
|
||||
|
|
@ -220,7 +220,7 @@ public class SmackException extends Exception {
|
|||
|
||||
public static class SecurityRequiredByServerException extends SecurityRequiredException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 8268148813117631819L;
|
||||
|
||||
|
|
@ -232,7 +232,7 @@ public class SmackException extends Exception {
|
|||
public static class SecurityNotPossibleException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -6836090872690331336L;
|
||||
|
||||
|
|
@ -250,7 +250,7 @@ public class SmackException extends Exception {
|
|||
public static class ConnectionException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1686944201672697996L;
|
||||
|
||||
|
|
@ -286,7 +286,7 @@ public class SmackException extends Exception {
|
|||
public static class FeatureNotSupportedException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 4713404802621452016L;
|
||||
|
||||
|
|
@ -326,7 +326,7 @@ public class SmackException extends Exception {
|
|||
public static class ResourceBindingNotOfferedException extends SmackException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 2346934138253437571L;
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ import org.jivesoftware.smack.packet.Stanza;
|
|||
* result.<p>
|
||||
*
|
||||
* Each stanza collector will queue up a configured number of packets for processing before
|
||||
* older packets are automatically dropped. The default number is retrieved by
|
||||
* older packets are automatically dropped. The default number is retrieved by
|
||||
* {@link SmackConfiguration#getStanzaCollectorSize()}.
|
||||
*
|
||||
* @see XMPPConnection#createStanzaCollector(StanzaFilter)
|
||||
|
|
@ -147,7 +147,7 @@ public class StanzaCollector {
|
|||
*
|
||||
* @param <P> type of the result stanza.
|
||||
* @return the next available packet.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <P extends Stanza> P nextResultBlockForever() throws InterruptedException {
|
||||
|
|
@ -165,7 +165,7 @@ public class StanzaCollector {
|
|||
*
|
||||
* @param <P> type of the result stanza.
|
||||
* @return the next available packet.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public <P extends Stanza> P nextResult() throws InterruptedException {
|
||||
return nextResult(connection.getReplyTimeout());
|
||||
|
|
@ -181,7 +181,7 @@ public class StanzaCollector {
|
|||
* @param <P> type of the result stanza.
|
||||
* @param timeout the timeout in milliseconds.
|
||||
* @return the next available packet.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <P extends Stanza> P nextResult(long timeout) throws InterruptedException {
|
||||
|
|
@ -270,7 +270,7 @@ public class StanzaCollector {
|
|||
|
||||
/**
|
||||
* Get the number of collected stanzas this stanza collector has collected so far.
|
||||
*
|
||||
*
|
||||
* @return the count of collected stanzas.
|
||||
* @since 4.1
|
||||
*/
|
||||
|
|
@ -306,7 +306,7 @@ public class StanzaCollector {
|
|||
|
||||
/**
|
||||
* Get a new stanza collector configuration instance.
|
||||
*
|
||||
*
|
||||
* @return a new stanza collector configuration.
|
||||
*/
|
||||
public static Configuration newConfiguration() {
|
||||
|
|
@ -325,7 +325,7 @@ public class StanzaCollector {
|
|||
/**
|
||||
* Set the stanza filter used by this collector. If <code>null</code>, then all packets will
|
||||
* get collected by this collector.
|
||||
*
|
||||
*
|
||||
* @param packetFilter
|
||||
* @return a reference to this configuration.
|
||||
* @deprecated use {@link #setStanzaFilter(StanzaFilter)} instead.
|
||||
|
|
@ -338,7 +338,7 @@ public class StanzaCollector {
|
|||
/**
|
||||
* Set the stanza filter used by this collector. If <code>null</code>, then all stanzas will
|
||||
* get collected by this collector.
|
||||
*
|
||||
*
|
||||
* @param stanzaFilter
|
||||
* @return a reference to this configuration.
|
||||
*/
|
||||
|
|
@ -350,7 +350,7 @@ public class StanzaCollector {
|
|||
/**
|
||||
* Set the maximum size of this collector, i.e. how many stanzas this collector will collect
|
||||
* before dropping old ones.
|
||||
*
|
||||
*
|
||||
* @param size
|
||||
* @return a reference to this configuration.
|
||||
*/
|
||||
|
|
@ -362,7 +362,7 @@ public class StanzaCollector {
|
|||
/**
|
||||
* Set the collector which timeout for the next result is reset once this collector collects
|
||||
* a packet.
|
||||
*
|
||||
*
|
||||
* @param collector
|
||||
* @return a reference to this configuration.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ public interface StanzaListener {
|
|||
*
|
||||
* @param packet the stanza to process.
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws NotLoggedInException
|
||||
* @throws InterruptedException
|
||||
* @throws NotLoggedInException
|
||||
*/
|
||||
void processStanza(Stanza packet) throws NotConnectedException, InterruptedException, NotLoggedInException;
|
||||
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ public class SynchronizationPoint<E extends Exception> {
|
|||
* {@link #reportSuccess()}, {@link #reportFailure()} and {@link #reportFailure(Exception)} will either set this
|
||||
* synchronization point to {@link State#Success} or {@link State#Failure}. If none of them is set after the
|
||||
* connections reply timeout, this method will set the state of {@link State#NoResponse}.
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
private void waitForConditionOrTimeout() throws InterruptedException {
|
||||
long remainingWait = TimeUnit.MILLISECONDS.toNanos(connection.getReplyTimeout());
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ package org.jivesoftware.smack;
|
|||
|
||||
/**
|
||||
* Representation of an unparsable stanza.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*
|
||||
*/
|
||||
|
|
@ -42,7 +42,7 @@ public class UnparseableStanza {
|
|||
|
||||
/**
|
||||
* Retrieve the raw stanza data.
|
||||
*
|
||||
*
|
||||
* @return the raw stanza data
|
||||
*/
|
||||
public CharSequence getContent() {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ import org.jxmpp.jid.EntityFullJid;
|
|||
* implements shared methods which are used by the different types of connections (e.g.
|
||||
* <code>XMPPTCPConnection</code> or <code>XMPPBOSHConnection</code>). To create a connection to an XMPP server
|
||||
* a simple usage of this API might look like the following:
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* // Create a connection to the igniterealtime.org XMPP server.
|
||||
* XMPPTCPConnection con = new XMPPTCPConnection("igniterealtime.org");
|
||||
|
|
@ -76,7 +76,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* Returns the XMPP Domain of the service provided by the XMPP server and used for this connection. After
|
||||
* authenticating with the server the returned value may be different.
|
||||
*
|
||||
*
|
||||
* @return the XMPP domain of this XMPP session.
|
||||
*/
|
||||
DomainBareJid getXMPPServiceDomain();
|
||||
|
|
@ -84,7 +84,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* 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 or null if not yet connected.
|
||||
*/
|
||||
String getHost();
|
||||
|
|
@ -92,7 +92,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* Returns the port number of the XMPP server for this connection. The default port
|
||||
* for normal connections is 5222.
|
||||
*
|
||||
*
|
||||
* @return the port number of the XMPP server or 0 if not yet connected.
|
||||
*/
|
||||
int getPort();
|
||||
|
|
@ -101,7 +101,7 @@ public interface XMPPConnection {
|
|||
* Returns the full XMPP address of the user that is logged in to the connection or
|
||||
* <tt>null</tt> 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.
|
||||
*/
|
||||
EntityFullJid getUser();
|
||||
|
|
@ -109,7 +109,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* Returns the stream ID for this connection, which is the value set by the server
|
||||
* when opening an XMPP stream. This value will be <tt>null</tt> if not connected to the server.
|
||||
*
|
||||
*
|
||||
* @return the ID of this connection returned from the XMPP server or <tt>null</tt> if
|
||||
* not connected to the server.
|
||||
* @see <a href="http://xmpp.org/rfcs/rfc6120.html#streams-attr-id">RFC 6120 § 4.7.3. id</a>
|
||||
|
|
@ -118,28 +118,28 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Returns true if currently connected to the XMPP server.
|
||||
*
|
||||
*
|
||||
* @return true if connected.
|
||||
*/
|
||||
boolean isConnected();
|
||||
|
||||
/**
|
||||
* Returns true if currently authenticated by successfully calling the login method.
|
||||
*
|
||||
*
|
||||
* @return true if authenticated.
|
||||
*/
|
||||
boolean isAuthenticated();
|
||||
|
||||
/**
|
||||
* Returns true if currently authenticated anonymously.
|
||||
*
|
||||
*
|
||||
* @return true if authenticated anonymously.
|
||||
*/
|
||||
boolean isAnonymous();
|
||||
|
||||
/**
|
||||
* Returns true if the connection to the server has successfully negotiated encryption.
|
||||
*
|
||||
* Returns true if the connection to the server has successfully negotiated encryption.
|
||||
*
|
||||
* @return true if a secure connection to the server.
|
||||
*/
|
||||
boolean isSecureConnection();
|
||||
|
|
@ -149,7 +149,7 @@ public interface XMPPConnection {
|
|||
* 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.
|
||||
*
|
||||
*
|
||||
* @return true if network traffic is being compressed.
|
||||
*/
|
||||
boolean isUsingCompression();
|
||||
|
|
@ -173,21 +173,21 @@ public interface XMPPConnection {
|
|||
*
|
||||
* @param nonza the Nonza to send.
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
void sendNonza(Nonza nonza) throws NotConnectedException, InterruptedException;
|
||||
|
||||
/**
|
||||
* Adds a connection listener to this connection that will be notified when
|
||||
* the connection closes or fails.
|
||||
*
|
||||
*
|
||||
* @param connectionListener a connection listener.
|
||||
*/
|
||||
void addConnectionListener(ConnectionListener connectionListener);
|
||||
|
||||
/**
|
||||
* Removes a connection listener from this connection.
|
||||
*
|
||||
*
|
||||
* @param connectionListener a connection listener.
|
||||
*/
|
||||
void removeConnectionListener(ConnectionListener connectionListener);
|
||||
|
|
@ -214,8 +214,8 @@ public interface XMPPConnection {
|
|||
*
|
||||
* @param request the IQ request to filter responses from
|
||||
* @return a new stanza collector.
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
StanzaCollector createStanzaCollectorAndSend(IQ request) throws NotConnectedException, InterruptedException;
|
||||
|
||||
|
|
@ -224,12 +224,12 @@ public interface XMPPConnection {
|
|||
* which stanzas will be accumulated by the collector. A StanzaCollector is
|
||||
* more suitable to use than a {@link StanzaListener} when you need to wait for
|
||||
* a specific result.
|
||||
*
|
||||
*
|
||||
* @param stanzaFilter the stanza filter to use.
|
||||
* @param stanza the stanza to send right after the collector got created
|
||||
* @return a new stanza collector.
|
||||
* @throws InterruptedException
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws NotConnectedException
|
||||
*/
|
||||
StanzaCollector createStanzaCollectorAndSend(StanzaFilter stanzaFilter, Stanza stanza)
|
||||
throws NotConnectedException, InterruptedException;
|
||||
|
|
@ -246,7 +246,7 @@ public interface XMPPConnection {
|
|||
* Otherwise make sure cancel the StanzaCollector in every case, e.g. even
|
||||
* if an exception is thrown, or otherwise you may leak the StanzaCollector.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stanzaFilter the stanza filter to use.
|
||||
* @return a new stanza collector.
|
||||
*/
|
||||
|
|
@ -258,7 +258,7 @@ public interface XMPPConnection {
|
|||
* Please make sure to cancel the collector when it is no longer required. See also
|
||||
* {@link #createStanzaCollector(StanzaFilter)}.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param configuration the stanza collector configuration.
|
||||
* @return a new stanza collector.
|
||||
* @since 4.1
|
||||
|
|
@ -267,7 +267,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Remove a stanza collector of this connection.
|
||||
*
|
||||
*
|
||||
* @param collector a stanza collectors which was created for this connection.
|
||||
*/
|
||||
void removeStanzaCollector(StanzaCollector collector);
|
||||
|
|
@ -309,7 +309,7 @@ public interface XMPPConnection {
|
|||
* invoked asynchronously in their own thread. Use this method if the order of the stanza listeners must not depend
|
||||
* on the order how the stanzas where received.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stanzaListener the stanza listener to notify of new received stanzas.
|
||||
* @param stanzaFilter the stanza filter to use.
|
||||
* @see #addStanzaInterceptor(StanzaListener, StanzaFilter)
|
||||
|
|
@ -319,7 +319,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Removes an <b>asynchronous</b> stanza listener for received stanzas from this connection.
|
||||
*
|
||||
*
|
||||
* @param stanzaListener the stanza listener to remove.
|
||||
* @return true if the stanza listener was removed
|
||||
* @since 4.1
|
||||
|
|
@ -333,7 +333,7 @@ public interface XMPPConnection {
|
|||
* that writes stanzas will be used to invoke the listeners. Therefore, each
|
||||
* stanza listener should complete all operations quickly or use a different
|
||||
* thread for processing.
|
||||
*
|
||||
*
|
||||
* @param stanzaListener the stanza listener to notify of sent stanzas.
|
||||
* @param stanzaFilter the stanza filter to use.
|
||||
* @deprecated use {@link #addStanzaSendingListener} instead
|
||||
|
|
@ -357,7 +357,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Removes a stanza listener for sending stanzas from this connection.
|
||||
*
|
||||
*
|
||||
* @param stanzaListener the stanza listener to remove.
|
||||
* @deprecated use {@link #removeStanzaSendingListener} instead
|
||||
*/
|
||||
|
|
@ -377,7 +377,7 @@ public interface XMPPConnection {
|
|||
* invoked every time a stanza is about to be sent by this connection. Interceptors
|
||||
* may modify the stanza to be sent. A stanza filter determines which stanzas
|
||||
* will be delivered to the interceptor.
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* NOTE: For a similar functionality on incoming stanzas, see {@link #addAsyncStanzaListener(StanzaListener, StanzaFilter)}.
|
||||
* </p>
|
||||
|
|
@ -467,7 +467,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* Set the FromMode for this connection instance. Defines how the 'from' attribute of outgoing
|
||||
* stanzas should be populated by Smack.
|
||||
*
|
||||
*
|
||||
* @param fromMode
|
||||
*/
|
||||
void setFromMode(FromMode fromMode);
|
||||
|
|
@ -492,7 +492,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Return true if the server supports the given stream feature.
|
||||
*
|
||||
*
|
||||
* @param element
|
||||
* @param namespace
|
||||
* @return true if the server supports the stream feature.
|
||||
|
|
@ -543,7 +543,7 @@ public interface XMPPConnection {
|
|||
* invoked at most once and it will be not invoked after the connections default reply timeout
|
||||
* has been elapsed.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stanza the stanza to send (required)
|
||||
* @param replyFilter the filter used to determine response stanza (required)
|
||||
* @param callback the callback invoked if there is a response (required)
|
||||
|
|
@ -563,13 +563,13 @@ public interface XMPPConnection {
|
|||
* after the connections default reply timeout, then <code>exceptionCallback</code> will be invoked
|
||||
* with a {@link SmackException.NoResponseException}. The callback will be invoked at most once.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stanza the stanza to send (required)
|
||||
* @param replyFilter the filter used to determine response stanza (required)
|
||||
* @param callback the callback invoked if there is a response (required)
|
||||
* @param exceptionCallback the callback invoked if there is an exception (optional)
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @deprecated use {@link #sendAsync(Stanza, StanzaFilter)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
|
|
@ -584,14 +584,14 @@ public interface XMPPConnection {
|
|||
* after <code>timeout</code> milliseconds, then <code>exceptionCallback</code> will be invoked
|
||||
* with a {@link SmackException.NoResponseException}. The callback will be invoked at most once.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stanza the stanza to send (required)
|
||||
* @param replyFilter the filter used to determine response stanza (required)
|
||||
* @param callback the callback invoked if there is a response (required)
|
||||
* @param exceptionCallback the callback invoked if there is an exception (optional)
|
||||
* @param timeout the timeout in milliseconds to wait for a response
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @deprecated use {@link #sendAsync(Stanza, StanzaFilter, long)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
|
|
@ -604,11 +604,11 @@ public interface XMPPConnection {
|
|||
* Send a IQ stanza and invoke <code>callback</code> if there is a result of
|
||||
* {@link org.jivesoftware.smack.packet.IQ.Type#result} with that result IQ. The callback will
|
||||
* not be invoked after the connections default reply timeout has been elapsed.
|
||||
*
|
||||
*
|
||||
* @param iqRequest the IQ stanza to send (required)
|
||||
* @param callback the callback invoked if there is result response (required)
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @deprecated use {@link #sendIqRequestAsync(IQ)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
|
|
@ -622,12 +622,12 @@ public interface XMPPConnection {
|
|||
* error as {@link XMPPException.XMPPErrorException}. If there is no response after the
|
||||
* connections default reply timeout, then <code>exceptionCallback</code> will be invoked with a
|
||||
* {@link SmackException.NoResponseException}.
|
||||
*
|
||||
*
|
||||
* @param iqRequest the IQ stanza to send (required)
|
||||
* @param callback the callback invoked if there is result response (required)
|
||||
* @param exceptionCallback the callback invoked if there is an Exception optional
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @deprecated use {@link #sendIqRequestAsync(IQ)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
|
|
@ -642,13 +642,13 @@ public interface XMPPConnection {
|
|||
* error as {@link XMPPException.XMPPErrorException}. If there is no response after
|
||||
* <code>timeout</code>, then <code>exceptionCallback</code> will be invoked with a
|
||||
* {@link SmackException.NoResponseException}.
|
||||
*
|
||||
*
|
||||
* @param iqRequest the IQ stanza to send (required)
|
||||
* @param callback the callback invoked if there is result response (required)
|
||||
* @param exceptionCallback the callback invoked if there is an Exception optional
|
||||
* @param timeout the timeout in milliseconds to wait for a response
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws InterruptedException
|
||||
* @deprecated use {@link #sendIqRequestAsync(IQ, long)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
|
|
@ -660,7 +660,7 @@ public interface XMPPConnection {
|
|||
/**
|
||||
* Add a callback that is called exactly once and synchronously with the incoming stanza that matches the given
|
||||
* stanza filter.
|
||||
*
|
||||
*
|
||||
* @param callback the callback invoked once the stanza filter matches a stanza.
|
||||
* @param stanzaFilter the filter to match stanzas or null to match all.
|
||||
*/
|
||||
|
|
@ -686,7 +686,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Unregister an IQ request handler with this connection.
|
||||
*
|
||||
*
|
||||
* @param element the IQ element the IQ request handler is responsible for.
|
||||
* @param namespace the IQ namespace the IQ request handler is responsible for.
|
||||
* @param type the IQ type the IQ request handler is responsible for.
|
||||
|
|
@ -696,7 +696,7 @@ public interface XMPPConnection {
|
|||
|
||||
/**
|
||||
* Returns the timestamp in milliseconds when the last stanza was received.
|
||||
*
|
||||
*
|
||||
* @return the timestamp in milliseconds
|
||||
*/
|
||||
long getLastStanzaReceived();
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ public class XMPPConnectionRegistry {
|
|||
/**
|
||||
* Adds a new listener that will be notified when new Connections 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(
|
||||
|
|
@ -42,7 +42,7 @@ public class XMPPConnectionRegistry {
|
|||
|
||||
/**
|
||||
* Removes a listener that was interested in connection creation events.
|
||||
*
|
||||
*
|
||||
* @param connectionCreationListener a listener interested on new connections.
|
||||
*/
|
||||
public static void removeConnectionCreationListener(
|
||||
|
|
@ -54,7 +54,7 @@ public class XMPPConnectionRegistry {
|
|||
|
||||
/**
|
||||
* Get the collection of listeners that are interested in connection creation events.
|
||||
*
|
||||
*
|
||||
* @return a collection of listeners interested on new connections.
|
||||
*/
|
||||
protected static Collection<ConnectionCreationListener> getConnectionCreationListeners() {
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public abstract class XMPPException extends Exception {
|
|||
|
||||
public static class XMPPErrorException extends XMPPException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 212790389529249604L;
|
||||
private final StanzaError error;
|
||||
|
|
@ -121,7 +121,7 @@ public abstract class XMPPException extends Exception {
|
|||
/**
|
||||
* Returns the XMPPError associated with this exception, or <tt>null</tt> if there isn't
|
||||
* one.
|
||||
*
|
||||
*
|
||||
* @return the XMPPError associated with this exception.
|
||||
*/
|
||||
public StanzaError getXMPPError() {
|
||||
|
|
@ -174,7 +174,7 @@ public abstract class XMPPException extends Exception {
|
|||
public static class FailedNonzaException extends XMPPException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ public abstract class XMPPException extends Exception {
|
|||
|
||||
public static class StreamErrorException extends XMPPException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 3400556867134848886L;
|
||||
private final StreamError streamError;
|
||||
|
|
@ -207,7 +207,7 @@ public abstract class XMPPException extends Exception {
|
|||
* Creates a new XMPPException with the stream error that was the root case of the
|
||||
* exception. When a stream error is received from the server then the underlying connection
|
||||
* will be closed by the server.
|
||||
*
|
||||
*
|
||||
* @param streamError the root cause of the exception.
|
||||
*/
|
||||
public StreamErrorException(StreamError streamError) {
|
||||
|
|
@ -220,7 +220,7 @@ public abstract class XMPPException extends Exception {
|
|||
/**
|
||||
* Returns the StreamError associated with this exception. The underlying TCP connection is
|
||||
* closed by the server after sending the stream error to the client.
|
||||
*
|
||||
*
|
||||
* @return the StreamError associated with this exception.
|
||||
*/
|
||||
public StreamError getStreamError() {
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ import java.util.zip.InflaterInputStream;
|
|||
* <li><a href="http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#deflate(byte[],%20int,%20int,%20int)">The required deflate() method (Java7)</a>
|
||||
* <li><a href="http://developer.android.com/reference/java/util/zip/Deflater.html#deflate(byte[],%20int,%20int,%20int)">The required deflate() method (Android)</a>
|
||||
* </ul>
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*/
|
||||
public class Java7ZlibInputOutputStream extends XMPPInputOutputStream {
|
||||
|
|
@ -74,7 +74,7 @@ public class Java7ZlibInputOutputStream extends XMPPInputOutputStream {
|
|||
/**
|
||||
* Provide a more InputStream compatible version. A return value of 1 means that it is likely to read one
|
||||
* byte without blocking, 0 means that the system is known to block for more input.
|
||||
*
|
||||
*
|
||||
* @return 0 if no data is available, 1 otherwise
|
||||
* @throws IOException
|
||||
*/
|
||||
|
|
@ -84,10 +84,10 @@ public class Java7ZlibInputOutputStream extends XMPPInputOutputStream {
|
|||
* aSmack related remark (where KXmlParser is used):
|
||||
* This is one of the funny code blocks. InflaterInputStream.available violates the contract of
|
||||
* InputStream.available, which breaks kXML2.
|
||||
*
|
||||
*
|
||||
* I'm not sure who's to blame, oracle/sun for a broken api or the google guys for mixing a sun bug with
|
||||
* a xml reader that can't handle it....
|
||||
*
|
||||
*
|
||||
* Anyway, this simple if breaks suns distorted reality, but helps to use the api as intended.
|
||||
*/
|
||||
if (inf.needsInput()) {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ public abstract class XMPPInputOutputStream {
|
|||
* Set the used flushed method when compressing data. The default is full flush which may not
|
||||
* achieve the best compression ratio, but provides better security against certain attacks.
|
||||
* Only use sync flush if you fully understand the implications.
|
||||
*
|
||||
*
|
||||
* @see <a href="https://blog.thijsalkema.de/blog/2014/08/07/https-attacks-and-xmpp-2-crime-and-breach/">Attacks against XMPP when using compression</a>
|
||||
* @param flushMethod
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -26,12 +26,12 @@ import org.jivesoftware.smack.packet.TopLevelStreamElement;
|
|||
import org.jxmpp.jid.EntityFullJid;
|
||||
|
||||
/**
|
||||
* Interface that allows for implementing classes to debug XML traffic. That is a GUI window that
|
||||
* Interface that allows for implementing classes to debug XML traffic. That is a GUI window that
|
||||
* displays XML traffic.<p>
|
||||
*
|
||||
* Every implementation of this interface <b>must</b> have a public constructor with the following
|
||||
*
|
||||
* Every implementation of this interface <b>must</b> have a public constructor with the following
|
||||
* arguments: XMPPConnection, Writer, Reader.
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public abstract class SmackDebugger {
|
||||
|
|
@ -43,10 +43,10 @@ public abstract class SmackDebugger {
|
|||
}
|
||||
|
||||
/**
|
||||
* Called when a user has logged in to the server. The user could be an anonymous user, this
|
||||
* means that the user would be of the form host/resource instead of the form
|
||||
* Called when a user has logged in to the server. The user could be an anonymous user, this
|
||||
* means that the user would be of the form host/resource instead of the form
|
||||
* user@host/resource.
|
||||
*
|
||||
*
|
||||
* @param user the user@host/resource that has just logged in
|
||||
*/
|
||||
// TODO: Should be replaced with a connection listener authenticed().
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ import org.jivesoftware.smack.util.Objects;
|
|||
/**
|
||||
* A filter for IQ stanza types. Returns true only if the stanza is an IQ packet
|
||||
* and it matches the type provided in the constructor.
|
||||
*
|
||||
*
|
||||
* @author Alexander Wenckus
|
||||
*
|
||||
*
|
||||
*/
|
||||
public final class IQTypeFilter extends FlexibleStanzaTypeFilter<IQ> {
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ import org.jivesoftware.smack.packet.Message.Type;
|
|||
|
||||
/**
|
||||
* Filters for packets of a specific type of Message (e.g. CHAT).
|
||||
*
|
||||
*
|
||||
* @see org.jivesoftware.smack.packet.Message.Type
|
||||
* @author Ward Harold
|
||||
*/
|
||||
|
|
@ -42,7 +42,7 @@ public final class MessageTypeFilter extends FlexibleStanzaTypeFilter<Message> {
|
|||
|
||||
/**
|
||||
* Creates a new message type filter using the specified message type.
|
||||
*
|
||||
*
|
||||
* @param type the message type.
|
||||
*/
|
||||
private MessageTypeFilter(Message.Type type) {
|
||||
|
|
|
|||
|
|
@ -22,10 +22,10 @@ import org.jivesoftware.smack.SmackConfiguration;
|
|||
|
||||
/**
|
||||
* Defines an initialization class that will be instantiated and invoked by the {@link SmackConfiguration} class during initialization.
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* Any implementation of this class MUST have a default constructor.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ import org.jivesoftware.smack.util.FileUtils;
|
|||
/**
|
||||
* Loads the provider file defined by the URL returned by {@link #getProvidersUri()} and the generic
|
||||
* smack configuration file returned {@link #getConfigUri()}.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*/
|
||||
public abstract class UrlInitializer implements SmackInitializer {
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ import org.jivesoftware.smack.provider.ProviderManager;
|
|||
|
||||
|
||||
/**
|
||||
* Looks for a provider file location based on the VM argument <i>smack.provider.file</i>. If it is supplied, its value will
|
||||
* Looks for a provider file location based on the VM argument <i>smack.provider.file</i>. If it is supplied, its value will
|
||||
* be used as a file location for a providers file and loaded into the {@link ProviderManager} on Smack initialization.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ public class AbstractError {
|
|||
* <p>
|
||||
* Returns the descriptive text of this SASLFailure in the system default language if possible. May return null.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @return the descriptive text or null.
|
||||
*/
|
||||
public String getDescriptiveText() {
|
||||
|
|
@ -81,7 +81,7 @@ public class AbstractError {
|
|||
* <p>
|
||||
* Returns the descriptive text of this SASLFailure in the given language. May return null if not available.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param xmllang the language.
|
||||
* @return the descriptive text or null.
|
||||
*/
|
||||
|
|
@ -92,7 +92,7 @@ public class AbstractError {
|
|||
|
||||
/**
|
||||
* Returns the first stanza extension that matches the specified element name and
|
||||
* namespace, or <tt>null</tt> if it doesn't exist.
|
||||
* namespace, or <tt>null</tt> if it doesn't exist.
|
||||
*
|
||||
* @param elementName the XML element name of the stanza extension.
|
||||
* @param namespace the XML element namespace of the stanza extension.
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import org.jxmpp.jid.parts.Resourcepart;
|
|||
* resource but the server may return a modified version of the sent resource.<p>
|
||||
*
|
||||
* For more information refer to the following
|
||||
* <a href=http://www.xmpp.org/specs/rfc3920.html#bind>link</a>.
|
||||
* <a href=http://www.xmpp.org/specs/rfc3920.html#bind>link</a>.
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ public abstract class IQ extends Stanza {
|
|||
* </pre>
|
||||
* If your IQ does not contain any attributes or child elements (besides {@link ExtensionElement}s), consider sub-classing
|
||||
* {@link SimpleIQ} instead.
|
||||
*
|
||||
*
|
||||
* @param xml a pre-created builder which already has the child element and the 'xmlns' attribute set.
|
||||
* @return the build to create the IQ child content.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ public final class Message extends Stanza implements TypedCloneable<Message> {
|
|||
*/
|
||||
public void setSubject(String subject) {
|
||||
if (subject == null) {
|
||||
removeSubject(""); // use empty string because #removeSubject(null) is ambiguous
|
||||
removeSubject(""); // use empty string because #removeSubject(null) is ambiguous
|
||||
return;
|
||||
}
|
||||
addSubject(null, subject);
|
||||
|
|
@ -751,7 +751,7 @@ public final class Message extends Stanza implements TypedCloneable<Message> {
|
|||
/**
|
||||
* Converts a String into the corresponding types. Valid String values that can be converted
|
||||
* to types are: "normal", "chat", "groupchat", "headline" and "error".
|
||||
*
|
||||
*
|
||||
* @param string the String value to covert.
|
||||
* @return the corresponding Type.
|
||||
* @throws IllegalArgumentException when not able to parse the string parameter
|
||||
|
|
|
|||
|
|
@ -162,9 +162,9 @@ public interface Packet extends TopLevelStreamElement {
|
|||
* Returns the first stanza extension that matches the specified element name and
|
||||
* namespace, or <tt>null</tt> if it doesn't exist. If the provided elementName is null,
|
||||
* only the namespace is matched. Stanza extensions are
|
||||
* are arbitrary XML sub-documents in standard XMPP packets. By default, a
|
||||
* DefaultPacketExtension instance will be returned for each extension. However,
|
||||
* PacketExtensionProvider instances can be registered with the
|
||||
* are arbitrary XML sub-documents in standard XMPP packets. By default, a
|
||||
* DefaultPacketExtension instance will be returned for each extension. However,
|
||||
* PacketExtensionProvider instances can be registered with the
|
||||
* {@link org.jivesoftware.smack.provider.ProviderManager ProviderManager}
|
||||
* class to handle custom parsing. In that case, the type of the Object
|
||||
* will be determined by the provider.
|
||||
|
|
@ -184,7 +184,7 @@ public interface Packet extends TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Adds a collection of stanza extensions to the packet. Does nothing if extensions is null.
|
||||
*
|
||||
*
|
||||
* @param extensions a collection of stanza extensions
|
||||
*/
|
||||
void addExtensions(Collection<ExtensionElement> extensions);
|
||||
|
|
@ -203,7 +203,7 @@ public interface Packet extends TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Check if a stanza extension with the given namespace exists.
|
||||
*
|
||||
*
|
||||
* @param namespace
|
||||
* @return true if a stanza extension exists, false otherwise.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -146,7 +146,7 @@ public final class Presence extends Stanza implements TypedCloneable<Presence> {
|
|||
* @return true if the presence type is available.
|
||||
*/
|
||||
public boolean isAvailable() {
|
||||
return type == Type.available;
|
||||
return type == Type.available;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -160,7 +160,7 @@ public final class Presence extends Stanza implements TypedCloneable<Presence> {
|
|||
* @return true if the presence type is available and the presence mode is away, xa, or dnd.
|
||||
*/
|
||||
public boolean isAway() {
|
||||
return type == Type.available && (mode == Mode.away || mode == Mode.xa || mode == Mode.dnd);
|
||||
return type == Type.available && (mode == Mode.away || mode == Mode.xa || mode == Mode.dnd);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -378,7 +378,7 @@ public final class Presence extends Stanza implements TypedCloneable<Presence> {
|
|||
* Converts a String into the corresponding types. Valid String values that can be converted
|
||||
* to types are: "available", "unavailable", "subscribe", "subscribed", "unsubscribe",
|
||||
* "unsubscribed" and "error".
|
||||
*
|
||||
*
|
||||
* @param string the String value to covert.
|
||||
* @return the corresponding Type.
|
||||
* @throws IllegalArgumentException when not able to parse the string parameter
|
||||
|
|
@ -422,7 +422,7 @@ public final class Presence extends Stanza implements TypedCloneable<Presence> {
|
|||
/**
|
||||
* Converts a String into the corresponding types. Valid String values that can be converted
|
||||
* to types are: "chat", "available", "away", "xa", and "dnd".
|
||||
*
|
||||
*
|
||||
* @param string the String value to covert.
|
||||
* @return the corresponding Type.
|
||||
* @throws IllegalArgumentException when not able to parse the string parameter
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ public abstract class Stanza implements TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Set the stanza id if none is set.
|
||||
*
|
||||
*
|
||||
* @return the stanza id.
|
||||
* @since 4.2
|
||||
*/
|
||||
|
|
@ -402,7 +402,7 @@ public abstract class Stanza implements TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Adds a collection of stanza extensions to the packet. Does nothing if extensions is null.
|
||||
*
|
||||
*
|
||||
* @param extensions a collection of stanza extensions
|
||||
*/
|
||||
public void addExtensions(Collection<ExtensionElement> extensions) {
|
||||
|
|
@ -434,7 +434,7 @@ public abstract class Stanza implements TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Check if a stanza extension with the given namespace exists.
|
||||
*
|
||||
*
|
||||
* @param namespace
|
||||
* @return true if a stanza extension exists, false otherwise.
|
||||
*/
|
||||
|
|
@ -489,7 +489,7 @@ public abstract class Stanza implements TopLevelStreamElement {
|
|||
|
||||
/**
|
||||
* Returns the default language used for all messages containing localized content.
|
||||
*
|
||||
*
|
||||
* @return the default language
|
||||
*/
|
||||
public static String getDefaultLanguage() {
|
||||
|
|
|
|||
|
|
@ -104,14 +104,14 @@ public class StanzaError extends AbstractError {
|
|||
/**
|
||||
* Creates a new error with the specified type, condition and message.
|
||||
* This constructor is used when the condition is not recognized automatically by XMPPError
|
||||
* i.e. there is not a defined instance of ErrorCondition or it does not apply the default
|
||||
* i.e. there is not a defined instance of ErrorCondition or it does not apply the default
|
||||
* specification.
|
||||
*
|
||||
*
|
||||
* @param type the error type.
|
||||
* @param condition the error condition.
|
||||
* @param conditionText
|
||||
* @param errorGenerator
|
||||
* @param descriptiveTexts
|
||||
* @param descriptiveTexts
|
||||
* @param extensions list of stanza extensions
|
||||
* @param stanza the stanza carrying this XMPP error.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -24,9 +24,9 @@ import org.jivesoftware.smack.UnparseableStanza;
|
|||
|
||||
/**
|
||||
* Simple parsing exception callback that only logs the encountered parsing exception to java util logging.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class ExceptionLoggingCallback implements ParsingExceptionCallback {
|
||||
private static final Logger LOGGER = Logger.getLogger(ExceptionLoggingCallback.class.getName());
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ import org.jivesoftware.smack.UnparseableStanza;
|
|||
/**
|
||||
* Parsing exception callback class that simply throws the encountered parsing exception. This usually leads to an
|
||||
* {@link ConnectionListener#connectionClosedOnError(Exception)} and disconnect of the connection.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class ExceptionThrowingCallback implements ParsingExceptionCallback {
|
||||
|
||||
|
|
|
|||
|
|
@ -27,15 +27,15 @@ import org.jivesoftware.smack.UnparseableStanza;
|
|||
* <p>
|
||||
* Smack provides 2 predefined ParsingExceptionCallback's: {@link ExceptionLoggingCallback} and {@link ExceptionThrowingCallback}.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*
|
||||
*
|
||||
*/
|
||||
public interface ParsingExceptionCallback {
|
||||
|
||||
/**
|
||||
* Called when parsing a stanza caused an exception.
|
||||
*
|
||||
*
|
||||
* @param stanzaData the raw stanza data that caused the exception
|
||||
* @throws Exception
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -27,20 +27,20 @@ import org.jivesoftware.smack.util.PacketParserUtils;
|
|||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
||||
/**
|
||||
*
|
||||
* This class simplifies parsing of embedded elements by using the
|
||||
* <a href="http://en.wikipedia.org/wiki/Template_method_pattern">Template Method Pattern</a>.
|
||||
* After extracting the current element attributes and content of any child elements, the template method
|
||||
*
|
||||
* This class simplifies parsing of embedded elements by using the
|
||||
* <a href="http://en.wikipedia.org/wiki/Template_method_pattern">Template Method Pattern</a>.
|
||||
* After extracting the current element attributes and content of any child elements, the template method
|
||||
* ({@link #createReturnExtension(String, String, Map, List)} is called. Subclasses
|
||||
* then override this method to create the specific return type.
|
||||
*
|
||||
* <p>To use this class, you simply register your subclasses as extension providers in the
|
||||
*
|
||||
* <p>To use this class, you simply register your subclasses as extension providers in the
|
||||
* <b>smack.properties</b> file. Then they will be automatically picked up and used to parse
|
||||
* any child elements.
|
||||
*
|
||||
* any child elements.
|
||||
*
|
||||
* <pre>
|
||||
* For example, given the following message
|
||||
*
|
||||
*
|
||||
* <message from='pubsub.shakespeare.lit' to='francisco@denmark.lit' id='foo>
|
||||
* <event xmlns='http://jabber.org/protocol/pubsub#event>
|
||||
* <items node='princely_musings'>
|
||||
|
|
@ -54,16 +54,16 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
* </items>
|
||||
* </event>
|
||||
* </message>
|
||||
*
|
||||
*
|
||||
* I would have a classes
|
||||
* <tt>ItemsProvider</tt> extends {@link EmbeddedExtensionProvider}
|
||||
* <tt>ItemProvider</tt> extends {@link EmbeddedExtensionProvider}
|
||||
* and
|
||||
* AtomProvider extends {@link ExtensionElementProvider}
|
||||
*
|
||||
*
|
||||
* These classes are then registered in the meta-inf/smack.providers file
|
||||
* as follows.
|
||||
*
|
||||
*
|
||||
* <extensionProvider>
|
||||
* <elementName>items</elementName>
|
||||
* <namespace>http://jabber.org/protocol/pubsub#event</namespace>
|
||||
|
|
@ -74,9 +74,9 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
* <namespace>http://jabber.org/protocol/pubsub#event</namespace>
|
||||
* <className>org.jivesoftware.smackx.provider.ItemProvider</className>
|
||||
* </extensionProvider>
|
||||
*
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*/
|
||||
public abstract class EmbeddedExtensionProvider<PE extends ExtensionElement> extends ExtensionElementProvider<PE> {
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import org.jivesoftware.smack.packet.ExtensionElement;
|
|||
/**
|
||||
* Defines the information required to register a stanza extension Provider with the {@link ProviderManager} when using the
|
||||
* {@link ProviderLoader}.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*
|
||||
*/
|
||||
|
|
@ -29,7 +29,7 @@ public final class ExtensionProviderInfo extends AbstractProviderInfo {
|
|||
|
||||
/**
|
||||
* Defines an extension provider which implements the <code>ExtensionElementProvider</code> interface.
|
||||
*
|
||||
*
|
||||
* @param elementName Element that provider parses.
|
||||
* @param namespace Namespace that provider parses.
|
||||
* @param extProvider The provider implementation.
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ import org.jivesoftware.smack.packet.IQ;
|
|||
/**
|
||||
* Defines the information required to register an IQ Provider with the {@link ProviderManager} when using the
|
||||
* {@link ProviderLoader}.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*
|
||||
*/
|
||||
|
|
@ -29,7 +29,7 @@ public final class IQProviderInfo extends AbstractProviderInfo {
|
|||
|
||||
/**
|
||||
* Defines an IQ provider which implements the <code>IQProvider</code> interface.
|
||||
*
|
||||
*
|
||||
* @param elementName Element that provider parses.
|
||||
* @param namespace Namespace that provider parses.
|
||||
* @param iqProvider The provider implementation.
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
* element does not follow the specification, for example by putting a string where only integers are allowed, then a
|
||||
* {@link org.jivesoftware.smack.SmackException} should be thrown.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
* @param <E> the type of the resulting element.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -31,9 +31,9 @@ import org.xmlpull.v1.XmlPullParser;
|
|||
import org.xmlpull.v1.XmlPullParserFactory;
|
||||
|
||||
/**
|
||||
* Loads the {@link IQProvider} and {@link ExtensionElementProvider} information from a standard provider file in preparation
|
||||
* Loads the {@link IQProvider} and {@link ExtensionElementProvider} information from a standard provider file in preparation
|
||||
* for loading into the {@link ProviderManager}.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import java.util.Collection;
|
|||
|
||||
/**
|
||||
* Used to load providers into the {@link ProviderManager}.
|
||||
*
|
||||
*
|
||||
* @author Robin Collier
|
||||
*/
|
||||
public interface ProviderLoader {
|
||||
|
|
@ -40,7 +40,7 @@ public interface ProviderLoader {
|
|||
/**
|
||||
* Provides the stream feature providers information for the creation of stream feature
|
||||
* providers to be added to the <code>ProviderManager</code>.
|
||||
*
|
||||
*
|
||||
* @return The extension provider info to load.
|
||||
*/
|
||||
Collection<StreamFeatureProviderInfo> getStreamFeatureProviderInfo();
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ public final class StreamFeatureProviderInfo extends AbstractProviderInfo {
|
|||
|
||||
/**
|
||||
* Defines an extension provider which implements the <code>StreamFeatureProvider</code> interface.
|
||||
*
|
||||
*
|
||||
* @param elementName Element that provider parses.
|
||||
* @param namespace Namespace that provider parses.
|
||||
* @param extProvider The provider implementation.
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ import org.jivesoftware.smack.util.stringencoder.Base64;
|
|||
|
||||
/**
|
||||
* HTTP Proxy Socket Connection which connects the socket using a HTTP Proxy.
|
||||
*
|
||||
*
|
||||
* @author Atul Aggarwal
|
||||
*/
|
||||
class HTTPProxySocketConnection implements ProxySocketConnection {
|
||||
|
|
@ -92,7 +92,7 @@ class HTTPProxySocketConnection implements ProxySocketConnection {
|
|||
|
||||
if (nlchars != 4) {
|
||||
throw new ProxyException(ProxyInfo.ProxyType.HTTP, "Never " +
|
||||
"received blank line from "
|
||||
"received blank line from "
|
||||
+ proxyhost + ", cancelling connection");
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,12 +20,12 @@ import java.io.IOException;
|
|||
|
||||
/**
|
||||
* An exception class to handle exceptions caused by proxy.
|
||||
*
|
||||
*
|
||||
* @author Atul Aggarwal
|
||||
*/
|
||||
public class ProxyException extends IOException {
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@
|
|||
package org.jivesoftware.smack.proxy;
|
||||
|
||||
/**
|
||||
* Class which stores proxy information such as proxy type, host, port,
|
||||
* Class which stores proxy information such as proxy type, host, port,
|
||||
* authentication etc.
|
||||
*
|
||||
*
|
||||
* @author Atul Aggarwal
|
||||
*/
|
||||
|
||||
|
|
@ -37,7 +37,7 @@ public class ProxyInfo {
|
|||
private ProxyType proxyType;
|
||||
private final ProxySocketConnection proxySocketConnection;
|
||||
|
||||
public ProxyInfo(ProxyType pType, String pHost, int pPort, String pUser,
|
||||
public ProxyInfo(ProxyType pType, String pHost, int pPort, String pUser,
|
||||
String pPass) {
|
||||
this.proxyType = pType;
|
||||
this.proxyAddress = pHost;
|
||||
|
|
@ -59,17 +59,17 @@ public class ProxyInfo {
|
|||
}
|
||||
}
|
||||
|
||||
public static ProxyInfo forHttpProxy(String pHost, int pPort, String pUser,
|
||||
public static ProxyInfo forHttpProxy(String pHost, int pPort, String pUser,
|
||||
String pPass) {
|
||||
return new ProxyInfo(ProxyType.HTTP, pHost, pPort, pUser, pPass);
|
||||
}
|
||||
|
||||
public static ProxyInfo forSocks4Proxy(String pHost, int pPort, String pUser,
|
||||
public static ProxyInfo forSocks4Proxy(String pHost, int pPort, String pUser,
|
||||
String pPass) {
|
||||
return new ProxyInfo(ProxyType.SOCKS4, pHost, pPort, pUser, pPass);
|
||||
}
|
||||
|
||||
public static ProxyInfo forSocks5Proxy(String pHost, int pPort, String pUser,
|
||||
public static ProxyInfo forSocks5Proxy(String pHost, int pPort, String pUser,
|
||||
String pPass) {
|
||||
return new ProxyInfo(ProxyType.SOCKS5, pHost, pPort, pUser, pPass);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ import org.jivesoftware.smack.util.StringUtils;
|
|||
|
||||
/**
|
||||
* Socket factory for socks4 proxy.
|
||||
*
|
||||
*
|
||||
* @author Atul Aggarwal
|
||||
*/
|
||||
public class Socks4ProxySocketConnection implements ProxySocketConnection {
|
||||
|
|
@ -101,7 +101,7 @@ public class Socks4ProxySocketConnection implements ProxySocketConnection {
|
|||
consulting IDENT, cf. RFC 1413. If the request is granted, the SOCKS
|
||||
server makes a connection to the specified port of the destination host.
|
||||
A reply packet is sent to the client when this connection is established,
|
||||
or when the request is rejected or the operation fails.
|
||||
or when the request is rejected or the operation fails.
|
||||
|
||||
+----+----+----+----+----+----+----+----+
|
||||
| VN | CD | DSTPORT | DSTIP |
|
||||
|
|
@ -126,13 +126,13 @@ public class Socks4ProxySocketConnection implements ProxySocketConnection {
|
|||
while (s < len) {
|
||||
int i = in.read(buf, s, len - s);
|
||||
if (i <= 0) {
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS4,
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS4,
|
||||
"stream is closed");
|
||||
}
|
||||
s += i;
|
||||
}
|
||||
if (buf[0] != 0) {
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS4,
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS4,
|
||||
"server returns VN " + buf[0]);
|
||||
}
|
||||
if (buf[1] != 90) {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import org.jivesoftware.smack.util.StringUtils;
|
|||
|
||||
/**
|
||||
* Socket factory for Socks5 proxy.
|
||||
*
|
||||
*
|
||||
* @author Atul Aggarwal
|
||||
*/
|
||||
public class Socks5ProxySocketConnection implements ProxySocketConnection {
|
||||
|
|
@ -130,12 +130,12 @@ public class Socks5ProxySocketConnection implements ProxySocketConnection {
|
|||
buf[index++] = 1;
|
||||
buf[index++] = (byte) (user.length());
|
||||
byte[] userBytes = user.getBytes(StringUtils.UTF8);
|
||||
System.arraycopy(userBytes, 0, buf, index,
|
||||
System.arraycopy(userBytes, 0, buf, index,
|
||||
user.length());
|
||||
index += user.length();
|
||||
byte[] passwordBytes = passwd.getBytes(StringUtils.UTF8);
|
||||
buf[index++] = (byte) (passwordBytes.length);
|
||||
System.arraycopy(passwordBytes, 0, buf, index,
|
||||
System.arraycopy(passwordBytes, 0, buf, index,
|
||||
passwd.length());
|
||||
index += passwd.length();
|
||||
|
||||
|
|
@ -258,7 +258,7 @@ public class Socks5ProxySocketConnection implements ProxySocketConnection {
|
|||
}
|
||||
catch (Exception eee) {
|
||||
}
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS5,
|
||||
throw new ProxyException(ProxyInfo.ProxyType.SOCKS5,
|
||||
"server returns " + buf[1]);
|
||||
}
|
||||
|
||||
|
|
@ -290,7 +290,7 @@ public class Socks5ProxySocketConnection implements ProxySocketConnection {
|
|||
}
|
||||
}
|
||||
|
||||
private static void fill(InputStream in, byte[] buf, int len)
|
||||
private static void fill(InputStream in, byte[] buf, int len)
|
||||
throws IOException {
|
||||
int s = 0;
|
||||
while (s < len) {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import org.jivesoftware.smack.sasl.packet.SaslStreamElements.SASLFailure;
|
|||
public class SASLErrorException extends XMPPException {
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 6247573875760717257L;
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
* <p>
|
||||
* A simple SASLPrep StringTransformer would be for example: <code>java.text.Normalizer.normalize(string, Form.NFKC);</code>
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param stringTransformer set StringTransformer to use for SASLPrep.
|
||||
* @see <a href="http://tools.ietf.org/html/rfc4013">RFC 4013 - SASLprep: Stringprep Profile for User Names and Passwords</a>
|
||||
*/
|
||||
|
|
@ -111,28 +111,28 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
* Builds and sends the <tt>auth</tt> stanza to the server. Note that this method of
|
||||
* authentication is not recommended, since it is very inflexible. Use
|
||||
* {@link #authenticate(String, DomainBareJid, CallbackHandler, EntityBareJid, SSLSession)} whenever possible.
|
||||
*
|
||||
*
|
||||
* Explanation of auth stanza:
|
||||
*
|
||||
* The client authentication stanza needs to include the digest-uri of the form: xmpp/serviceName
|
||||
* From RFC-2831:
|
||||
*
|
||||
* The client authentication stanza needs to include the digest-uri of the form: xmpp/serviceName
|
||||
* From RFC-2831:
|
||||
* digest-uri = "digest-uri" "=" digest-uri-value
|
||||
* digest-uri-value = serv-type "/" host [ "/" serv-name ]
|
||||
*
|
||||
* digest-uri:
|
||||
* Indicates the principal name of the service with which the client
|
||||
* wishes to connect, formed from the serv-type, host, and serv-name.
|
||||
*
|
||||
* digest-uri:
|
||||
* Indicates the principal name of the service with which the client
|
||||
* wishes to connect, formed from the serv-type, host, and serv-name.
|
||||
* For example, the FTP service
|
||||
* on "ftp.example.com" would have a "digest-uri" value of "ftp/ftp.example.com"; the SMTP
|
||||
* server from the example above would have a "digest-uri" value of
|
||||
* "smtp/mail3.example.com/example.com".
|
||||
*
|
||||
*
|
||||
* host:
|
||||
* The DNS host name or IP address for the service requested. The DNS host name
|
||||
* must be the fully-qualified canonical name of the host. The DNS host name is the
|
||||
* preferred form; see notes on server processing of the digest-uri.
|
||||
*
|
||||
* serv-name:
|
||||
*
|
||||
* serv-name:
|
||||
* Indicates the name of the service if it is replicated. The service is
|
||||
* considered to be replicated if the client's service-location process involves resolution
|
||||
* using standard DNS lookup operations, and if these operations involve DNS records (such
|
||||
|
|
@ -154,8 +154,8 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
* @param authzid the optional authorization identity.
|
||||
* @param sslSession the optional SSL/TLS session (if one was established)
|
||||
* @throws SmackException If a network error occurs while authenticating.
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public final void authenticate(String username, String host, DomainBareJid serviceName, String password,
|
||||
EntityBareJid authzid, SSLSession sslSession)
|
||||
|
|
@ -187,8 +187,8 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
* @param authzid the optional authorization identity.
|
||||
* @param sslSession the optional SSL/TLS session (if one was established)
|
||||
* @throws SmackException
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
* @throws NotConnectedException
|
||||
* @throws InterruptedException
|
||||
*/
|
||||
public void authenticate(String host, DomainBareJid serviceName, CallbackHandler cbh, EntityBareJid authzid, SSLSession sslSession)
|
||||
throws SmackException, NotConnectedException, InterruptedException {
|
||||
|
|
@ -225,7 +225,7 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
* Should return the initial response of the SASL mechanism. The returned byte array will be
|
||||
* send base64 encoded to the server. SASL mechanism are free to return <code>null</code> or an
|
||||
* empty array here.
|
||||
*
|
||||
*
|
||||
* @return the initial response or null
|
||||
* @throws SmackException
|
||||
*/
|
||||
|
|
@ -313,7 +313,7 @@ public abstract class SASLMechanism implements Comparable<SASLMechanism> {
|
|||
|
||||
/**
|
||||
* SASLprep the given String. The resulting String is in UTF-8.
|
||||
*
|
||||
*
|
||||
* @param string the String to sasl prep.
|
||||
* @return the given String SASL preped
|
||||
* @see <a href="http://tools.ietf.org/html/rfc4013">RFC 4013 - SASLprep: Stringprep Profile for User Names and Passwords</a>
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import org.jivesoftware.smack.sasl.SASLMechanism;
|
|||
* Note that X-OAUTH2 is experimental in Smack. This is because Google defined, besides being a bad practice (XEP-134),
|
||||
* custom attributes to the 'auth' stanza, as can be seen here
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* {@code
|
||||
* <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="X-OAUTH2"
|
||||
|
|
@ -40,9 +40,9 @@ import org.jivesoftware.smack.sasl.SASLMechanism;
|
|||
* auth:client-uses-full-bind-result="true" xmlns:auth="http://www.google.com/talk/protocol/auth">
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* from https://developers.google.com/cloud-print/docs/rawxmpp and here
|
||||
*
|
||||
*
|
||||
* <pre>
|
||||
* {@code
|
||||
* <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
|
||||
|
|
@ -53,7 +53,7 @@ import org.jivesoftware.smack.sasl.SASLMechanism;
|
|||
* </auth>
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* from https://developers.google.com/talk/jep_extensions/oauth
|
||||
* <p>
|
||||
* Those attribute extensions are currently not supported by Smack, and it's unclear how it affects authorization and
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public interface ScramHmac {
|
|||
|
||||
/**
|
||||
* RFC 5802 § 2.2 HMAC(key, str).
|
||||
*
|
||||
*
|
||||
* @param key
|
||||
* @param str
|
||||
* @return the HMAC-SHA1 value of the input.
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ public abstract class ScramMechanism extends SASLMechanism {
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @return the Channel Binding data.
|
||||
* @throws SmackException
|
||||
*/
|
||||
|
|
@ -356,11 +356,11 @@ public abstract class ScramMechanism extends SASLMechanism {
|
|||
|
||||
/**
|
||||
* RFC 5802 § 2.2 HMAC(key, str)
|
||||
*
|
||||
*
|
||||
* @param key
|
||||
* @param str
|
||||
* @return the HMAC-SHA1 value of the input.
|
||||
* @throws SmackException
|
||||
* @throws SmackException
|
||||
*/
|
||||
private byte[] hmac(byte[] key, byte[] str) throws SmackException {
|
||||
try {
|
||||
|
|
@ -377,12 +377,12 @@ public abstract class ScramMechanism extends SASLMechanism {
|
|||
* Hi() is, essentially, PBKDF2 [RFC2898] with HMAC() as the pseudorandom function
|
||||
* (PRF) and with dkLen == output length of HMAC() == output length of H().
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param normalizedPassword the normalized password.
|
||||
* @param salt
|
||||
* @param iterations
|
||||
* @return the result of the Hi function.
|
||||
* @throws SmackException
|
||||
* @throws SmackException
|
||||
*/
|
||||
private byte[] hi(String normalizedPassword, byte[] salt, int iterations) throws SmackException {
|
||||
byte[] key;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ import org.jivesoftware.smack.util.TLSUtils;
|
|||
* SCRAM-X-PLUS implementation. Due limitations of the Java API, this mechanism only supports the 'tls-server-end-point'
|
||||
* channel binding type. But on the other hand, the other relevant channel binding type 'tls-unique' has some flaws (see
|
||||
* 3SHAKE, RFC 7627).
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
*/
|
||||
public abstract class ScramPlusMechanism extends ScramMechanism {
|
||||
|
|
|
|||
|
|
@ -154,7 +154,7 @@ public class SaslStreamElements {
|
|||
/**
|
||||
* Construct a new SASL success stream element with optional additional data for the SASL layer.
|
||||
* (RFC6120 6.3.10)
|
||||
*
|
||||
*
|
||||
* @param data additional data for the SASL layer or <code>null</code>
|
||||
*/
|
||||
public Success(String data) {
|
||||
|
|
@ -163,7 +163,7 @@ public class SaslStreamElements {
|
|||
|
||||
/**
|
||||
* Returns additional data for the SASL layer or <code>null</code>.
|
||||
*
|
||||
*
|
||||
* @return additional data or <code>null</code>
|
||||
*/
|
||||
public String getData() {
|
||||
|
|
@ -220,7 +220,7 @@ public class SaslStreamElements {
|
|||
|
||||
/**
|
||||
* Get the SASL related error condition.
|
||||
*
|
||||
*
|
||||
* @return the SASL related error condition.
|
||||
*/
|
||||
public SASLError getSASLError() {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ import java.util.concurrent.locks.ReentrantLock;
|
|||
* <p>
|
||||
* Based on ArrayBlockingQueue of OpenJDK by Doug Lea (who released ArrayBlockingQueue as public
|
||||
* domain).
|
||||
*
|
||||
*
|
||||
* @param <E> the type of elements held in this collection
|
||||
*/
|
||||
public class ArrayBlockingQueueWithShutdown<E> extends AbstractQueue<E> implements BlockingQueue<E> {
|
||||
|
|
@ -170,7 +170,7 @@ public class ArrayBlockingQueueWithShutdown<E> extends AbstractQueue<E> implemen
|
|||
|
||||
/**
|
||||
* Returns true if the queue is currently shut down.
|
||||
*
|
||||
*
|
||||
* @return true if the queue is shut down.
|
||||
*/
|
||||
public boolean isShutdown() {
|
||||
|
|
|
|||
|
|
@ -135,7 +135,7 @@ public class DNSUtil {
|
|||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param domain the domain.
|
||||
* @param domainType the XMPP domain type, server or client.
|
||||
* @param failedAddresses a list that will be populated with host addresses that failed to resolve.
|
||||
|
|
@ -188,7 +188,7 @@ public class DNSUtil {
|
|||
* Sort a given list of SRVRecords as described in RFC 2782
|
||||
* Note that we follow the RFC with one exception. In a group of the same priority, only the first entry
|
||||
* is calculated by random. The others are ore simply ordered by their priority.
|
||||
*
|
||||
*
|
||||
* @param records
|
||||
* @return the list of resolved HostAddresses
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ public final class FileUtils {
|
|||
*
|
||||
* @param file
|
||||
* @return the content of file or null in case of an error
|
||||
* @throws IOException
|
||||
* @throws IOException
|
||||
*/
|
||||
@SuppressWarnings("DefaultCharset")
|
||||
public static String readFileOrThrow(File file) throws IOException {
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ import java.util.List;
|
|||
/**
|
||||
* An ObservableReader is a wrapper on a Reader that notifies to its listeners when
|
||||
* reading character streams.
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public class ObservableReader extends Reader {
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
|||
/**
|
||||
* An ObservableWriter is a wrapper on a Writer that notifies to its listeners when
|
||||
* writing to character streams.
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public class ObservableWriter extends Writer {
|
||||
|
|
|
|||
|
|
@ -140,12 +140,12 @@ public class PacketParserUtils {
|
|||
|
||||
/**
|
||||
* Tries to parse and return either a Message, IQ or Presence stanza.
|
||||
*
|
||||
*
|
||||
* connection is optional and is used to return feature-not-implemented errors for unknown IQ stanzas.
|
||||
*
|
||||
* @param parser
|
||||
* @return a stanza which is either a Message, IQ or Presence.
|
||||
* @throws Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Stanza parseStanza(XmlPullParser parser) throws Exception {
|
||||
ParserUtils.assertAtStartTag(parser);
|
||||
|
|
@ -170,7 +170,7 @@ public class PacketParserUtils {
|
|||
* <code>getText()</code> if the parser is on START_TAG or END_TAG. So you must not rely on this
|
||||
* behavior when using the parser.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @return A suitable XmlPullParser for XMPP parsing
|
||||
* @throws XmlPullParserException
|
||||
*/
|
||||
|
|
@ -198,7 +198,7 @@ public class PacketParserUtils {
|
|||
* <code>getText()</code> if the parser is on START_TAG or END_TAG. So you must not rely on this
|
||||
* behavior when using the parser.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param reader
|
||||
* @return A suitable XmlPullParser for XMPP parsing
|
||||
* @throws XmlPullParserException
|
||||
|
|
@ -214,7 +214,7 @@ public class PacketParserUtils {
|
|||
*
|
||||
* @param parser the XML parser, positioned at the start of a message packet.
|
||||
* @return a Message packet.
|
||||
* @throws Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Message parseMessage(XmlPullParser parser)
|
||||
throws Exception {
|
||||
|
|
@ -291,7 +291,7 @@ public class PacketParserUtils {
|
|||
* </p>
|
||||
* This method is used for the parts where the XMPP specification requires elements that contain
|
||||
* only text or are the empty element.
|
||||
*
|
||||
*
|
||||
* @param parser
|
||||
* @return the textual content of the element as String
|
||||
* @throws XmlPullParserException
|
||||
|
|
@ -362,7 +362,7 @@ public class PacketParserUtils {
|
|||
* closing tag of the same depth is returned as String.
|
||||
* </p>
|
||||
* Note that only the outermost namespace attributes ("xmlns") will be returned, not nested ones.
|
||||
*
|
||||
*
|
||||
* @param parser the XML pull parser
|
||||
* @return the content of a tag
|
||||
* @throws XmlPullParserException if parser encounters invalid XML
|
||||
|
|
@ -399,7 +399,7 @@ public class PacketParserUtils {
|
|||
* <p>
|
||||
* In particular Android's XmlPullParser does not support XML_ROUNDTRIP.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param parser
|
||||
* @param depth
|
||||
* @param fullNamespaces
|
||||
|
|
@ -499,7 +499,7 @@ public class PacketParserUtils {
|
|||
*
|
||||
* @param parser the XML parser, positioned at the start of a presence packet.
|
||||
* @return a Presence packet.
|
||||
* @throws Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public static Presence parsePresence(XmlPullParser parser)
|
||||
throws Exception {
|
||||
|
|
@ -662,8 +662,8 @@ public class PacketParserUtils {
|
|||
*
|
||||
* @param parser the XML parser, positioned at the start of the mechanisms stanza.
|
||||
* @return a collection of Stings with the mechanisms included in the mechanisms stanza.
|
||||
* @throws IOException
|
||||
* @throws XmlPullParserException
|
||||
* @throws IOException
|
||||
* @throws XmlPullParserException
|
||||
*/
|
||||
public static Collection<String> parseMechanisms(XmlPullParser parser)
|
||||
throws XmlPullParserException, IOException {
|
||||
|
|
@ -747,11 +747,11 @@ public class PacketParserUtils {
|
|||
|
||||
/**
|
||||
* Parses SASL authentication error packets.
|
||||
*
|
||||
*
|
||||
* @param parser the XML parser.
|
||||
* @return a SASL Failure packet.
|
||||
* @throws IOException
|
||||
* @throws XmlPullParserException
|
||||
* @throws IOException
|
||||
* @throws XmlPullParserException
|
||||
*/
|
||||
public static SASLFailure parseSASLFailure(XmlPullParser parser) throws XmlPullParserException, IOException {
|
||||
final int initialDepth = parser.getDepth();
|
||||
|
|
@ -835,7 +835,7 @@ public class PacketParserUtils {
|
|||
*
|
||||
* @param parser the XML parser.
|
||||
* @return an error sub-packet.
|
||||
* @throws Exception
|
||||
* @throws Exception
|
||||
*/
|
||||
public static StanzaError.Builder parseError(XmlPullParser parser)
|
||||
throws Exception {
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ public class ParserUtils {
|
|||
|
||||
/**
|
||||
* Get the boolean value of an argument.
|
||||
*
|
||||
*
|
||||
* @param parser
|
||||
* @param name
|
||||
* @return the boolean value or null of no argument of the given name exists
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ package org.jivesoftware.smack.util;
|
|||
*
|
||||
* @see ObservableReader#addReaderListener
|
||||
* @see ObservableReader#removeReaderListener
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public interface ReaderListener {
|
||||
|
||||
/**
|
||||
* Notification that the Reader has read a new string.
|
||||
*
|
||||
*
|
||||
* @param str the read String
|
||||
*/
|
||||
void read(String str);
|
||||
|
|
|
|||
|
|
@ -382,7 +382,7 @@ public class StringUtils {
|
|||
|
||||
/**
|
||||
* Returns true if the given CharSequence is empty.
|
||||
*
|
||||
*
|
||||
* @param cs
|
||||
* @return true if the given CharSequence is empty
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ public class TLSUtils {
|
|||
* TLSv1.1. This method goes one step beyond and upgrades the handshake to use TLSv1 or better.
|
||||
* This method requires the underlying OS to support all of TLSv1.2 , 1.1 and 1.0.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param builder the configuration builder to apply this setting to
|
||||
* @param <B> Type of the ConnectionConfiguration builder.
|
||||
*
|
||||
|
|
@ -78,7 +78,7 @@ public class TLSUtils {
|
|||
* XMPP Manifesto</a>, TLSv1.2 shall be deployed, providing fallback support for SSLv3 and
|
||||
* TLSv1.1.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param builder the configuration builder to apply this setting to
|
||||
* @param <B> Type of the ConnectionConfiguration builder.
|
||||
*
|
||||
|
|
@ -96,7 +96,7 @@ public class TLSUtils {
|
|||
* <b>invalidates all security guarantees provided by TLS</b>. Only use this method if you understand the
|
||||
* implications.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param builder a connection configuration builder.
|
||||
* @param <B> Type of the ConnectionConfiguration builder.
|
||||
* @throws NoSuchAlgorithmException
|
||||
|
|
@ -125,7 +125,7 @@ public class TLSUtils {
|
|||
* <b>invalidates all security guarantees provided by TLS</b>. Only use this method if you understand the
|
||||
* implications.
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param builder a connection configuration builder.
|
||||
* @param <B> Type of the ConnectionConfiguration builder.
|
||||
* @return the given builder.
|
||||
|
|
|
|||
|
|
@ -23,14 +23,14 @@ package org.jivesoftware.smack.util;
|
|||
*
|
||||
* @see ObservableWriter#addWriterListener
|
||||
* @see ObservableWriter#removeWriterListener
|
||||
*
|
||||
*
|
||||
* @author Gaston Dombiak
|
||||
*/
|
||||
public interface WriterListener {
|
||||
|
||||
/**
|
||||
* Notification that the Writer has written a new string.
|
||||
*
|
||||
*
|
||||
* @param str the written string
|
||||
*/
|
||||
void write(String str);
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element {
|
|||
|
||||
/**
|
||||
* Add a right angle bracket '>'.
|
||||
*
|
||||
*
|
||||
* @return a reference to this object.
|
||||
*/
|
||||
public XmlStringBuilder rightAngleBracket() {
|
||||
|
|
@ -557,7 +557,7 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element {
|
|||
if (csq instanceof XmlStringBuilder) {
|
||||
((XmlStringBuilder) csq).write(writer, enclosingNamespace);
|
||||
}
|
||||
else if (csq instanceof XmlNsAttribute) {
|
||||
else if (csq instanceof XmlNsAttribute) {
|
||||
XmlNsAttribute xmlNsAttribute = (XmlNsAttribute) csq;
|
||||
if (!xmlNsAttribute.value.equals(enclosingNamespace)) {
|
||||
writer.write(xmlNsAttribute.toString());
|
||||
|
|
@ -582,7 +582,7 @@ public class XmlStringBuilder implements Appendable, CharSequence, Element {
|
|||
if (csq instanceof XmlStringBuilder) {
|
||||
((XmlStringBuilder) csq).appendXmlTo(res, enclosingNamespace);
|
||||
}
|
||||
else if (csq instanceof XmlNsAttribute) {
|
||||
else if (csq instanceof XmlNsAttribute) {
|
||||
XmlNsAttribute xmlNsAttribute = (XmlNsAttribute) csq;
|
||||
if (!xmlNsAttribute.value.equals(enclosingNamespace)) {
|
||||
sb.append(xmlNsAttribute);
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ public class HostAddress {
|
|||
|
||||
/**
|
||||
* Creates a new HostAddress with the given FQDN.
|
||||
*
|
||||
*
|
||||
* @param fqdn the optional fully qualified domain name (FQDN).
|
||||
* @param port The port to connect on.
|
||||
* @param inetAddresses list of addresses.
|
||||
|
|
@ -109,7 +109,7 @@ public class HostAddress {
|
|||
* Retrieve the Exception that caused a connection failure to this HostAddress. Every
|
||||
* HostAddress found in {@link ConnectionException} will have an Exception set,
|
||||
* which can be retrieved with this method.
|
||||
*
|
||||
*
|
||||
* @return the Exception causing this HostAddress to fail
|
||||
*/
|
||||
public Map<InetAddress, Exception> getExceptions() {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ import org.minidns.dnsname.DnsName;
|
|||
* @see <a href="http://tools.ietf.org/html/rfc2782">RFC 2782: A DNS RR for specifying the location of services (DNS
|
||||
* SRV)</a>
|
||||
* @author Florian Schmaus
|
||||
*
|
||||
*
|
||||
*/
|
||||
public class SRVRecord extends HostAddress implements Comparable<SRVRecord> {
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ public class SRVRecord extends HostAddress implements Comparable<SRVRecord> {
|
|||
|
||||
/**
|
||||
* SRV Record constructor.
|
||||
*
|
||||
*
|
||||
* @param fqdn Fully qualified domain name
|
||||
* @param port The connection port
|
||||
* @param priority Priority of the target host
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import org.jivesoftware.smack.util.StringUtils;
|
|||
/**
|
||||
* Base32 string encoding is useful for when filenames case-insensitive filesystems are encoded.
|
||||
* Base32 representation takes roughly 20% more space then Base64.
|
||||
*
|
||||
*
|
||||
* @author Florian Schmaus
|
||||
* Based on code by Brian Wellington (bwelling@xbill.org)
|
||||
* @see <a href="http://en.wikipedia.org/wiki/Base32">Base32 Wikipedia entry</a>
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ package org.jivesoftware.smack.util.stringencoder;
|
|||
public interface StringEncoder {
|
||||
/**
|
||||
* Encodes an string to another representation.
|
||||
*
|
||||
*
|
||||
* @param string
|
||||
* @return the encoded String
|
||||
*/
|
||||
|
|
@ -32,7 +32,7 @@ public interface StringEncoder {
|
|||
|
||||
/**
|
||||
* Decodes an string back to it's initial representation.
|
||||
*
|
||||
*
|
||||
* @param string
|
||||
* @return the decoded String
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue