Class NetServerOptions

Direct Known Subclasses:
HttpServerOptions, MqttServerOptions, StompServerOptions, TelnetTermOptions

public class NetServerOptions extends TCPSSLOptions
Options for configuring a NetServer.
Author:
Tim Fox
  • Field Details

    • DEFAULT_PORT

      public static final int DEFAULT_PORT
      The default port to listen on = 0 (meaning a random ephemeral free port will be chosen)
      See Also:
    • DEFAULT_HOST

      public static final String DEFAULT_HOST
      The default host to listen on = "0.0.0.0" (meaning listen on all available interfaces).
      See Also:
    • DEFAULT_ACCEPT_BACKLOG

      public static final int DEFAULT_ACCEPT_BACKLOG
      The default accept backlog = 1024
      See Also:
    • DEFAULT_USE_PROXY_PROTOCOL

      public static final boolean DEFAULT_USE_PROXY_PROTOCOL
      Default value of whether the server supports HA PROXY protocol = false
      See Also:
    • DEFAULT_PROXY_PROTOCOL_TIMEOUT

      public static final long DEFAULT_PROXY_PROTOCOL_TIMEOUT
      The default value of HA PROXY protocol timeout = 10
      See Also:
    • DEFAULT_PROXY_PROTOCOL_TIMEOUT_TIME_UNIT

      public static final TimeUnit DEFAULT_PROXY_PROTOCOL_TIMEOUT_TIME_UNIT
      Default HA PROXY protocol time unit = SECONDS
    • 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

    • NetServerOptions

      public NetServerOptions()
      Default constructor
    • NetServerOptions

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

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

    • copy

      public NetServerOptions copy()
      Copy these options.
      Returns:
      a copy of this
    • toJson

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

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

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

      protected ServerSSLOptions createSSLOptions()
      Overrides:
      createSSLOptions in class TCPSSLOptions
    • setSendBufferSize

      public NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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
    • setTcpNoDelay

      public NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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
    • setUseAlpn

      public NetServerOptions 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 NetServerOptions 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
    • setKeyCertOptions

      public NetServerOptions 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 NetServerOptions 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
    • addEnabledCipherSuite

      public NetServerOptions 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 NetServerOptions 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
    • addEnabledSecureTransportProtocol

      public NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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 NetServerOptions 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
    • addCrlPath

      public NetServerOptions 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 NetServerOptions 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
    • setEnabledSecureTransportProtocols

      public NetServerOptions 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 NetServerOptions 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 NetServerOptions 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
    • getAcceptBacklog

      public int getAcceptBacklog()
      Returns:
      the value of accept backlog
    • setAcceptBacklog

      public NetServerOptions setAcceptBacklog(int acceptBacklog)
      Set the accept back log
      Parameters:
      acceptBacklog - accept backlog
      Returns:
      a reference to this, so the API can be used fluently
    • getPort

      public int getPort()
      Returns:
      the port
    • setPort

      public NetServerOptions setPort(int port)
      Set the port
      Parameters:
      port - the port
      Returns:
      a reference to this, so the API can be used fluently
    • getHost

      public String getHost()
      Returns:
      the host
    • setHost

      public NetServerOptions setHost(String host)
      Set the host
      Parameters:
      host - the host
      Returns:
      a reference to this, so the API can be used fluently
    • getClientAuth

      public ClientAuth getClientAuth()
    • setClientAuth

      public NetServerOptions setClientAuth(ClientAuth clientAuth)
      Set whether client auth is required
      Parameters:
      clientAuth - One of "NONE, REQUEST, REQUIRED". If it's set to "REQUIRED" then server will require the SSL cert to be presented otherwise it won't accept the request. If it's set to "REQUEST" then it won't mandate the certificate to be presented, basically make it optional.
      Returns:
      a reference to this, so the API can be used fluently
    • setLogActivity

      public NetServerOptions 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 NetServerOptions 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
    • isSni

      public boolean isSni()
      Returns:
      whether the server supports Server Name Indication
    • setSni

      public NetServerOptions setSni(boolean sni)
      Set whether the server supports Server Name Indiciation
      Returns:
      a reference to this, so the API can be used fluently
    • isUseProxyProtocol

      public boolean isUseProxyProtocol()
      Returns:
      whether the server uses the HA Proxy protocol
    • setUseProxyProtocol

      public NetServerOptions setUseProxyProtocol(boolean useProxyProtocol)
      Set whether the server uses the HA Proxy protocol
      Returns:
      a reference to this, so the API can be used fluently
    • getProxyProtocolTimeout

      public long getProxyProtocolTimeout()
      Returns:
      the Proxy protocol timeout, in time unit specified by getProxyProtocolTimeoutUnit().
    • setProxyProtocolTimeout

      public NetServerOptions setProxyProtocolTimeout(long proxyProtocolTimeout)
      Set the Proxy protocol timeout, default time unit is seconds.
      Parameters:
      proxyProtocolTimeout - the Proxy protocol timeout to set
      Returns:
      a reference to this, so the API can be used fluently
    • setProxyProtocolTimeoutUnit

      public NetServerOptions setProxyProtocolTimeoutUnit(TimeUnit proxyProtocolTimeoutUnit)
      Set the Proxy protocol timeout unit. If not specified, default is seconds.
      Parameters:
      proxyProtocolTimeoutUnit - specify time unit.
      Returns:
      a reference to this, so the API can be used fluently
    • getProxyProtocolTimeoutUnit

      public TimeUnit getProxyProtocolTimeoutUnit()
      Returns:
      the Proxy protocol timeout unit.
    • getTrafficShapingOptions

      public TrafficShapingOptions getTrafficShapingOptions()
      Returns:
      traffic shaping options used by Net server.
    • setTrafficShapingOptions

      public NetServerOptions setTrafficShapingOptions(TrafficShapingOptions trafficShapingOptions)
      Set traffic shaping options. If not specified, traffic is unthrottled.
      Parameters:
      trafficShapingOptions - options used by traffic handler
      Returns:
      a reference to this, so the API can be used fluently
    • isRegisterWriteHandler

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

      public NetServerOptions 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:
    • isFileRegionEnabled

      public boolean isFileRegionEnabled()
      Returns:
      whether the server should use file region