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

    • Constructor Detail

    • Method Detail

      • setXmppAddressAndPassword

        public B setXmppAddressAndPassword​(EntityBareJid jid,
                                           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​(CharSequence username,
                                        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.
      • 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​(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​(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​(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

        public B setCallbackHandler​(CallbackHandler callbackHandler)
        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.
      • setKeystorePath

        public B setKeystorePath​(String keystorePath)
        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.
        Parameters:
        keystorePath - the path to the keystore file.
        Returns:
        a reference to this builder.
      • setKeystoreType

        public B setKeystoreType​(String keystoreType)
        Sets the keystore type.
        Parameters:
        keystoreType - the keystore type.
        Returns:
        a reference to this builder.
      • setPKCS11Library

        public B setPKCS11Library​(String pkcs11Library)
        Sets the PKCS11 library file location, needed when the Keystore type is PKCS11.
        Parameters:
        pkcs11Library - the path to the PKCS11 library file.
        Returns:
        a reference to this builder.
      • setEnabledSSLProtocols

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

        public B setEnabledSSLCiphers​(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​(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​(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​(Collection<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()