Package org.apache.qpid.protonj2.client
Class ConnectionOptions
- java.lang.Object
-
- org.apache.qpid.protonj2.client.ConnectionOptions
-
public class ConnectionOptions extends java.lang.ObjectOptions that control the behaviour of theConnectioncreated from them.
-
-
Field Summary
Fields Modifier and Type Field Description static intDEFAULT_CHANNEL_MAXstatic longDEFAULT_CLOSE_TIMEOUTstatic java.util.List<java.lang.String>DEFAULT_DESIRED_CAPABILITIESstatic longDEFAULT_DRAIN_TIMEOUTstatic longDEFAULT_IDLE_TIMEOUTstatic intDEFAULT_MAX_FRAME_SIZEstatic longDEFAULT_OPEN_TIMEOUTstatic longDEFAULT_REQUEST_TIMEOUTstatic longDEFAULT_SEND_TIMEOUTstatic longINFINITE
-
Constructor Summary
Constructors Constructor Description ConnectionOptions()Create a newConnectionOptionsinstance configured with default configuration settings.ConnectionOptions(ConnectionOptions options)Creates aConnectionOptionsinstance that is a copy of the given instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intchannelMax()ConnectionOptionschannelMax(int channelMax)Configure the channel maximum value for the newConnectioncreated with these options.ConnectionOptionsclone()longcloseTimeout()ConnectionOptionscloseTimeout(long closeTimeout)Configures the timeout used when awaiting a response from the remote that a request to close a resource such as aConnection,Session,SenderorReceiverh as been honored.ConnectionOptionscloseTimeout(long timeout, java.util.concurrent.TimeUnit units)Configures the timeout used when awaiting a response from the remote that a request to close a resource such as aConnection,Session,SenderorReceiverh as been honored.java.util.function.BiConsumer<Connection,ConnectionEvent>connectedHandler()ConnectionOptionsconnectedHandler(java.util.function.BiConsumer<Connection,ConnectionEvent> connectedHandler)Configures a handler that will be notified when aConnectionhas established.protected ConnectionOptionscopyInto(ConnectionOptions other)Copy all options from thisConnectionOptionsinstance into the instance provided.java.lang.String[]desiredCapabilities()ConnectionOptionsdesiredCapabilities(java.lang.String... desiredCapabilities)Sets the collection of capabilities to request from the remote for a newConnectioncreated using theseConnectionOptions.java.util.function.BiConsumer<Connection,DisconnectionEvent>disconnectedHandler()ConnectionOptionsdisconnectedHandler(java.util.function.BiConsumer<Connection,DisconnectionEvent> disconnectedHandler)Configures a handler that will be notified when the connection has failed and cannot be recovered should reconnect be enabled.longdrainTimeout()ConnectionOptionsdrainTimeout(long drainTimeout)Sets the drain timeout (in milliseconds) after which aReceiverrequest to drain link credit is considered failed and the request will be marked as such.ConnectionOptionsdrainTimeout(long timeout, java.util.concurrent.TimeUnit units)Sets the drain timeout value after which aReceiverrequest to drain link credit is considered failed and the request will be marked as such.longidleTimeout()ConnectionOptionsidleTimeout(long idleTimeout)Sets the idle timeout (in milliseconds) after which the connection will be closed if the peer has not send any data.ConnectionOptionsidleTimeout(long timeout, java.util.concurrent.TimeUnit units)Sets the idle timeout value after which the connection will be closed if the peer has not send any data.java.util.function.BiConsumer<Connection,DisconnectionEvent>interruptedHandler()ConnectionOptionsinterruptedHandler(java.util.function.BiConsumer<Connection,DisconnectionEvent> interruptedHandler)Configures a handler that will be notified when the currentConnectionexperiences an interruption.intmaxFrameSize()ConnectionOptionsmaxFrameSize(int maxFrameSize)Sets the max frame size (in bytes), values of -1 indicates to use the client selected default.java.lang.String[]offeredCapabilities()ConnectionOptionsofferedCapabilities(java.lang.String... offeredCapabilities)Sets the collection of capabilities to offer to the remote from a newConnectioncreated using theseConnectionOptions.longopenTimeout()ConnectionOptionsopenTimeout(long openTimeout)Configures the timeout used when awaiting a response from the remote that a request to open a resource such as aConnection,Session,SenderorReceiverhas been honored.ConnectionOptionsopenTimeout(long timeout, java.util.concurrent.TimeUnit units)Configures the timeout used when awaiting a response from the remote that a request to open a resource such as aConnection,Session,SenderorReceiverhas been honored.java.lang.Stringpassword()ConnectionOptionspassword(java.lang.String password)Sets the password used when performing connection authentication.java.util.Map<java.lang.String,java.lang.Object>properties()ConnectionOptionsproperties(java.util.Map<java.lang.String,java.lang.Object> properties)Sets aMapof properties to convey to the remote when a newConnectionis created from theseConnectionOptions.java.util.function.BiConsumer<Connection,ConnectionEvent>reconnectedHandler()ConnectionOptionsreconnectedHandler(java.util.function.BiConsumer<Connection,ConnectionEvent> reconnectedHandler)Configures a handler that will be notified when aConnectionthat has previously experienced and interruption has been reconnected to a remote based on the reconnection configuration.booleanreconnectEnabled()ConnectionOptionsreconnectEnabled(boolean reconnectEnabled)Controls if the connection will attempt to reconnect if unable to connect immediately or if an existing connection fails.ReconnectOptionsreconnectOptions()longrequestTimeout()ConnectionOptionsrequestTimeout(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.ConnectionOptionsrequestTimeout(long timeout, java.util.concurrent.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.SaslOptionssaslOptions()longsendTimeout()ConnectionOptionssendTimeout(long sendTimeout)Configures the timeout used when awaiting a send operation to complete.ConnectionOptionssendTimeout(long timeout, java.util.concurrent.TimeUnit units)Configures the timeout used when awaiting a send operation to complete.booleansslEnabled()ConnectionOptionssslEnabled(boolean sslEnabled)Controls if the connection will attempt to connect using a secure IO layer or not.SslOptionssslOptions()booleantraceFrames()ConnectionOptionstraceFrames(boolean traceFrames)Configure if the newly created connection should enabled AMQP frame tracing to the system output.TransportOptionstransportOptions()java.lang.Stringuser()ConnectionOptionsuser(java.lang.String user)Sets the user name used when performing connection authentication.java.lang.StringvirtualHost()ConnectionOptionsvirtualHost(java.lang.String virtualHost)The virtual host value to provide to the remote when creating a newConnection.
-
-
-
Field Detail
-
DEFAULT_DESIRED_CAPABILITIES
public static final java.util.List<java.lang.String> DEFAULT_DESIRED_CAPABILITIES
-
INFINITE
public static final long INFINITE
- See Also:
- Constant Field Values
-
DEFAULT_OPEN_TIMEOUT
public static final long DEFAULT_OPEN_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_CLOSE_TIMEOUT
public static final long DEFAULT_CLOSE_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_SEND_TIMEOUT
public static final long DEFAULT_SEND_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_REQUEST_TIMEOUT
public static final long DEFAULT_REQUEST_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_IDLE_TIMEOUT
public static final long DEFAULT_IDLE_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_DRAIN_TIMEOUT
public static final long DEFAULT_DRAIN_TIMEOUT
- See Also:
- Constant Field Values
-
DEFAULT_CHANNEL_MAX
public static final int DEFAULT_CHANNEL_MAX
- See Also:
- Constant Field Values
-
DEFAULT_MAX_FRAME_SIZE
public static final int DEFAULT_MAX_FRAME_SIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ConnectionOptions
public ConnectionOptions()
Create a newConnectionOptionsinstance configured with default configuration settings.
-
ConnectionOptions
public ConnectionOptions(ConnectionOptions options)
Creates aConnectionOptionsinstance that is a copy of the given instance.- Parameters:
options- TheConnectionOptionsinstance whose configuration should be copied to this one.
-
-
Method Detail
-
clone
public ConnectionOptions clone()
- Overrides:
clonein classjava.lang.Object
-
copyInto
protected ConnectionOptions copyInto(ConnectionOptions other)
Copy all options from thisConnectionOptionsinstance into the instance provided.- Parameters:
other- the target of this copy operation.- Returns:
- this
ConnectionOptionsinstance.
-
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 aConnection,Session,SenderorReceiverh as been honored.- Parameters:
closeTimeout- Timeout value in milliseconds to wait for a remote response.- Returns:
- this
ConnectionOptionsinstance.
-
closeTimeout
public ConnectionOptions closeTimeout(long timeout, java.util.concurrent.TimeUnit units)
Configures the timeout used when awaiting a response from the remote that a request to close a resource such as aConnection,Session,SenderorReceiverh as been honored.- Parameters:
timeout- Timeout value to wait for a remote response.units- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
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 aConnection,Session,SenderorReceiverhas been honored.- Parameters:
openTimeout- Timeout value in milliseconds to wait for a remote response.- Returns:
- this
ConnectionOptionsinstance.
-
openTimeout
public ConnectionOptions openTimeout(long timeout, java.util.concurrent.TimeUnit units)
Configures the timeout used when awaiting a response from the remote that a request to open a resource such as aConnection,Session,SenderorReceiverhas been honored.- Parameters:
timeout- Timeout value to wait for a remote response.units- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
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 theSenderor theSessioncredit to do so, if the send blocks for longer than this timeout the send call will fail with anClientSendTimedOutExceptionexception to indicate that the send did not complete.- Parameters:
sendTimeout- Timeout value in milliseconds to wait for a remote response.- Returns:
- this
ConnectionOptionsinstance.
-
sendTimeout
public ConnectionOptions sendTimeout(long timeout, java.util.concurrent.TimeUnit units)
Configures the timeout used when awaiting a send operation to complete. A send will block if the remote has not granted theSenderor theSessioncredit to do so, if the send blocks for longer than this timeout the send call will fail with anClientSendTimedOutExceptionexception to indicate that the send did not complete.- Parameters:
timeout- Timeout value to wait for a remote response.units- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
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 aClientOperationTimedOutException.- Parameters:
requestTimeout- Timeout value in milliseconds to wait for a remote response.- Returns:
- this
ConnectionOptionsinstance.
-
requestTimeout
public ConnectionOptions requestTimeout(long timeout, java.util.concurrent.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 aClientOperationTimedOutException.- Parameters:
timeout- Timeout value to wait for a remote response.units- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
channelMax
public int channelMax()
- Returns:
- the configured or default channel max value for create
Connectioninstances.
-
channelMax
public ConnectionOptions channelMax(int channelMax)
Configure the channel maximum value for the newConnectioncreated with these options.The channel max value controls how many
Sessioninstances can be created by a given Connection, the default value is 65535.- Parameters:
channelMax- The channel max value to assign to newly createdConnectioninstances.- Returns:
- this
ConnectionOptionsinstance.
-
maxFrameSize
public int maxFrameSize()
- Returns:
- the configure maximum frame size value for newly create
Connectioninstances.
-
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
ConnectionOptionsinstance.
-
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 AMQPOpenframe.- Parameters:
idleTimeout- the timeout in milliseconds.- Returns:
- this
ConnectionOptionsinstance.
-
idleTimeout
public ConnectionOptions idleTimeout(long timeout, java.util.concurrent.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 AMQPOpenframe.- Parameters:
timeout- Timeout value to wait for a remote response.units- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
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 aReceiverrequest 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
ConnectionOptionsinstance.
-
drainTimeout
public ConnectionOptions drainTimeout(long timeout, java.util.concurrent.TimeUnit units)
Sets the drain timeout value after which aReceiverrequest 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- TheTimeUnitthat defines the timeout span.- Returns:
- this
ConnectionOptionsinstance.
-
offeredCapabilities
public java.lang.String[] offeredCapabilities()
- Returns:
- the offeredCapabilities that have been configured.
-
offeredCapabilities
public ConnectionOptions offeredCapabilities(java.lang.String... offeredCapabilities)
Sets the collection of capabilities to offer to the remote from a newConnectioncreated using theseConnectionOptions. The offered capabilities advertise to the remote capabilities that thisConnectionsupports.- Parameters:
offeredCapabilities- the offeredCapabilities to set on a newConnection.- Returns:
- this
ConnectionOptionsinstance.
-
desiredCapabilities
public java.lang.String[] desiredCapabilities()
- Returns:
- the desiredCapabilities that have been configured.
-
desiredCapabilities
public ConnectionOptions desiredCapabilities(java.lang.String... desiredCapabilities)
Sets the collection of capabilities to request from the remote for a newConnectioncreated using theseConnectionOptions. The desired capabilities inform the remote peer of the various capabilities the newConnectionrequires and the remote should return those that it supports in its offered capabilities.- Parameters:
desiredCapabilities- the desiredCapabilities to set on a newConnection.- Returns:
- this
ConnectionOptionsinstance.
-
properties
public java.util.Map<java.lang.String,java.lang.Object> properties()
- Returns:
- the properties that have been configured.
-
properties
public ConnectionOptions properties(java.util.Map<java.lang.String,java.lang.Object> properties)
Sets aMapof properties to convey to the remote when a newConnectionis created from theseConnectionOptions.- Parameters:
properties- the properties to set- Returns:
- this
ConnectionOptionsinstance.
-
virtualHost
public java.lang.String virtualHost()
- Returns:
- the virtual host value configured.
-
virtualHost
public ConnectionOptions virtualHost(java.lang.String virtualHost)
The virtual host value to provide to the remote when creating a newConnection.- Parameters:
virtualHost- the virtual host to set- Returns:
- this
ConnectionOptionsinstance.
-
user
public java.lang.String user()
- Returns:
- the user name that is configured for new
Connectioninstances.
-
user
public ConnectionOptions user(java.lang.String user)
Sets the user name used when performing connection authentication.- Parameters:
user- the user to set- Returns:
- this
ConnectionOptionsinstance.
-
password
public java.lang.String password()
- Returns:
- the password that is configured for new
Connectioninstances.
-
password
public ConnectionOptions password(java.lang.String password)
Sets the password used when performing connection authentication.- Parameters:
password- the password to set- Returns:
- this
ConnectionOptionsinstance.
-
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.This option enables or disables reconnection to a remote remote peer after IO errors. To control specifics of the reconnection configuration for the
Connectionthe values must be updated in theReconnectOptionsconfiguration prior to creating the connection.- Parameters:
reconnectEnabled- Controls if reconnection is enabled or not for the associatedConnection.- 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
ConnectionOptionsinstance.
-
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
Connectionthe values must be updated in theSslOptionsconfiguration prior to creating the connection.- Parameters:
sslEnabled- Is SSL encryption enabled for theConnection.- Returns:
- this
ConnectionOptionsinstance.
-
disconnectedHandler
public java.util.function.BiConsumer<Connection,DisconnectionEvent> disconnectedHandler()
- Returns:
- the connection failed handler currently registered.
-
disconnectedHandler
public ConnectionOptions disconnectedHandler(java.util.function.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 theConnectionis no longer operable and theConnectionAPIs will throw an exception to indicate that the connection has failed. The client application should close a failedConnectiononce 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
ConnectionOptionsinstance. - See Also:
interruptedHandler,connectedHandler,disconnectedHandler
-
connectedHandler
public java.util.function.BiConsumer<Connection,ConnectionEvent> connectedHandler()
- Returns:
- the connection established handler that is currently registered
-
connectedHandler
public ConnectionOptions connectedHandler(java.util.function.BiConsumer<Connection,ConnectionEvent> connectedHandler)
Configures a handler that will be notified when aConnectionhas established. This handler is called for each connection event when reconnection is enabled unless areconnectedHandleris 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 theseConnectionOptions.- Returns:
- this
ConnectionOptionsinstance. - See Also:
disconnectedHandler(),interruptedHandler,reconnectedHandler
-
interruptedHandler
public java.util.function.BiConsumer<Connection,DisconnectionEvent> interruptedHandler()
- Returns:
- the connection interrupted handler that is currently registered
-
interruptedHandler
public ConnectionOptions interruptedHandler(java.util.function.BiConsumer<Connection,DisconnectionEvent> interruptedHandler)
Configures a handler that will be notified when the currentConnectionexperiences an interruption. TheConnectionwill 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 theseConnectionOptions.- Returns:
- this
ReconnectOptionsinstance. - See Also:
connectedHandler,reconnectedHandler,disconnectedHandler
-
reconnectedHandler
public java.util.function.BiConsumer<Connection,ConnectionEvent> reconnectedHandler()
- Returns:
- the connection restored handler that is currently registered
-
reconnectedHandler
public ConnectionOptions reconnectedHandler(java.util.function.BiConsumer<Connection,ConnectionEvent> reconnectedHandler)
Configures a handler that will be notified when aConnectionthat 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 theseConnectionOptions.- Returns:
- this
ReconnectOptionsinstance. - See Also:
connectedHandler,interruptedHandler,disconnectedHandler
-
-