Class EventBusOptions


public class EventBusOptions extends TCPSSLOptions
Options to configure the event bus.
Author:
Clement Escoffier
  • Field Details

    • DEFAULT_CLUSTER_HOST

      public static final String DEFAULT_CLUSTER_HOST
      The default cluster host = null which means use the same as the cluster manager, if possible.
    • DEFAULT_CLUSTER_PORT

      public static final int DEFAULT_CLUSTER_PORT
      The default cluster port = 0 which means assign a random port.
      See Also:
    • DEFAULT_CLUSTER_PUBLIC_HOST

      public static final String DEFAULT_CLUSTER_PUBLIC_HOST
      The default cluster public host = null which means use the same as the cluster host.
    • DEFAULT_CLUSTER_PUBLIC_PORT

      public static final int DEFAULT_CLUSTER_PUBLIC_PORT
      The default cluster public port = -1 which means use the same as the cluster port.
      See Also:
    • DEFAULT_CLUSTER_PING_INTERVAL

      public static final long DEFAULT_CLUSTER_PING_INTERVAL
      The default value of cluster ping interval = 20000 ms.
    • DEFAULT_CLUSTER_PING_REPLY_INTERVAL

      public static final long DEFAULT_CLUSTER_PING_REPLY_INTERVAL
      The default value of cluster ping reply interval = 20000 ms.
    • DEFAULT_ACCEPT_BACKLOG

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

      public static final ClientAuth DEFAULT_CLIENT_AUTH
      Default value of whether client auth is required (SSL/TLS) = No
    • 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_CONNECT_TIMEOUT

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

      public static final boolean DEFAULT_TRUST_ALL
      The default value of whether all servers (SSL/TLS) should be trusted = true
      See Also:
  • Constructor Details

    • EventBusOptions

      public EventBusOptions()
      Creates a new instance of EventBusOptions using the default configuration.
    • EventBusOptions

      public EventBusOptions(EventBusOptions other)
      Copy constructor to create an instance of EventBusOptions using the values of the given object.
      Parameters:
      other - the other EventBusOptions
    • EventBusOptions

      public EventBusOptions(JsonObject json)
      Creates a new instance of EventBusOptions from the JSON object. This JSOn object has (generally) be generated using toJson().
      Parameters:
      json - the json object
  • Method Details

    • toJson

      public JsonObject toJson()
      Builds a JSON object representing the current EventBusOptions.
      Overrides:
      toJson in class TCPSSLOptions
      Returns:
      the JSON representation
    • getClientAuth

      public ClientAuth getClientAuth()
      Returns:
      the configure client authentication requirement
      See Also:
    • setClientAuth

      public EventBusOptions 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
      See Also:
    • getAcceptBacklog

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

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

      public String getHost()
      Returns:
      the host or null if the clustered eventbus should try to pick one automatically
    • setHost

      public EventBusOptions setHost(String host)
      Sets the host. Defaults to null.

      When the clustered eventbus starts, it tries to bind to the provided host. If host is null, then it tries to bind to the same host as the underlying cluster manager. As a last resort, an address will be picked among the available network interfaces.

      Parameters:
      host - the host
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • getPort

      public int getPort()
      Returns:
      the port, which can be configured from the setPort(int), or using the --cluster-port command line option.
      See Also:
    • setPort

      public EventBusOptions setPort(int port)
      Sets the port.
      Parameters:
      port - the port
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • getReconnectAttempts

      public int getReconnectAttempts()
      Returns:
      the value of reconnect attempts
      See Also:
    • setReconnectAttempts

      public EventBusOptions setReconnectAttempts(int attempts)
      Sets 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
      See Also:
    • getReconnectInterval

      public long getReconnectInterval()
      Returns:
      the value of reconnect interval
      See Also:
    • setReconnectInterval

      public EventBusOptions 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
      See Also:
    • addCrlPath

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

      public EventBusOptions 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 EventBusOptions 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
    • setIdleTimeout

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

      public EventBusOptions 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
    • setSoLinger

      public EventBusOptions 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
    • setSsl

      public EventBusOptions 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
    • setTcpKeepAlive

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

      public EventBusOptions 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
    • setTrustOptions

      public EventBusOptions 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
    • setReceiveBufferSize

      public EventBusOptions 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 EventBusOptions 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 EventBusOptions 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
    • setSendBufferSize

      public EventBusOptions 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
    • setTrafficClass

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

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

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

      public EventBusOptions 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 EventBusOptions 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 EventBusOptions 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 EventBusOptions 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 EventBusOptions 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 EventBusOptions 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
    • setLogActivity

      public EventBusOptions 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
    • setSslHandshakeTimeout

      public EventBusOptions 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 EventBusOptions 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
    • setTrustAll

      public EventBusOptions 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
      See Also:
    • isTrustAll

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

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

      public EventBusOptions setConnectTimeout(int connectTimeout)
      Sets the connect timeout
      Parameters:
      connectTimeout - connect timeout, in ms
      Returns:
      a reference to this, so the API can be used fluently
      See Also:
    • getClusterPingInterval

      public long getClusterPingInterval()
      Get the value of cluster ping reply interval, in ms. After sending a ping, if a pong is not received in this time, the node will be considered dead.
      Returns:
      the value of cluster ping reply interval
    • setClusterPingInterval

      public EventBusOptions setClusterPingInterval(long clusterPingInterval)
      Set the value of cluster ping interval, in ms.
      Parameters:
      clusterPingInterval - The value of cluster ping interval, in ms.
      Returns:
      a reference to this, so the API can be used fluently
    • getClusterPingReplyInterval

      public long getClusterPingReplyInterval()
      Get the value of cluster ping reply interval, in ms. After sending a ping, if a pong is not received in this time, the node will be considered dead.
      Returns:
      the value of cluster ping reply interval
    • setClusterPingReplyInterval

      public EventBusOptions setClusterPingReplyInterval(long clusterPingReplyInterval)
      Set the value of cluster ping reply interval, in ms.
      Parameters:
      clusterPingReplyInterval - The value of cluster ping reply interval, in ms.
      Returns:
      a reference to this, so the API can be used fluently
    • getClusterPublicHost

      public String getClusterPublicHost()
      Get the public facing host to be used when clustering.
      Returns:
      the public facing port
    • setClusterPublicHost

      public EventBusOptions setClusterPublicHost(String clusterPublicHost)
      Set the public facing hostname to be used for clustering. Sometimes, e.g. when running on certain clouds, the local address the server listens on for clustering is not the same address that other nodes connect to it at, as the OS / cloud infrastructure does some kind of proxying. If this is the case you can specify a public hostname which is different from the hostname the server listens at.

      The default value is null which means use the same as the cluster hostname.

      Parameters:
      clusterPublicHost - the public host name to use
      Returns:
      a reference to this, so the API can be used fluently
    • getClusterPublicPort

      public int getClusterPublicPort()
      Gets the public facing port to be used when clustering.
      Returns:
      the public facing port
    • setClusterPublicPort

      public EventBusOptions setClusterPublicPort(int clusterPublicPort)
      See setClusterPublicHost(String) for an explanation.
      Parameters:
      clusterPublicPort - the public port to use
      Returns:
      a reference to this, so the API can be used fluently
    • getClusterNodeMetadata

      public JsonObject getClusterNodeMetadata()
      User-supplied information about this node when Vert.x is clustered.

      The data may be to select a node for a given message. For example, it could be used to implement a partioning strategy.

      Not used by default.

      Returns:
      user-supplied information about this node when Vert.x is clustered
    • setClusterNodeMetadata

      public EventBusOptions setClusterNodeMetadata(JsonObject clusterNodeMetadata)
      Set information about this node when Vert.x is clustered.

      The data may be used to select a node for a given message. For example, it could be used to implement a partioning strategy.

      Not used by default.

      Parameters:
      clusterNodeMetadata - user-supplied information about this node when Vert.x is clustered
      Returns:
      a reference to this, so the API can be used fluently