Module java.desktop
Package javax.imageio.spi

## Class IIORegistry

- java.lang.Object
- - javax.imageio.spi.ServiceRegistry
  - - javax.imageio.spi.IIORegistry

-     public final class IIORegistry
      extends ServiceRegistry

  A registry for Image I/O service provider instances. Service provider classes may be discovered at runtime by the mechanisms documented in `ServiceLoader`. The intent is that it be relatively inexpensive to load and inspect all available Image I/O service provider classes. These classes may then be used to locate and instantiate more heavyweight classes that will perform actual work, in this case instances of `ImageReader`, `ImageWriter`, `ImageTranscoder`, `ImageInputStream`, and `ImageOutputStream`. Service providers included in the Java runtime are automatically loaded as soon as this class is instantiated.

  When the `registerApplicationClasspathSpis` method is called, additional service provider instances will be discovered using `ServiceLoader`.

  It is also possible to manually add service providers not found automatically, as well as to remove those that are using the interfaces of the `ServiceRegistry` class. Thus the application may customize the contents of the registry as it sees fit.

  For information on how to create and deploy service providers, refer to the documentation on `ServiceLoader`

- - ### Nested Class Summary

    - ### Nested classes/interfaces declared in class javax.imageio.spi.ServiceRegistry

      `ServiceRegistry.Filter`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static IIORegistry` | `getDefaultInstance()` | Returns the default `IIORegistry` instance used by the Image I/O API.
    `void` | `registerApplicationClasspathSpis()` | Registers all available service providers found on the application class path, using the default `ClassLoader`.

    - ### Methods declared in class javax.imageio.spi.ServiceRegistry

      `contains, deregisterAll, deregisterAll, deregisterServiceProvider, deregisterServiceProvider, finalize, getCategories, getServiceProviderByClass, getServiceProviders, getServiceProviders, lookupProviders, lookupProviders, registerServiceProvider, registerServiceProvider, registerServiceProviders, setOrdering, unsetOrdering`

    - ### Methods declared in class java.lang.Object

      `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### getDefaultInstance

          public static IIORegistry getDefaultInstance()

      Returns the default `IIORegistry` instance used by the Image I/O API. This instance should be used for all registry functions.

      Each `ThreadGroup` will receive its own instance; this allows different `Applet`s in the same browser (for example) to each have their own registry.

      Returns:
        the default registry for the current `ThreadGroup`.

    - #### registerApplicationClasspathSpis

          public void registerApplicationClasspathSpis()

      Registers all available service providers found on the application class path, using the default `ClassLoader`. This method is typically invoked by the `ImageIO.scanForPlugins` method.
      See Also:
        `ImageIO.scanForPlugins()`, `ClassLoader.getResources(java.lang.String)`