Module 
Package org.xnio

Class Xnio

java.lang.Object
org.xnio.Xnio

public abstract class Xnio extends Object
The XNIO provider class.
  • Field Details

    • NIO2

      public static final boolean NIO2
      A flag indicating the presence of NIO.2 (JDK 7). Always true as of XNIO version 3.5.0, which requires Java 8.
      See Also:
  • Constructor Details

    • Xnio

      protected Xnio(String name)
      Construct an XNIO provider instance. Used by implementors only. To get an XNIO instance, use one of the getInstance() methods.
      Parameters:
      name - the provider name
  • Method Details

    • allowBlocking

      public static boolean allowBlocking(boolean newSetting) throws SecurityException
      Allow (or disallow) blocking I/O on the current thread. Requires the changeThreadBlockingSetting RuntimePermission.
      Parameters:
      newSetting - true to allow blocking I/O, false to disallow it
      Returns:
      the previous setting
      Throws:
      SecurityException - if a security manager is present and disallows changing the changeThreadBlockingSetting RuntimePermission
    • isBlockingAllowed

      public static boolean isBlockingAllowed()
      Determine whether blocking I/O is allowed from the current thread.
      Returns:
      true if blocking I/O is allowed, false otherwise
    • checkBlockingAllowed

      public static void checkBlockingAllowed() throws IllegalStateException
      Perform a check for whether blocking is allowed on the current thread.
      Throws:
      IllegalStateException - if blocking is not allowed on the current thread
    • getInstance

      public static Xnio getInstance(ClassLoader classLoader)
      Get an XNIO provider instance. If multiple providers are available, use the first one encountered.
      Parameters:
      classLoader - the class loader to search in
      Returns:
      the XNIO provider instance
      Since:
      3.0
    • getInstance

      public static Xnio getInstance()
      Get an XNIO provider instance from XNIO's class loader. If multiple providers are available, use the first one encountered.
      Returns:
      the XNIO provider instance
      Since:
      3.0
    • getInstance

      public static Xnio getInstance(String provider, ClassLoader classLoader)
      Get a specific XNIO provider instance.
      Parameters:
      provider - the provider name, or null for the first available
      classLoader - the class loader to search in
      Returns:
      the XNIO provider instance
      Since:
      3.0
    • getInstance

      public static Xnio getInstance(String provider)
      Get a specific XNIO provider instance from XNIO's class loader.
      Parameters:
      provider - the provider name, or null for the first available
      Returns:
      the XNIO provider instance
      Since:
      3.0
    • getSslProvider

      public XnioSsl getSslProvider(OptionMap optionMap) throws GeneralSecurityException
      Get an SSL provider for this XNIO provider.
      Parameters:
      optionMap - the option map to use for configuring SSL
      Returns:
      the SSL provider
      Throws:
      GeneralSecurityException - if an exception occurred configuring the SSL provider
    • getSslProvider

      public XnioSsl getSslProvider(KeyManager[] keyManagers, TrustManager[] trustManagers, OptionMap optionMap) throws GeneralSecurityException
      Get an SSL provider for this XNIO provider.
      Parameters:
      optionMap - the option map to use for configuring SSL
      keyManagers - the key managers to use, or null to configure from the option map
      trustManagers - the trust managers to use, or null to configure from the option map
      Returns:
      the SSL provider
      Throws:
      GeneralSecurityException - if an exception occurred configuring the SSL provider
    • openFile

      public FileChannel openFile(File file, OptionMap options) throws IOException
      Open a file on the filesystem.
      Parameters:
      file - the file to open
      options - the file-open options
      Returns:
      the file channel
      Throws:
      IOException - if an I/O error occurs
    • openFile

      public FileChannel openFile(String fileName, OptionMap options) throws IOException
      Open a file on the filesystem.
      Parameters:
      fileName - the file name of the file to open
      options - the file-open options
      Returns:
      the file channel
      Throws:
      IOException - if an I/O error occurs
    • openFile

      public FileChannel openFile(File file, FileAccess access) throws IOException
      Open a file on the filesystem.
      Parameters:
      file - the file to open
      access - the file access level to use
      Returns:
      the file channel
      Throws:
      IOException - if an I/O error occurs
    • openFile

      public FileChannel openFile(String fileName, FileAccess access) throws IOException
      Open a file on the filesystem.
      Parameters:
      fileName - the file name of the file to open
      access - the file access level to use
      Returns:
      the file channel
      Throws:
      IOException - if an I/O error occurs
    • unwrapFileChannel

      protected FileChannel unwrapFileChannel(FileChannel src)
      Unwrap an XNIO-wrapped file channel. For use by providers.
      Parameters:
      src - the possibly wrapped file channel
      Returns:
      the unwrapped file channel
    • createWorkerBuilder

      public XnioWorker.Builder createWorkerBuilder()
      Create a new worker builder.
      Returns:
      the worker builder (not null)
    • build

      protected abstract XnioWorker build(XnioWorker.Builder builder)
      Construct an XNIO worker from a builder.
      Parameters:
      builder - the builder (must not be null)
      Returns:
      the constructed worker
    • createWorker

      public XnioWorker createWorker(OptionMap optionMap) throws IOException, IllegalArgumentException
      Construct a new XNIO worker.
      Parameters:
      optionMap - the options to use to configure the worker
      Returns:
      the new worker
      Throws:
      IOException - if the worker failed to be opened
      IllegalArgumentException - if an option value is invalid for this worker
    • createWorker

      public XnioWorker createWorker(ThreadGroup threadGroup, OptionMap optionMap) throws IOException, IllegalArgumentException
      Construct a new XNIO worker.
      Parameters:
      threadGroup - the thread group for worker threads
      optionMap - the options to use to configure the worker
      Returns:
      the new worker
      Throws:
      IOException - if the worker failed to be opened
      IllegalArgumentException - if an option value is invalid for this worker
    • createWorker

      public XnioWorker createWorker(ThreadGroup threadGroup, OptionMap optionMap, Runnable terminationTask) throws IOException, IllegalArgumentException
      Construct a new XNIO worker.
      Parameters:
      threadGroup - the thread group for worker threads
      optionMap - the options to use to configure the worker
      terminationTask - the task to run after the worker has shut down
      Returns:
      the new worker
      Throws:
      IOException - if the worker failed to be opened
      IllegalArgumentException - if an option value is invalid for this worker
    • createFileSystemWatcher

      public FileSystemWatcher createFileSystemWatcher(String name, OptionMap options)
      Creates a file system watcher, that can be used to monitor file system changes.
      Parameters:
      name - The watcher name
      options - The options to use to create the watcher
      Returns:
      The file system watcher
    • handleThreadExit

      protected void handleThreadExit()
      Implement tasks that will be executed on thread exits if a task worker thread is initialized through XnioWorker$WorkerThreadFactory.
    • getName

      public final String getName()
      Get the name of this XNIO provider.
      Returns:
      the name
    • toString

      public final String toString()
      Get a string representation of this XNIO provider.
      Overrides:
      toString in class Object
      Returns:
      the string representation
    • getProperty

      protected static String getProperty(String name)
      Get an XNIO property. The property name must start with "xnio.".
      Parameters:
      name - the property name
      Returns:
      the property value, or null if it wasn't found
      Since:
      1.2
    • getProperty

      protected static String getProperty(String name, String defaultValue)
      Get an XNIO property. The property name must start with "xnio.".
      Parameters:
      name - the property name
      defaultValue - the default value
      Returns:
      the property value, or defaultValue if it wasn't found
      Since:
      1.2
    • register

      protected static Closeable register(XnioProviderMXBean providerMXBean)
      Register an MBean. If the MBean cannot be registered, this method will simply return.
      Parameters:
      providerMXBean - the provider MBean to register
      Returns:
      a handle which may be used to remove the registration
    • register

      protected static Closeable register(XnioWorkerMXBean workerMXBean)
      Register an MBean. If the MBean cannot be registered, this method will simply return.
      Parameters:
      workerMXBean - the worker MBean to register
      Returns:
      a handle which may be used to remove the registration
    • register

      protected static Closeable register(XnioServerMXBean serverMXBean)
      Register an MBean. If the MBean cannot be registered, this method will simply return.
      Parameters:
      serverMXBean - the server MBean to register
      Returns:
      a handle which may be used to remove the registration