Class NetClientOptions

Direct Known Subclasses:
MailConfig, MqttClientOptions, io.vertx.proton.ProtonClientOptions, RabbitMQOptions, StompClientOptions

public class NetClientOptions extends ClientOptionsBase
Options for configuring a NetClient.
Author:
Tim Fox
  • Field Details

    • DEFAULT_RECONNECT_ATTEMPTS

      public static final int DEFAULT_RECONNECT_ATTEMPTS
      The default value for reconnect attempts = 0
      See Also:
    • DEFAULT_RECONNECT_INTERVAL

      public static final long DEFAULT_RECONNECT_INTERVAL
      The default value for reconnect interval = 1000 ms
      See Also:
    • DEFAULT_HOSTNAME_VERIFICATION_ALGORITHM

      public static final String DEFAULT_HOSTNAME_VERIFICATION_ALGORITHM
      Default value to determine hostname verification algorithm hostname verification (for SSL/TLS) = ""
      See Also:
    • DEFAULT_REGISTER_WRITE_HANDLER

      public static final boolean DEFAULT_REGISTER_WRITE_HANDLER
      Whether a write-handler should be registered by default = false.
      See Also:
  • Constructor Details

    • NetClientOptions

      public NetClientOptions()
      The default constructor
    • NetClientOptions

      public NetClientOptions(NetClientOptions other)
      Copy constructor
      Parameters:
      other - the options to copy
    • NetClientOptions

      public NetClientOptions(ClientOptionsBase other)
      Create an instance copying the values from other and using the defaults of NetClientOptions.
      Parameters:
      other - the options to copy
    • NetClientOptions

      public NetClientOptions(JsonObject json)
      Create options from JSON
      Parameters:
      json - the JSON
  • Method Details

    • setSendBufferSize

      public NetClientOptions setSendBufferSize(int sendBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP send buffer size
      Overrides:
      setSendBufferSize in class ClientOptionsBase
      Parameters:
      sendBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReceiveBufferSize

      public NetClientOptions setReceiveBufferSize(int receiveBufferSize)
      Description copied from class: NetworkOptions
      Set the TCP receive buffer size
      Overrides:
      setReceiveBufferSize in class ClientOptionsBase
      Parameters:
      receiveBufferSize - the buffers size, in bytes
      Returns:
      a reference to this, so the API can be used fluently
    • setReuseAddress

      public NetClientOptions setReuseAddress(boolean reuseAddress)
      Description copied from class: NetworkOptions
      Set the value of reuse address
      Overrides:
      setReuseAddress in class ClientOptionsBase
      Parameters:
      reuseAddress - the value of reuse address
      Returns:
      a reference to this, so the API can be used fluently
    • setReusePort

      public NetClientOptions setReusePort(boolean reusePort)
      Description copied from class: NetworkOptions
      Set the value of reuse port.

      This is only supported by native transports.

      Overrides:
      setReusePort in class ClientOptionsBase
      Parameters:
      reusePort - the value of reuse port
      Returns:
      a reference to this, so the API can be used fluently
    • setTrafficClass

      public NetClientOptions setTrafficClass(int trafficClass)
      Description copied from class: NetworkOptions
      Set the value of traffic class
      Overrides:
      setTrafficClass in class ClientOptionsBase
      Parameters:
      trafficClass - the value of traffic class
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpNoDelay

      public NetClientOptions setTcpNoDelay(boolean tcpNoDelay)
      Description copied from class: TCPSSLOptions
      Set whether TCP no delay is enabled
      Overrides:
      setTcpNoDelay in class ClientOptionsBase
      Parameters:
      tcpNoDelay - true if TCP no delay is enabled (Nagle disabled)
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpKeepAlive

      public NetClientOptions setTcpKeepAlive(boolean tcpKeepAlive)
      Description copied from class: TCPSSLOptions
      Set whether TCP keep alive is enabled
      Overrides:
      setTcpKeepAlive in class ClientOptionsBase
      Parameters:
      tcpKeepAlive - true if TCP keep alive is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setSoLinger

      public NetClientOptions setSoLinger(int soLinger)
      Description copied from class: TCPSSLOptions
      Set whether SO_linger keep alive is enabled
      Overrides:
      setSoLinger in class ClientOptionsBase
      Parameters:
      soLinger - true if SO_linger is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeout

      public NetClientOptions setIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received nor sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setReadIdleTimeout

      public NetClientOptions setReadIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the read idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is received within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setReadIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the read timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setWriteIdleTimeout

      public NetClientOptions setWriteIdleTimeout(int idleTimeout)
      Description copied from class: TCPSSLOptions
      Set the write idle timeout, default time unit is seconds. Zero means don't timeout. This determines if a connection will timeout and be closed if no data is sent within the timeout. If you want change default time unit, use TCPSSLOptions.setIdleTimeoutUnit(TimeUnit)
      Overrides:
      setWriteIdleTimeout in class ClientOptionsBase
      Parameters:
      idleTimeout - the write timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeoutUnit

      public NetClientOptions setIdleTimeoutUnit(TimeUnit idleTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the idle timeout unit. If not specified, default is seconds.
      Overrides:
      setIdleTimeoutUnit in class ClientOptionsBase
      Parameters:
      idleTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • setSsl

      public NetClientOptions setSsl(boolean ssl)
      Description copied from class: TCPSSLOptions
      Set whether SSL/TLS is enabled
      Overrides:
      setSsl in class ClientOptionsBase
      Parameters:
      ssl - true if enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setKeyCertOptions

      public NetClientOptions setKeyCertOptions(KeyCertOptions options)
      Description copied from class: TCPSSLOptions
      Set the key/cert options.
      Overrides:
      setKeyCertOptions in class ClientOptionsBase
      Parameters:
      options - the key store options
      Returns:
      a reference to this, so the API can be used fluently
    • setTrustOptions

      public NetClientOptions setTrustOptions(TrustOptions options)
      Description copied from class: TCPSSLOptions
      Set the trust options.
      Overrides:
      setTrustOptions in class ClientOptionsBase
      Parameters:
      options - the trust options
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledCipherSuite

      public NetClientOptions addEnabledCipherSuite(String suite)
      Description copied from class: TCPSSLOptions
      Add an enabled cipher suite, appended to the ordered suites.
      Overrides:
      addEnabledCipherSuite in class ClientOptionsBase
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • removeEnabledCipherSuite

      public NetClientOptions removeEnabledCipherSuite(String suite)
      Description copied from class: TCPSSLOptions
      Removes an enabled cipher suite from the ordered suites.
      Overrides:
      removeEnabledCipherSuite in class ClientOptionsBase
      Parameters:
      suite - the suite
      Returns:
      a reference to this, so the API can be used fluently
    • addEnabledSecureTransportProtocol

      public NetClientOptions addEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Add an enabled SSL/TLS protocols, appended to the ordered protocols.
      Overrides:
      addEnabledSecureTransportProtocol in class ClientOptionsBase
      Parameters:
      protocol - the SSL/TLS protocol to enable
      Returns:
      a reference to this, so the API can be used fluently
    • removeEnabledSecureTransportProtocol

      public NetClientOptions removeEnabledSecureTransportProtocol(String protocol)
      Description copied from class: TCPSSLOptions
      Removes an enabled SSL/TLS protocol from the ordered protocols.
      Overrides:
      removeEnabledSecureTransportProtocol in class ClientOptionsBase
      Parameters:
      protocol - the SSL/TLS protocol to disable
      Returns:
      a reference to this, so the API can be used fluently
    • setUseAlpn

      public NetClientOptions setUseAlpn(boolean useAlpn)
      Description copied from class: TCPSSLOptions
      Set the ALPN usage.
      Overrides:
      setUseAlpn in class ClientOptionsBase
      Parameters:
      useAlpn - true when Application-Layer Protocol Negotiation should be used
    • setSslEngineOptions

      public NetClientOptions setSslEngineOptions(SSLEngineOptions sslEngineOptions)
      Description copied from class: TCPSSLOptions
      Set to use SSL engine implementation to use.
      Overrides:
      setSslEngineOptions in class ClientOptionsBase
      Parameters:
      sslEngineOptions - the ssl engine to use
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpFastOpen

      public NetClientOptions setTcpFastOpen(boolean tcpFastOpen)
      Description copied from class: TCPSSLOptions
      Enable the TCP_FASTOPEN option - only with linux native transport.
      Overrides:
      setTcpFastOpen in class ClientOptionsBase
      Parameters:
      tcpFastOpen - the fast open value
    • setTcpCork

      public NetClientOptions setTcpCork(boolean tcpCork)
      Description copied from class: TCPSSLOptions
      Enable the TCP_CORK option - only with linux native transport.
      Overrides:
      setTcpCork in class ClientOptionsBase
      Parameters:
      tcpCork - the cork value
    • setTcpQuickAck

      public NetClientOptions setTcpQuickAck(boolean tcpQuickAck)
      Description copied from class: TCPSSLOptions
      Enable the TCP_QUICKACK option - only with linux native transport.
      Overrides:
      setTcpQuickAck in class ClientOptionsBase
      Parameters:
      tcpQuickAck - the quick ack value
    • setTcpUserTimeout

      public NetClientOptions setTcpUserTimeout(int tcpUserTimeout)
      Description copied from class: TCPSSLOptions
      Sets the TCP_USER_TIMEOUT option - only with linux native transport.
      Overrides:
      setTcpUserTimeout in class ClientOptionsBase
      Parameters:
      tcpUserTimeout - the tcp user timeout value
    • addCrlPath

      public NetClientOptions addCrlPath(String crlPath) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL path
      Overrides:
      addCrlPath in class ClientOptionsBase
      Parameters:
      crlPath - the path
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • addCrlValue

      public NetClientOptions addCrlValue(Buffer crlValue) throws NullPointerException
      Description copied from class: TCPSSLOptions
      Add a CRL value
      Overrides:
      addCrlValue in class ClientOptionsBase
      Parameters:
      crlValue - the value
      Returns:
      a reference to this, so the API can be used fluently
      Throws:
      NullPointerException
    • setTrustAll

      public NetClientOptions setTrustAll(boolean trustAll)
      Description copied from class: ClientOptionsBase
      Set whether all server certificates should be trusted
      Overrides:
      setTrustAll in class ClientOptionsBase
      Parameters:
      trustAll - true if all should be trusted
      Returns:
      a reference to this, so the API can be used fluently
    • setConnectTimeout

      public NetClientOptions setConnectTimeout(int connectTimeout)
      Description copied from class: ClientOptionsBase
      Set the connect timeout
      Overrides:
      setConnectTimeout in class ClientOptionsBase
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
    • setMetricsName

      public NetClientOptions setMetricsName(String metricsName)
      Description copied from class: ClientOptionsBase
      Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
      Overrides:
      setMetricsName in class ClientOptionsBase
      Parameters:
      metricsName - the metrics name
      Returns:
      a reference to this, so the API can be used fluently
    • setReconnectAttempts

      public NetClientOptions setReconnectAttempts(int attempts)
      Set the value of reconnect attempts
      Parameters:
      attempts - the maximum number of reconnect attempts
      Returns:
      a reference to this, so the API can be used fluently
    • getReconnectAttempts

      public int getReconnectAttempts()
      Returns:
      the value of reconnect attempts
    • setReconnectInterval

      public NetClientOptions setReconnectInterval(long interval)
      Set the reconnect interval
      Parameters:
      interval - the reconnect interval in ms
      Returns:
      a reference to this, so the API can be used fluently
    • getHostnameVerificationAlgorithm

      public String getHostnameVerificationAlgorithm()
      Returns:
      the value of the hostname verification algorithm
    • setHostnameVerificationAlgorithm

      public NetClientOptions setHostnameVerificationAlgorithm(String hostnameVerificationAlgorithm)
      Set the hostname verification algorithm interval To disable hostname verification, set hostnameVerificationAlgorithm to an empty String
      Parameters:
      hostnameVerificationAlgorithm - should be HTTPS, LDAPS or an empty String
      Returns:
      a reference to this, so the API can be used fluently
    • getApplicationLayerProtocols

      public List<String> getApplicationLayerProtocols()
      Returns:
      the list of application-layer protocols send during the Application-Layer Protocol Negotiation.
    • setApplicationLayerProtocols

      public NetClientOptions setApplicationLayerProtocols(List<String> protocols)
      Set the list of application-layer protocols to provide to the server during the Application-Layer Protocol Negotiation.
      Parameters:
      protocols - the protocols
      Returns:
      a reference to this, so the API can be used fluently
    • getReconnectInterval

      public long getReconnectInterval()
      Returns:
      the value of reconnect interval
    • setLogActivity

      public NetClientOptions setLogActivity(boolean logEnabled)
      Description copied from class: NetworkOptions
      Set to true to enabled network activity logging: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setLogActivity in class ClientOptionsBase
      Parameters:
      logEnabled - true for logging the network activity
      Returns:
      a reference to this, so the API can be used fluently
    • setActivityLogDataFormat

      public NetClientOptions setActivityLogDataFormat(ByteBufFormat activityLogDataFormat)
      Description copied from class: NetworkOptions
      Set the value of Netty's logging handler's data format: Netty's pipeline is configured for logging on Netty's logger.
      Overrides:
      setActivityLogDataFormat in class ClientOptionsBase
      Parameters:
      activityLogDataFormat - the format to use
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyOptions

      public NetClientOptions setProxyOptions(ProxyOptions proxyOptions)
      Description copied from class: ClientOptionsBase
      Set proxy options for connections via CONNECT proxy (e.g. Squid) or a SOCKS proxy.
      Overrides:
      setProxyOptions in class ClientOptionsBase
      Parameters:
      proxyOptions - proxy options object
      Returns:
      a reference to this, so the API can be used fluently
    • setNonProxyHosts

      public NetClientOptions setNonProxyHosts(List<String> nonProxyHosts)
      Description copied from class: ClientOptionsBase
      Set a list of remote hosts that are not proxied when the client is configured to use a proxy. This list serves the same purpose than the JVM nonProxyHosts configuration.

      Entries can use the * wildcard character for pattern matching, e.g *.example.com matches www.example.com.

      Overrides:
      setNonProxyHosts in class ClientOptionsBase
      Parameters:
      nonProxyHosts - the list of non proxies hosts
      Returns:
      a reference to this, so the API can be used fluently
    • addNonProxyHost

      public NetClientOptions addNonProxyHost(String nonProxyHost)
      Description copied from class: ClientOptionsBase
      Add a host to the ClientOptionsBase.getNonProxyHosts() list.
      Overrides:
      addNonProxyHost in class ClientOptionsBase
      Parameters:
      nonProxyHost - the added host
      Returns:
      a reference to this, so the API can be used fluently
    • setLocalAddress

      public NetClientOptions setLocalAddress(String localAddress)
      Description copied from class: ClientOptionsBase
      Set the local interface to bind for network connections. When the local address is null, it will pick any local address, the default local address is null.
      Overrides:
      setLocalAddress in class ClientOptionsBase
      Parameters:
      localAddress - the local address
      Returns:
      a reference to this, so the API can be used fluently
    • setEnabledSecureTransportProtocols

      public NetClientOptions setEnabledSecureTransportProtocols(Set<String> enabledSecureTransportProtocols)
      Description copied from class: TCPSSLOptions
      Sets the list of enabled SSL/TLS protocols.
      Overrides:
      setEnabledSecureTransportProtocols in class TCPSSLOptions
      Parameters:
      enabledSecureTransportProtocols - the SSL/TLS protocols to enable
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeout

      public NetClientOptions setSslHandshakeTimeout(long sslHandshakeTimeout)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout, default time unit is seconds.
      Overrides:
      setSslHandshakeTimeout in class TCPSSLOptions
      Parameters:
      sslHandshakeTimeout - the SSL handshake timeout to set, in milliseconds
      Returns:
      a reference to this, so the API can be used fluently
    • setSslHandshakeTimeoutUnit

      public NetClientOptions setSslHandshakeTimeoutUnit(TimeUnit sslHandshakeTimeoutUnit)
      Description copied from class: TCPSSLOptions
      Set the SSL handshake timeout unit. If not specified, default is seconds.
      Overrides:
      setSslHandshakeTimeoutUnit in class TCPSSLOptions
      Parameters:
      sslHandshakeTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • toJson

      public JsonObject toJson()
      Description copied from class: ClientOptionsBase
      Convert to JSON
      Overrides:
      toJson in class ClientOptionsBase
      Returns:
      the JSON
    • isRegisterWriteHandler

      public boolean isRegisterWriteHandler()
      Returns:
      true if a write-handler should be registered on the EventBus, otherwise false
    • setRegisterWriteHandler

      public NetClientOptions setRegisterWriteHandler(boolean registerWriteHandler)
      Whether a write-handler should be registered on the EventBus.

      Defaults to false.

      Parameters:
      registerWriteHandler - true to register a write-handler
      Returns:
      a reference to this, so the API can be used fluently
      See Also: