Class ConnectionOptions

java.lang.Object
org.apache.qpid.protonj2.client.ConnectionOptions
All Implemented Interfaces:
Cloneable

public class ConnectionOptions extends Object implements Cloneable
Options that control the behavior of the Connection created from them.
  • Field Details

    • DEFAULT_DESIRED_CAPABILITIES

      public static final List<String> DEFAULT_DESIRED_CAPABILITIES
    • INFINITE

      public static final long INFINITE
      See Also:
    • DEFAULT_OPEN_TIMEOUT

      public static final long DEFAULT_OPEN_TIMEOUT
      See Also:
    • DEFAULT_CLOSE_TIMEOUT

      public static final long DEFAULT_CLOSE_TIMEOUT
      See Also:
    • DEFAULT_SEND_TIMEOUT

      public static final long DEFAULT_SEND_TIMEOUT
      See Also:
    • DEFAULT_REQUEST_TIMEOUT

      public static final long DEFAULT_REQUEST_TIMEOUT
      See Also:
    • DEFAULT_IDLE_TIMEOUT

      public static final long DEFAULT_IDLE_TIMEOUT
      See Also:
    • DEFAULT_DRAIN_TIMEOUT

      public static final long DEFAULT_DRAIN_TIMEOUT
      See Also:
    • DEFAULT_CHANNEL_MAX

      public static final int DEFAULT_CHANNEL_MAX
      See Also:
    • DEFAULT_MAX_FRAME_SIZE

      public static final int DEFAULT_MAX_FRAME_SIZE
      See Also:
    • DEFAULT_NEXT_RECEIVER_POLICY

      public static final NextReceiverPolicy DEFAULT_NEXT_RECEIVER_POLICY
  • Constructor Details

    • ConnectionOptions

      public ConnectionOptions()
      Create a new ConnectionOptions instance configured with default configuration settings.
    • ConnectionOptions

      public ConnectionOptions(ConnectionOptions options)
      Creates a ConnectionOptions instance that is a copy of the given instance.
      Parameters:
      options - The ConnectionOptions instance whose configuration should be copied to this one.
  • Method Details

    • clone

      public ConnectionOptions clone()
      Overrides:
      clone in class Object
    • copyInto

      protected ConnectionOptions copyInto(ConnectionOptions other)
      Copy all options from this ConnectionOptions instance into the instance provided.
      Parameters:
      other - the target of this copy operation.
      Returns:
      the ConnectionOptions instance that was given.
    • closeTimeout

      public long closeTimeout()
      Returns:
      the timeout used when awaiting a response from the remote when a resource is closed.
    • closeTimeout

      public ConnectionOptions closeTimeout(long closeTimeout)
      Configures the timeout used when awaiting a response from the remote that a request to close a resource such as a Connection, Session, Sender or Receiver h as been honored.
      Parameters:
      closeTimeout - Timeout value in milliseconds to wait for a remote response.
      Returns:
      this ConnectionOptions instance.
    • closeTimeout

      public ConnectionOptions closeTimeout(long timeout, TimeUnit units)
      Configures the timeout used when awaiting a response from the remote that a request to close a resource such as a Connection, Session, Sender or Receiver h as been honored.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • openTimeout

      public long openTimeout()
      Returns:
      the timeout used when awaiting a response from the remote when a resource is opened.
    • openTimeout

      public ConnectionOptions openTimeout(long openTimeout)
      Configures the timeout used when awaiting a response from the remote that a request to open a resource such as a Connection, Session, Sender or Receiver has been honored.
      Parameters:
      openTimeout - Timeout value in milliseconds to wait for a remote response.
      Returns:
      this ConnectionOptions instance.
    • openTimeout

      public ConnectionOptions openTimeout(long timeout, TimeUnit units)
      Configures the timeout used when awaiting a response from the remote that a request to open a resource such as a Connection, Session, Sender or Receiver has been honored.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • sendTimeout

      public long sendTimeout()
      Returns:
      the timeout used when awaiting a response from the remote when a resource is message send.
    • sendTimeout

      public ConnectionOptions sendTimeout(long sendTimeout)
      Configures the timeout used when awaiting a send operation to complete. A send will block if the remote has not granted the Sender or the Session credit to do so, if the send blocks for longer than this timeout the send call will fail with an ClientSendTimedOutException exception to indicate that the send did not complete.
      Parameters:
      sendTimeout - Timeout value in milliseconds to wait for a remote response.
      Returns:
      this ConnectionOptions instance.
    • sendTimeout

      public ConnectionOptions sendTimeout(long timeout, TimeUnit units)
      Configures the timeout used when awaiting a send operation to complete. A send will block if the remote has not granted the Sender or the Session credit to do so, if the send blocks for longer than this timeout the send call will fail with an ClientSendTimedOutException exception to indicate that the send did not complete.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • requestTimeout

      public long requestTimeout()
      Returns:
      the timeout used when awaiting a response from the remote when a resource makes a request.
    • requestTimeout

      public ConnectionOptions requestTimeout(long requestTimeout)
      Configures the timeout used when awaiting a response from the remote that a request to perform some action such as starting a new transaction. If the remote does not respond within the configured timeout the resource making the request will mark it as failed and return an error to the request initiator usually in the form of a ClientOperationTimedOutException.
      Parameters:
      requestTimeout - Timeout value in milliseconds to wait for a remote response.
      Returns:
      this ConnectionOptions instance.
    • requestTimeout

      public ConnectionOptions requestTimeout(long timeout, TimeUnit units)
      Configures the timeout used when awaiting a response from the remote that a request to perform some action such as starting a new transaction. If the remote does not respond within the configured timeout the resource making the request will mark it as failed and return an error to the request initiator usually in the form of a ClientOperationTimedOutException.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • channelMax

      public int channelMax()
      Returns:
      the configured or default channel max value for create Connection instances.
    • channelMax

      public ConnectionOptions channelMax(int channelMax)
      Configure the channel maximum value for the new Connection created with these options.

      The channel max value controls how many Session instances can be created by a given Connection, the default value is 65535.

      Parameters:
      channelMax - The channel max value to assign to newly created Connection instances.
      Returns:
      this ConnectionOptions instance.
    • maxFrameSize

      public int maxFrameSize()
      Returns:
      the configure maximum frame size value for newly create Connection instances.
    • maxFrameSize

      public ConnectionOptions maxFrameSize(int maxFrameSize)
      Sets the max frame size (in bytes), values of -1 indicates to use the client selected default.
      Parameters:
      maxFrameSize - the frame size in bytes.
      Returns:
      this ConnectionOptions instance.
    • idleTimeout

      public long idleTimeout()
      Returns:
      the configured idle timeout value that will be sent to the remote.
    • idleTimeout

      public ConnectionOptions idleTimeout(long idleTimeout)
      Sets the idle timeout (in milliseconds) after which the connection will be closed if the peer has not send any data. The provided value will be halved before being transmitted as our advertised idle-timeout in the AMQP Open frame.
      Parameters:
      idleTimeout - the timeout in milliseconds.
      Returns:
      this ConnectionOptions instance.
    • idleTimeout

      public ConnectionOptions idleTimeout(long timeout, TimeUnit units)
      Sets the idle timeout value after which the connection will be closed if the peer has not send any data. The provided value will be halved before being transmitted as our advertised idle-timeout in the AMQP Open frame.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • drainTimeout

      public long drainTimeout()
      Returns:
      the configured drain timeout value that will use to fail a pending drain request.
    • drainTimeout

      public ConnectionOptions drainTimeout(long drainTimeout)
      Sets the drain timeout (in milliseconds) after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
      Parameters:
      drainTimeout - the drainTimeout to use for receiver links.
      Returns:
      this ConnectionOptions instance.
    • drainTimeout

      public ConnectionOptions drainTimeout(long timeout, TimeUnit units)
      Sets the drain timeout value after which a Receiver request to drain link credit is considered failed and the request will be marked as such.
      Parameters:
      timeout - Timeout value to wait for a remote response.
      units - The TimeUnit that defines the timeout span.
      Returns:
      this ConnectionOptions instance.
    • offeredCapabilities

      public String[] offeredCapabilities()
      Returns:
      the offeredCapabilities that have been configured.
    • offeredCapabilities

      public ConnectionOptions offeredCapabilities(String... offeredCapabilities)
      Sets the collection of capabilities to offer to the remote from a new Connection created using these ConnectionOptions. The offered capabilities advertise to the remote capabilities that this Connection supports.
      Parameters:
      offeredCapabilities - the offeredCapabilities to set on a new Connection.
      Returns:
      this ConnectionOptions instance.
    • desiredCapabilities

      public String[] desiredCapabilities()
      Returns:
      the desiredCapabilities that have been configured.
    • desiredCapabilities

      public ConnectionOptions desiredCapabilities(String... desiredCapabilities)
      Sets the collection of capabilities to request from the remote for a new Connection created using these ConnectionOptions. The desired capabilities inform the remote peer of the various capabilities the new Connection requires and the remote should return those that it supports in its offered capabilities.
      Parameters:
      desiredCapabilities - the desiredCapabilities to set on a new Connection.
      Returns:
      this ConnectionOptions instance.
    • properties

      public Map<String,Object> properties()
      Returns:
      the properties that have been configured.
    • properties

      public ConnectionOptions properties(Map<String,Object> properties)
      Sets a Map of properties to convey to the remote when a new Connection is created from these ConnectionOptions.
      Parameters:
      properties - the properties to set
      Returns:
      this ConnectionOptions instance.
    • virtualHost

      public String virtualHost()
      Returns:
      the virtual host value configured.
    • virtualHost

      public ConnectionOptions virtualHost(String virtualHost)
      The virtual host value to provide to the remote when creating a new Connection.

      A value of null signifies that the client should send the host value used to connect to the remote in the SASLInit and Open performatives, otherwise the value provided is sent unless empty string is provided in which case no AMQP host value is sent in either the SASLInit or the Open performative allowing the remote to select from a configured default.

      Parameters:
      virtualHost - the virtual host to set
      Returns:
      this ConnectionOptions instance.
    • user

      public String user()
      Returns:
      the user name that is configured for new Connection instances.
    • user

      public ConnectionOptions user(String user)
      Sets the user name used when performing connection authentication.
      Parameters:
      user - the user to set
      Returns:
      this ConnectionOptions instance.
    • password

      public String password()
      Returns:
      the password that is configured for new Connection instances.
    • password

      public ConnectionOptions password(String password)
      Sets the password used when performing connection authentication.
      Parameters:
      password - the password to set
      Returns:
      this ConnectionOptions instance.
    • transportOptions

      public TransportOptions transportOptions()
      Returns:
      the transport options that will be used for the Connection.
    • sslOptions

      public SslOptions sslOptions()
      Returns:
      the SSL options that will be used for the Connection.
    • saslOptions

      public SaslOptions saslOptions()
      Returns:
      the SASL options that will be used for the Connection.
    • reconnectEnabled

      public boolean reconnectEnabled()
      Returns:
      true if reconnection support has been enabled for this connection.
    • reconnectEnabled

      public ConnectionOptions reconnectEnabled(boolean reconnectEnabled)
      Controls if the connection will attempt to reconnect if unable to connect immediately or if an existing connection fails (default is disabled).

      This option enables or disables reconnection to a remote peer after IO errors or remote forcibly closing the connection. To control specifics of the reconnection configuration for the Connection the values must be updated in the ReconnectOptions configuration prior to creating the connection.

      Parameters:
      reconnectEnabled - Controls if reconnection is enabled or not for the associated Connection.
      Returns:
      this options instance.
    • reconnectOptions

      public ReconnectOptions reconnectOptions()
      Returns:
      the reconnection options that will be used for the Connection.
    • traceFrames

      public ConnectionOptions traceFrames(boolean traceFrames)
      Configure if the newly created connection should enabled AMQP frame tracing to the system output.
      Parameters:
      traceFrames - true if frame tracing on this connection should be enabled.
      Returns:
      this ConnectionOptions instance.
    • traceFrames

      public boolean traceFrames()
      Returns:
      true if the connection is configured to perform frame tracing.
    • sslEnabled

      public boolean sslEnabled()
      Returns:
      true if SSL support has been enabled for this connection.
    • sslEnabled

      public ConnectionOptions sslEnabled(boolean sslEnabled)
      Controls if the connection will attempt to connect using a secure IO layer or not.

      This option enables or disables SSL encryption when connecting to a remote peer. To control specifics of the SSL configuration for the Connection the values must be updated in the SslOptions configuration prior to creating the connection.

      Parameters:
      sslEnabled - Is SSL encryption enabled for the Connection.
      Returns:
      this ConnectionOptions instance.
    • defaultNextReceiverPolicy

      public NextReceiverPolicy defaultNextReceiverPolicy()
      Returns:
      the configured default next receiver policy for the connection.
    • defaultNextReceiverPolicy

      public ConnectionOptions defaultNextReceiverPolicy(NextReceiverPolicy policy)
      Configures the default next receiver policy for this connection and any session that is created without specifying user defined session default options.
      Parameters:
      policy - The next receiver policy to assign as the default.
      Returns:
      this ConnectionOptions instance.
    • disconnectedHandler

      public BiConsumer<Connection,DisconnectionEvent> disconnectedHandler()
      Returns:
      the connection failed handler currently registered.
    • disconnectedHandler

      public ConnectionOptions disconnectedHandler(BiConsumer<Connection,DisconnectionEvent> disconnectedHandler)
      Configures a handler that will be notified when the connection has failed and cannot be recovered should reconnect be enabled. Once notified of the failure the Connection is no longer operable and the Connection APIs will throw an exception to indicate that the connection has failed. The client application should close a failed Connection once it becomes aware of the failure to ensure all connection resources are cleaned up properly.
      Parameters:
      disconnectedHandler - the connection failed handler to notify when the connection fails for any reason.
      Returns:
      this ConnectionOptions instance.
      See Also:
      • interruptedHandler
      • connectedHandler
      • disconnectedHandler
    • connectedHandler

      public BiConsumer<Connection,ConnectionEvent> connectedHandler()
      Returns:
      the connection established handler that is currently registered
    • connectedHandler

      public ConnectionOptions connectedHandler(BiConsumer<Connection,ConnectionEvent> connectedHandler)
      Configures a handler that will be notified when a Connection has established. This handler is called for each connection event when reconnection is enabled unless a reconnectedHandler is configured in which case this handler is only notified on the first connection to a remote.
      Parameters:
      connectedHandler - the connection established handler to assign to these ConnectionOptions.
      Returns:
      this ConnectionOptions instance.
      See Also:
    • interruptedHandler

      public BiConsumer<Connection,DisconnectionEvent> interruptedHandler()
      Returns:
      the connection interrupted handler that is currently registered
    • interruptedHandler

      public ConnectionOptions interruptedHandler(BiConsumer<Connection,DisconnectionEvent> interruptedHandler)
      Configures a handler that will be notified when the current Connection experiences an interruption. The Connection will only signal this handler when the reconnection feature is enabled and will follow this event either with a notification that the connection has been restored (if a handler is registered), or with a notification that the connection has failed if the reconnection configuration places limits on the the number of reconnection attempts.
      Parameters:
      interruptedHandler - the connection interrupted handler to assign to these ConnectionOptions.
      Returns:
      this ReconnectOptions instance.
      See Also:
      • connectedHandler
      • reconnectedHandler
      • disconnectedHandler
    • reconnectedHandler

      public BiConsumer<Connection,ConnectionEvent> reconnectedHandler()
      Returns:
      the connection restored handler that is currently registered
    • reconnectedHandler

      public ConnectionOptions reconnectedHandler(BiConsumer<Connection,ConnectionEvent> reconnectedHandler)
      Configures a handler that will be notified when a Connection that has previously experienced and interruption has been reconnected to a remote based on the reconnection configuration.
      Parameters:
      reconnectedHandler - the connection restored handler to assign to these ConnectionOptions.
      Returns:
      this ReconnectOptions instance.
      See Also:
      • connectedHandler
      • interruptedHandler
      • disconnectedHandler