Class ClientOptionsBase

Direct Known Subclasses:
HttpClientOptions, NetClientOptions, WebSocketClientOptions

public abstract class ClientOptionsBase extends TCPSSLOptions
Base class for Client options
Author:
Tim Fox
  • Field Details

    • DEFAULT_CONNECT_TIMEOUT

      public static final int DEFAULT_CONNECT_TIMEOUT
      The default value of connect timeout = 60000 (ms)
      See Also:
    • DEFAULT_METRICS_NAME

      public static final String DEFAULT_METRICS_NAME
      The default value of the client metrics = "":
      See Also:
  • Constructor Details

    • ClientOptionsBase

      public ClientOptionsBase()
      Default constructor
    • ClientOptionsBase

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

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

    • toJson

      public JsonObject toJson()
      Convert to JSON
      Overrides:
      toJson in class TCPSSLOptions
      Returns:
      the JSON
    • getSslOptions

      public ClientSSLOptions getSslOptions()
      Overrides:
      getSslOptions in class TCPSSLOptions
    • getOrCreateSSLOptions

      protected ClientSSLOptions getOrCreateSSLOptions()
      Overrides:
      getOrCreateSSLOptions in class TCPSSLOptions
    • createSSLOptions

      protected ClientSSLOptions createSSLOptions()
      Overrides:
      createSSLOptions in class TCPSSLOptions
    • isTrustAll

      public boolean isTrustAll()
      Returns:
      true if all server certificates should be trusted
    • setTrustAll

      public ClientOptionsBase setTrustAll(boolean trustAll)
      Set whether all server certificates should be trusted
      Parameters:
      trustAll - true if all should be trusted
      Returns:
      a reference to this, so the API can be used fluently
    • getConnectTimeout

      public int getConnectTimeout()
      Returns:
      the value of connect timeout
    • setConnectTimeout

      public ClientOptionsBase setConnectTimeout(int connectTimeout)
      Set the connect timeout
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
    • getMetricsName

      public String getMetricsName()
      Returns:
      the metrics name identifying the reported metrics.
    • setMetricsName

      public ClientOptionsBase setMetricsName(String metricsName)
      Set the metrics name identifying the reported metrics, useful for grouping metrics with the same name.
      Parameters:
      metricsName - the metrics name
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyOptions

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

      public ProxyOptions getProxyOptions()
      Get proxy options for connections
      Returns:
      proxy options
    • getNonProxyHosts

      public List<String> getNonProxyHosts()
      Returns:
      the list of non proxies hosts
    • setNonProxyHosts

      public ClientOptionsBase setNonProxyHosts(List<String> nonProxyHosts)
      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.

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

      public ClientOptionsBase addNonProxyHost(String host)
      Add a host to the getNonProxyHosts() list.
      Parameters:
      host - the added host
      Returns:
      a reference to this, so the API can be used fluently
    • getLocalAddress

      public String getLocalAddress()
      Returns:
      the local interface to bind for network connections.
    • setLocalAddress

      public ClientOptionsBase setLocalAddress(String localAddress)
      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.
      Parameters:
      localAddress - the local address
      Returns:
      a reference to this, so the API can be used fluently
    • setLogActivity

      public ClientOptionsBase 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 TCPSSLOptions
      Parameters:
      logEnabled - true for logging the network activity
      Returns:
      a reference to this, so the API can be used fluently
    • setActivityLogDataFormat

      public ClientOptionsBase 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 NetworkOptions
      Parameters:
      activityLogDataFormat - the format to use
      Returns:
      a reference to this, so the API can be used fluently
    • setTcpNoDelay

      public ClientOptionsBase setTcpNoDelay(boolean tcpNoDelay)
      Description copied from class: TCPSSLOptions
      Set whether TCP no delay is enabled
      Overrides:
      setTcpNoDelay in class TCPSSLOptions
      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 ClientOptionsBase setTcpKeepAlive(boolean tcpKeepAlive)
      Description copied from class: TCPSSLOptions
      Set whether TCP keep alive is enabled
      Overrides:
      setTcpKeepAlive in class TCPSSLOptions
      Parameters:
      tcpKeepAlive - true if TCP keep alive is enabled
      Returns:
      a reference to this, so the API can be used fluently
    • setSoLinger

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

      public ClientOptionsBase 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 TCPSSLOptions
      Parameters:
      idleTimeout - the timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setReadIdleTimeout

      public ClientOptionsBase 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 TCPSSLOptions
      Parameters:
      idleTimeout - the read timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setWriteIdleTimeout

      public ClientOptionsBase 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 TCPSSLOptions
      Parameters:
      idleTimeout - the write timeout
      Returns:
      a reference to this, so the API can be used fluently
    • setIdleTimeoutUnit

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

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

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

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

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

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

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

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

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

      public ClientOptionsBase 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 TCPSSLOptions
      Parameters:
      reusePort - the value of reuse port
      Returns:
      a reference to this, so the API can be used fluently
    • setTrafficClass

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

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

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

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

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

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

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

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

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

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

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