Module 
Package org.xnio

Class Options


  • public final class Options
    extends java.lang.Object
    Common channel options.
    • Field Detail

      • ALLOW_BLOCKING

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

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.Boolean> REUSE_ADDRESSES
        Configure an IP socket to reuse addresses. The value type for this option is boolean.
      • SEND_BUFFER

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.Integer> BACKLOG
        Configure a server with the specified backlog. The value type for this option is int.
      • READ_TIMEOUT

        public static final Option<java.lang.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<java.lang.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<java.lang.Integer> MAX_INBOUND_MESSAGE_SIZE
        The maximum inbound message size.
        Since:
        2.0
      • MAX_OUTBOUND_MESSAGE_SIZE

        public static final Option<java.lang.Integer> MAX_OUTBOUND_MESSAGE_SIZE
        The maximum outbound message size.
        Since:
        2.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.String> SSL_PROVIDER
        Specify the requested provider for an SSL/TLS session.
        Since:
        2.0
      • SSL_PROTOCOL

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

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.Integer> SSL_CLIENT_SESSION_TIMEOUT
        The SSL client session timeout (in seconds).
        Since:
        3.0
      • SSL_SERVER_SESSION_CACHE_SIZE

        public static final Option<java.lang.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<java.lang.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<java.lang.Class<? extends javax.net.ssl.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<java.lang.Class<? extends javax.net.ssl.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<java.lang.Integer> SSL_PACKET_BUFFER_SIZE
        The packet buffer size for SSL.
        Since:
        3.0
      • SSL_APPLICATION_BUFFER_SIZE

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

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.Boolean> USE_DIRECT_BUFFERS
        Specify whether direct buffers should be used for socket communications.
        Since:
        3.0
      • SECURE

        public static final Option<java.lang.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<java.lang.Boolean> SASL_POLICY_FORWARD_SECRECY
        Specify whether SASL mechanisms which implement forward secrecy between sessions are required.
        See Also:
        Sasl.POLICY_FORWARD_SECRECY
      • SASL_POLICY_NOACTIVE

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

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

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

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

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

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

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

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

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

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

        public static final Option<Sequence<java.lang.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<java.lang.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<java.lang.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<java.lang.Long> STACK_SIZE
        The stack size (in bytes) to attempt to use for worker threads.
      • WORKER_NAME

        public static final Option<java.lang.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<java.lang.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<java.lang.Boolean> THREAD_DAEMON
        Specify whether worker threads should be daemon threads. Defaults to false.
      • WORKER_IO_THREADS

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.Integer> WORKER_TASK_MAX_THREADS
        Specify the maximum number of threads for the worker task thread pool.
      • WORKER_TASK_KEEPALIVE

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

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

        public static final Option<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.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<java.lang.Integer> WATCHER_POLL_INTERVAL
        The poll interval for poll based file system watchers. Defaults to 5000ms. Ignored on Java 7 and later.