IIORegistry (Java SE 17 & JDK 17)
Description: declaration: module: java.desktop, package: javax.imageio.spi, class: IIORegistry
Keywords: javax.imageio.spi.IIORegistry class

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

  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 Details

  - ### 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)`