Package org.xnio

Class Options

java.lang.Object
org.xnio.Options

public final class Options extends Object
Common channel options.
  • Field Details

    • ALLOW_BLOCKING

      public static final Option<Boolean> ALLOW_BLOCKING
      Enable or disable blocking I/O for a newly created channel thread.
    • MULTICAST

      public static final Option<Boolean> MULTICAST
      Enable multicast support for a socket. The value type for this option is boolean. Note that some implementations may add overhead when multicast sockets are in use.
    • BROADCAST

      public static final Option<Boolean> BROADCAST
      Enable broadcast support for IP datagram sockets. The value type for this option is boolean. If you intend to send datagrams to a broadcast address, this option must be enabled.
    • CLOSE_ABORT

      public static final Option<Boolean> CLOSE_ABORT
      Configure a TCP socket to send an RST packet on close. The value type for this option is boolean.
    • RECEIVE_BUFFER

      public static final Option<Integer> RECEIVE_BUFFER
      The receive buffer size. The value type for this option is int. This may be used by an XNIO provider directly, or it may be passed to the underlying operating system, depending on the channel type. Buffer sizes must always be greater than 0. Note that this value is just a hint; if the application needs to know what value was actually stored for this option, it must call getOption(Options.RECEIVE_BUFFER) on the channel to verify. On most operating systems, the receive buffer size may not be changed on a socket after it is connected; in these cases, calling setOption(Options.RECEIVE_BUFFER, val) will return null.
    • REUSE_ADDRESSES

      public static final Option<Boolean> REUSE_ADDRESSES
      Configure an IP socket to reuse addresses. The value type for this option is boolean.
    • SEND_BUFFER

      public static final Option<Integer> SEND_BUFFER
      The send buffer size. The value type for this option is int. This may be used by an XNIO provider directly, or it may be passed to the underlying operating system, depending on the channel type. Buffer sizes must always be greater than 0. Note that this value is just a hint; if the application needs to know what value was actually stored for this option, it must call getOption(Options.SEND_BUFFER) on the channel to verify.
    • TCP_NODELAY

      public static final Option<Boolean> TCP_NODELAY
      Configure a TCP socket to disable Nagle's algorithm. The value type for this option is boolean.
    • MULTICAST_TTL

      public static final Option<Integer> MULTICAST_TTL
      Set the multicast time-to-live field for datagram sockets. The value type for this option is int.
    • IP_TRAFFIC_CLASS

      public static final Option<Integer> IP_TRAFFIC_CLASS
      Set the IP traffic class/type-of-service for the channel. The value type for this option is int.
    • TCP_OOB_INLINE

      public static final Option<Boolean> TCP_OOB_INLINE
      Configure a TCP socket to receive out-of-band data alongside regular data. The value type for this option is boolean.
    • KEEP_ALIVE

      public static final Option<Boolean> KEEP_ALIVE
      Configure a channel to send TCP keep-alive messages in an implementation-dependent manner. The value type for this option is boolean.
    • BACKLOG

      public static final Option<Integer> BACKLOG
      Configure a server with the specified backlog. The value type for this option is int.
    • READ_TIMEOUT

      public static final Option<Integer> READ_TIMEOUT
      Configure a read timeout for a socket, in milliseconds. If the given amount of time elapses without a successful read taking place, the socket's next read will throw a ReadTimeoutException.
    • WRITE_TIMEOUT

      public static final Option<Integer> WRITE_TIMEOUT
      Configure a write timeout for a socket, in milliseconds. If the given amount of time elapses without a successful write taking place, the socket's next write will throw a WriteTimeoutException.
    • MAX_INBOUND_MESSAGE_SIZE

      public static final Option<Integer> MAX_INBOUND_MESSAGE_SIZE
      The maximum inbound message size.
      Since:
      2.0
    • MAX_OUTBOUND_MESSAGE_SIZE

      public static final Option<Integer> MAX_OUTBOUND_MESSAGE_SIZE
      The maximum outbound message size.
      Since:
      2.0
    • SSL_ENABLED

      public static final Option<Boolean> SSL_ENABLED
      Specify whether SSL should be enabled. If specified in conjunction with SSL_STARTTLS then SSL will not be negotiated until SslChannel.startHandshake() or SslConnection.startHandshake() is called.
      Since:
      3.0
    • SSL_CLIENT_AUTH_MODE

      public static final Option<SslClientAuthMode> SSL_CLIENT_AUTH_MODE
      Specify the SSL client authentication mode.
      Since:
      2.0
    • SSL_ENABLED_CIPHER_SUITES

      public static final Option<Sequence<String>> SSL_ENABLED_CIPHER_SUITES
      Specify the cipher suites for an SSL/TLS session. If a listed cipher suites is not supported, it is ignored; however, if you specify a list of cipher suites, none of which are supported, an exception will be thrown.
      Since:
      2.0
    • SSL_SUPPORTED_CIPHER_SUITES

      public static final Option<Sequence<String>> SSL_SUPPORTED_CIPHER_SUITES
      Get the supported cipher suites for an SSL/TLS session. This option is generally read-only.
      Since:
      2.0
    • SSL_ENABLED_PROTOCOLS

      public static final Option<Sequence<String>> SSL_ENABLED_PROTOCOLS
      Specify the enabled protocols for an SSL/TLS session. If a listed protocol is not supported, it is ignored; however, if you specify a list of protocols, none of which are supported, an exception will be thrown.
      Since:
      2.0
    • SSL_SUPPORTED_PROTOCOLS

      public static final Option<Sequence<String>> SSL_SUPPORTED_PROTOCOLS
      Get the supported protocols for an SSL/TLS session. This option is generally read-only.
      Since:
      2.0
    • SSL_PROVIDER

      public static final Option<String> SSL_PROVIDER
      Specify the requested provider for an SSL/TLS session.
      Since:
      2.0
    • SSL_PROTOCOL

      public static final Option<String> SSL_PROTOCOL
      Specify the protocol name for an SSL context.
      Since:
      2.1
    • SSL_ENABLE_SESSION_CREATION

      public static final Option<Boolean> SSL_ENABLE_SESSION_CREATION
      Enable or disable session creation for an SSL connection. Defaults to true to enable session creation.
      Since:
      2.0
    • SSL_USE_CLIENT_MODE

      public static final Option<Boolean> SSL_USE_CLIENT_MODE
      Specify whether SSL conversations should be in client or server mode. Defaults to false (use server mode). If set to true, the client and server side swap negotiation roles.
      Since:
      2.0
    • SSL_CLIENT_SESSION_CACHE_SIZE

      public static final Option<Integer> SSL_CLIENT_SESSION_CACHE_SIZE
      The size of the SSL client session cache.
      Since:
      3.0
    • SSL_CLIENT_SESSION_TIMEOUT

      public static final Option<Integer> SSL_CLIENT_SESSION_TIMEOUT
      The SSL client session timeout (in seconds).
      Since:
      3.0
    • SSL_SERVER_SESSION_CACHE_SIZE

      public static final Option<Integer> SSL_SERVER_SESSION_CACHE_SIZE
      The size of the SSL server session cache.
      Since:
      3.0
    • SSL_SERVER_SESSION_TIMEOUT

      public static final Option<Integer> SSL_SERVER_SESSION_TIMEOUT
      The SSL server session timeout (in seconds).
      Since:
      3.0
    • SSL_JSSE_KEY_MANAGER_CLASSES

      public static final Option<Sequence<Class<? extends KeyManager>>> SSL_JSSE_KEY_MANAGER_CLASSES
      The possible key manager classes to use for a JSSE SSL context.
      Since:
      3.0
    • SSL_JSSE_TRUST_MANAGER_CLASSES

      public static final Option<Sequence<Class<? extends TrustManager>>> SSL_JSSE_TRUST_MANAGER_CLASSES
      The possible trust store classes to use for a JSSE SSL context.
      Since:
      3.0
    • SSL_RNG_OPTIONS

      public static final Option<OptionMap> SSL_RNG_OPTIONS
      The configuration of a secure RNG for SSL usage.
      Since:
      3.0
    • SSL_PACKET_BUFFER_SIZE

      public static final Option<Integer> SSL_PACKET_BUFFER_SIZE
      The packet buffer size for SSL.
      Since:
      3.0
    • SSL_APPLICATION_BUFFER_SIZE

      public static final Option<Integer> SSL_APPLICATION_BUFFER_SIZE
      The application buffer size for SSL.
      Since:
      3.0
    • SSL_PACKET_BUFFER_REGION_SIZE

      public static final Option<Integer> SSL_PACKET_BUFFER_REGION_SIZE
      The size of the allocation region to use for SSL packet buffers.
      Since:
      3.0
    • SSL_APPLICATION_BUFFER_REGION_SIZE

      public static final Option<Integer> SSL_APPLICATION_BUFFER_REGION_SIZE
      The size of the allocation region to use for SSL application buffers.
      Since:
      3.0
    • SSL_STARTTLS

      public static final Option<Boolean> SSL_STARTTLS
      Specify whether to use STARTTLS mode (in which a connection starts clear and switches to TLS on demand).
      Since:
      3.0
    • SSL_PEER_HOST_NAME

      public static final Option<String> SSL_PEER_HOST_NAME
      Specify the (non-authoritative) name of the peer host to use for the purposes of session reuse, as well as for the use of certain cipher suites (such as Kerberos). If not given, defaults to the host name of the socket address of the peer.
    • SSL_PEER_PORT

      public static final Option<Integer> SSL_PEER_PORT
      Specify the (non-authoritative) port number of the peer port number to use for the purposes of session reuse, as well as for the use of certain cipher suites. If not given, defaults to the port number of the socket address of the peer.
    • SSL_NON_BLOCKING_KEY_MANAGER

      public static final Option<Boolean> SSL_NON_BLOCKING_KEY_MANAGER
      Hint to the SSL engine that the key manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency.
    • SSL_NON_BLOCKING_TRUST_MANAGER

      public static final Option<Boolean> SSL_NON_BLOCKING_TRUST_MANAGER
      Hint to the SSL engine that the trust manager implementation(s) is/are non-blocking, so they can be executed in the I/O thread, possibly improving performance by decreasing latency.
    • USE_DIRECT_BUFFERS

      public static final Option<Boolean> USE_DIRECT_BUFFERS
      Specify whether direct buffers should be used for socket communications.
      Since:
      3.0
    • SECURE

      public static final Option<Boolean> SECURE
      Determine whether the channel is encrypted, or employs some other level of security. The interpretation of this flag is specific to the channel in question; however, whatever the channel type, this flag is generally read-only.
    • SASL_POLICY_FORWARD_SECRECY

      public static final Option<Boolean> SASL_POLICY_FORWARD_SECRECY
      Specify whether SASL mechanisms which implement forward secrecy between sessions are required.
      See Also:
    • SASL_POLICY_NOACTIVE

      public static final Option<Boolean> SASL_POLICY_NOACTIVE
      Specify whether SASL mechanisms which are susceptible to active (non-dictionary) attacks are permitted.
      See Also:
    • SASL_POLICY_NOANONYMOUS

      public static final Option<Boolean> SASL_POLICY_NOANONYMOUS
      Specify whether SASL mechanisms which accept anonymous logins are permitted.
      See Also:
    • SASL_POLICY_NODICTIONARY

      public static final Option<Boolean> SASL_POLICY_NODICTIONARY
      Specify whether SASL mechanisms which are susceptible to passive dictionary attacks are permitted.
      See Also:
    • SASL_POLICY_NOPLAINTEXT

      public static final Option<Boolean> SASL_POLICY_NOPLAINTEXT
      Specify whether SASL mechanisms which are susceptible to simple plain passive attacks are permitted.
      See Also:
    • SASL_POLICY_PASS_CREDENTIALS

      public static final Option<Boolean> SASL_POLICY_PASS_CREDENTIALS
      Specify whether SASL mechanisms which pass client credentials are required.
      See Also:
    • SASL_QOP

      public static final Option<Sequence<SaslQop>> SASL_QOP
      Specify the SASL quality-of-protection to use.
      See Also:
    • SASL_STRENGTH

      public static final Option<SaslStrength> SASL_STRENGTH
      Specify the SASL cipher strength to use.
      See Also:
    • SASL_SERVER_AUTH

      public static final Option<Boolean> SASL_SERVER_AUTH
      Specify whether the SASL server must authenticate to the client.
      See Also:
    • SASL_REUSE

      public static final Option<Boolean> SASL_REUSE
      Specify whether SASL mechanisms should attempt to reuse authenticated session information.
      See Also:
    • SASL_MECHANISMS

      public static final Option<Sequence<String>> SASL_MECHANISMS
      A list of SASL mechanisms, in decreasing order of preference.
    • SASL_DISALLOWED_MECHANISMS

      public static final Option<Sequence<String>> SASL_DISALLOWED_MECHANISMS
      A list of disallowed SASL mechanisms.
    • SASL_PROPERTIES

      public static final Option<Sequence<Property>> SASL_PROPERTIES
      A list of provider specific SASL properties.
    • FILE_ACCESS

      public static final Option<FileAccess> FILE_ACCESS
      The file access mode to use when opening a file.
    • FILE_APPEND

      public static final Option<Boolean> FILE_APPEND
      A flag which indicates that opened files should be appended to. Some platforms do not support both append and FileAccess.READ_WRITE at the same time.
    • FILE_CREATE

      public static final Option<Boolean> FILE_CREATE
      A flag which indicates that a file should be created if it does not exist (true by default for writing files, false by default for reading files).
    • STACK_SIZE

      public static final Option<Long> STACK_SIZE
      The stack size (in bytes) to attempt to use for worker threads.
    • WORKER_NAME

      public static final Option<String> WORKER_NAME
      The name to use for a newly created worker. If not specified, the string "XNIO" will be used. The worker name is used as a part of the thread name for created threads, and for any management constructs.
    • THREAD_PRIORITY

      public static final Option<Integer> THREAD_PRIORITY
      The thread priority for newly created worker threads. If not specified, the platform default value will be used.
    • THREAD_DAEMON

      public static final Option<Boolean> THREAD_DAEMON
      Specify whether worker threads should be daemon threads. Defaults to false.
    • WORKER_IO_THREADS

      public static final Option<Integer> WORKER_IO_THREADS
      Specify the number of I/O threads to create for the worker. If not specified, a default will be chosen.
    • WORKER_READ_THREADS

      public static final Option<Integer> WORKER_READ_THREADS
      Specify the number of I/O threads to devote to reading for split thread channels. If not specified, a default will be chosen to be roughly half of the worker I/O threads, or the number of threads not specified for writing.
    • WORKER_WRITE_THREADS

      public static final Option<Integer> WORKER_WRITE_THREADS
      Specify the number of I/O threads to devote to writing for split thread channels. If not specified, a default will be chosen to be roughly half of the worker I/O threads, or the number of threads not specified for reading.
    • SPLIT_READ_WRITE_THREADS

      public static final Option<Boolean> SPLIT_READ_WRITE_THREADS
      Specify whether read and write operations should be split among separate threads. If true, then each directional channel may be accessed concurrently with respect to one another, and will have different worker threads assigned; otherwise, both directions will share a worker thread and must not be accessed independently.
    • WORKER_ESTABLISH_WRITING

      public static final Option<Boolean> WORKER_ESTABLISH_WRITING
      Specify whether a server, acceptor, or connector should be attached to write threads. By default, the establishing phase of connections are attached to read threads. Use this option if the client or server writes a message directly upon connect and a split threads configuration is used.
    • WORKER_ACCEPT_THREADS

      @Deprecated public static final Option<Integer> WORKER_ACCEPT_THREADS
      Deprecated.
      This option is now ignored. All I/O threads are used for accept, except in the case of split read/write threads, in which case only read or write threads will be used as determined by WORKER_ESTABLISH_WRITING.
      Specify the number of accept threads a single socket server should have. Specifying more than one can result in spurious wakeups for a socket server under low connection volume, but higher throughput at high connection volume. The minimum value is 1, and the maximum value is equal to the number of available worker threads.
    • WORKER_TASK_CORE_THREADS

      public static final Option<Integer> WORKER_TASK_CORE_THREADS
      Specify the number of "core" threads for the worker task thread pool.
    • WORKER_TASK_MAX_THREADS

      public static final Option<Integer> WORKER_TASK_MAX_THREADS
      Specify the maximum number of threads for the worker task thread pool.
    • WORKER_TASK_KEEPALIVE

      public static final Option<Integer> WORKER_TASK_KEEPALIVE
      Specify the number of milliseconds to keep non-core task threads alive.
    • WORKER_TASK_LIMIT

      public static final Option<Integer> WORKER_TASK_LIMIT
      Specify the maximum number of worker tasks to allow before rejecting.
    • CORK

      public static final Option<Boolean> CORK
      Specify that output should be buffered. The exact behavior of the buffering is not specified; it may flush based on buffered size or time. An explicit SuspendableWriteChannel.flush() will still cause the channel to flush its contents immediately.
    • CONNECTION_HIGH_WATER

      public static final Option<Integer> CONNECTION_HIGH_WATER
      The high water mark for a server's connections. Once this number of connections have been accepted, accepts will be suspended for that server.
    • CONNECTION_LOW_WATER

      public static final Option<Integer> CONNECTION_LOW_WATER
      The low water mark for a server's connections. Once the number of active connections have dropped below this number, accepts can be resumed for that server.
    • COMPRESSION_LEVEL

      public static final Option<Integer> COMPRESSION_LEVEL
      The compression level to apply for compressing streams and channels.
    • COMPRESSION_TYPE

      public static final Option<CompressionType> COMPRESSION_TYPE
      The compression type to apply for compressing streams and channels.
    • BALANCING_TOKENS

      public static final Option<Integer> BALANCING_TOKENS
      The number of balancing tokens, if connection-balancing is enabled. Must be less than the number of I/O threads, or 0 to disable balancing and just accept opportunistically.
    • BALANCING_CONNECTIONS

      public static final Option<Integer> BALANCING_CONNECTIONS
      The number of connections to create per connection-balancing token, if connection-balancing is enabled.
    • WATCHER_POLL_INTERVAL

      public static final Option<Integer> WATCHER_POLL_INTERVAL
      The poll interval for poll based file system watchers. Defaults to 5000ms. Ignored on Java 7 and later.