Class ConnectionConfiguration.Builder<B extends ConnectionConfiguration.Builder<B,​C>,​C extends ConnectionConfiguration>

    • Constructor Detail

    • Method Detail

      • setXmppAddressAndPassword

        public B setXmppAddressAndPassword​(EntityBareJid jid,
                                           java.lang.String password)
        Convenience method to configure the username, password and XMPP service domain. The localpart of the provided JID is used as username and the domanipart is used as XMPP service domain.

        Please note that this does and can not configure the client XMPP address. XMPP services are not required to assign bound JIDs where the localpart matches the username and the domainpart matches the verified domainpart. Although most services will follow that pattern.

        Parameters:
        jid - TODO javadoc me please
        password - TODO javadoc me please
        Returns:
        a reference to this builder.
        Since:
        4.4.0
      • setUsernameAndPassword

        public B setUsernameAndPassword​(java.lang.CharSequence username,
                                        java.lang.String password)
        Set the XMPP entities username and password.

        The username is usually the localpart of the clients JID. But some SASL mechanisms or services may require a different format (e.g. the full JID) as used authorization identity.

        Parameters:
        username - the username or authorization identity
        password - the password or token used to authenticate
        Returns:
        a reference to this builder.
      • setServiceName

        @Deprecated
        public B setServiceName​(DomainBareJid serviceName)
        Deprecated.
        Set the XMPP domain. The XMPP domain is what follows after the '@' sign in XMPP addresses (JIDs).
        Parameters:
        serviceName - the service name
        Returns:
        a reference to this builder.
      • setXmppDomain

        public B setXmppDomain​(DomainBareJid xmppDomain)
        Set the XMPP domain. The XMPP domain is what follows after the '@' sign in XMPP addresses (JIDs).
        Parameters:
        xmppDomain - the XMPP domain.
        Returns:
        a reference to this builder.
      • setXmppDomain

        public B setXmppDomain​(java.lang.String xmppServiceDomain)
                        throws XmppStringprepException
        Set the XMPP domain. The XMPP domain is what follows after the '@' sign in XMPP addresses (JIDs).
        Parameters:
        xmppServiceDomain - the XMPP domain.
        Returns:
        a reference to this builder.
        Throws:
        XmppStringprepException - if the given string is not a domain bare JID.
      • setResource

        public B setResource​(Resourcepart resource)
        Set the resource we are requesting from the server.

        If resource is null, the default, then the server will automatically create a resource for the client. Note that XMPP clients only suggest this resource to the server. XMPP servers are allowed to ignore the client suggested resource and instead assign a completely different resource (see RFC 6120 § 7.7.1).

        Parameters:
        resource - the resource to use.
        Returns:
        a reference to this builder.
        See Also:
        RFC 6120 § 7.7.1
      • setHostAddress

        public B setHostAddress​(java.net.InetAddress address)
        Set the Internet address of the host providing the XMPP service. If set, then this will overwrite anything set via setHost(CharSequence).
        Parameters:
        address - the Internet address of the host providing the XMPP service.
        Returns:
        a reference to this builder.
        Since:
        4.2
      • setHost

        public B setHost​(java.lang.CharSequence host)
        Set the name of the host providing the XMPP service. This method takes DNS names and IP addresses.
        Parameters:
        host - the DNS name of the host providing the XMPP service.
        Returns:
        a reference to this builder.
      • setHost

        public B setHost​(DnsName host)
        Set the name of the host providing the XMPP service. Note that this method does only allow DNS names and not IP addresses. Use setHostAddress(InetAddress) if you want to explicitly set the Internet address of the host providing the XMPP service.
        Parameters:
        host - the DNS name of the host providing the XMPP service.
        Returns:
        a reference to this builder.
      • setPort

        public B setPort​(int port)
      • setCallbackHandler

        @Deprecated
        public B setCallbackHandler​(javax.security.auth.callback.CallbackHandler callbackHandler)
        Deprecated.
        Sets a CallbackHandler to obtain information, such as the password or principal information during the SASL authentication. A CallbackHandler will be used ONLY if no password was specified during the login while using SASL authentication.
        Parameters:
        callbackHandler - to obtain information, such as the password or principal information during the SASL authentication.
        Returns:
        a reference to this builder.
      • setKeyManagers

        public B setKeyManagers​(javax.net.ssl.KeyManager[] keyManagers)
        Set the KeyManagers to initialize the SSLContext used by Smack to establish the XMPP connection.
        Parameters:
        keyManagers - an array of KeyManagers to initialize the SSLContext with.
        Returns:
        a reference to this builder.
        Since:
        4.4.5
      • setKeyManager

        public B setKeyManager​(javax.net.ssl.KeyManager keyManager)
        Set the KeyManagers to initialize the SSLContext used by Smack to establish the XMPP connection.
        Parameters:
        keyManager - the KeyManagers to initialize the SSLContext with.
        Returns:
        a reference to this builder.
        Since:
        4.4.5
        See Also:
        setKeyManagers(KeyManager[])
      • setSslContextSecureRandom

        public B setSslContextSecureRandom​(java.security.SecureRandom secureRandom)
        Set the SecureRandom used to initialize the SSLContext used by Smack to establish the XMPP connection. Note that you usually do not need (nor want) to set this. Because if the SecureRandom is not explicitly set, Smack will initialize the SSLContext with null as SecureRandom argument. And all sane SSLContext implementations will then select a safe secure random source by default.
        Parameters:
        secureRandom - the SecureRandom to initialize the SSLContext with.
        Returns:
        a reference to this builder.
        Since:
        4.4.5
      • setEnabledSSLProtocols

        public B setEnabledSSLProtocols​(java.lang.String[] enabledSSLProtocols)
        Set the enabled SSL/TLS protocols.
        Parameters:
        enabledSSLProtocols - TODO javadoc me please
        Returns:
        a reference to this builder.
      • setEnabledSSLCiphers

        public B setEnabledSSLCiphers​(java.lang.String[] enabledSSLCiphers)
        Set the enabled SSL/TLS ciphers.
        Parameters:
        enabledSSLCiphers - the enabled SSL/TLS ciphers
        Returns:
        a reference to this builder.
      • setHostnameVerifier

        public B setHostnameVerifier​(javax.net.ssl.HostnameVerifier verifier)
        Set the HostnameVerifier used to verify the hostname of SSLSockets used by XMPP connections created with this ConnectionConfiguration.
        Parameters:
        verifier - TODO javadoc me please
        Returns:
        a reference to this builder.
      • setSendPresence

        public B setSendPresence​(boolean sendPresence)
        Sets if an initial available presence will be sent to the server. By default an available presence will be sent to the server indicating that this presence is not online and available to receive messages. If you want to log in without being 'noticed' then pass a false value.
        Parameters:
        sendPresence - true if an initial available presence will be sent while logging in.
        Returns:
        a reference to this builder.
      • setDebuggerFactory

        public B setDebuggerFactory​(SmackDebuggerFactory debuggerFactory)
        Set the Smack debugger factory used to construct Smack debuggers.
        Parameters:
        debuggerFactory - the Smack debugger factory.
        Returns:
        a reference to this builder.
      • setSocketFactory

        public B setSocketFactory​(javax.net.SocketFactory socketFactory)
        Sets the socket factory used to create new xmppConnection sockets. This is useful when connecting through SOCKS5 proxies.
        Parameters:
        socketFactory - used to create new sockets.
        Returns:
        a reference to this builder.
      • setProxyInfo

        public B setProxyInfo​(ProxyInfo proxyInfo)
        Set the information about the Proxy used for the connection.
        Parameters:
        proxyInfo - the Proxy information.
        Returns:
        a reference to this builder.
      • allowEmptyOrNullUsernames

        public B allowEmptyOrNullUsernames()
        Allow null or the empty String as username. 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.
        Returns:
        a reference to this builder.
      • addEnabledSaslMechanism

        public B addEnabledSaslMechanism​(java.lang.String saslMechanism)
        Add the given mechanism to the enabled ones. See addEnabledSaslMechanism(Collection) for a discussion about enabled SASL mechanisms.
        Parameters:
        saslMechanism - the name of the mechanism to enable.
        Returns:
        a reference to this builder.
      • addEnabledSaslMechanism

        public B addEnabledSaslMechanism​(java.util.Collection<java.lang.String> saslMechanisms)
        Enable the given SASL mechanisms. If you never add a mechanism to the set of enabled ones, all mechanisms known to Smack will be enabled. Only explicitly enable particular SASL mechanisms if you want to limit the used mechanisms to the enabled ones.
        Parameters:
        saslMechanisms - a collection of names of mechanisms to enable.
        Returns:
        a reference to this builder.
      • setAuthzid

        public B setAuthzid​(EntityBareJid authzid)
        Set the XMPP address to be used as authorization identity.

        In XMPP, authorization identities are bare jids. In general, callers should allow the server to select the authorization identifier automatically, and not call this. Note that setting the authzid does not set the XMPP service domain, which should typically match. Calling this will also SASL CRAM, since this mechanism does not support authzid.

        Parameters:
        authzid - The BareJid to be requested as the authorization identifier.
        Returns:
        a reference to this builder.
        Since:
        4.2
        See Also:
        RFC 6120 § 6.3.8. Authorization Identity
      • setCompressionEnabled

        public B setCompressionEnabled​(boolean compressionEnabled)
        Sets if the connection is going to use compression (default false). Compression is only activated if the server offers compression. With compression network traffic can be reduced up to 90%. By default compression is disabled.
        Parameters:
        compressionEnabled - if the connection is going to use compression on the HTTP level.
        Returns:
        a reference to this object.
      • setStanzaIdSourceFactory

        public B setStanzaIdSourceFactory​(StanzaIdSourceFactory stanzaIdSourceFactory)
        Set the factory for stanza ID sources to use.
        Parameters:
        stanzaIdSourceFactory - the factory for stanza ID sources to use.
        Returns:
        a reference to this builder.
        Since:
        4.4
      • build

        public abstract C build()
      • getThis

        protected abstract B getThis()
      • getKeyManagersFrom

        public static javax.net.ssl.KeyManager[] getKeyManagersFrom​(java.lang.String keystoreType,
                                                                    java.lang.String keystorePath,
                                                                    javax.security.auth.callback.CallbackHandler callbackHandler,
                                                                    java.lang.String pkcs11Library)
                                                             throws java.lang.NoSuchMethodException,
                                                                    java.lang.SecurityException,
                                                                    java.lang.ClassNotFoundException,
                                                                    java.security.KeyStoreException,
                                                                    java.security.NoSuchProviderException,
                                                                    java.security.NoSuchAlgorithmException,
                                                                    java.security.cert.CertificateException,
                                                                    java.io.IOException,
                                                                    java.lang.InstantiationException,
                                                                    java.lang.IllegalAccessException,
                                                                    java.lang.IllegalArgumentException,
                                                                    java.lang.reflect.InvocationTargetException,
                                                                    javax.security.auth.callback.UnsupportedCallbackException,
                                                                    java.security.UnrecoverableKeyException
        Throws:
        java.lang.NoSuchMethodException
        java.lang.SecurityException
        java.lang.ClassNotFoundException
        java.security.KeyStoreException
        java.security.NoSuchProviderException
        java.security.NoSuchAlgorithmException
        java.security.cert.CertificateException
        java.io.IOException
        java.lang.InstantiationException
        java.lang.IllegalAccessException
        java.lang.IllegalArgumentException
        java.lang.reflect.InvocationTargetException
        javax.security.auth.callback.UnsupportedCallbackException
        java.security.UnrecoverableKeyException