- java.lang.Object
-
- javax.imageio.spi.ServiceRegistry
-
- javax.imageio.spi.IIORegistry
-
public final class IIORegistry extends ServiceRegistry
A registry for service provider instances. Service provider classes may be detected at run time by means of meta-information in the JAR files containing them. The intent is that it be relatively inexpensive to load and inspect all available service provider classes. These classes may them be used to locate and instantiate more heavyweight classes that will perform actual work, in this case instances ofImageReader
,ImageWriter
,ImageTranscoder
,ImageInputStream
, andImageOutputStream
.Service providers found on the system classpath (e.g., the
jre/lib/ext
directory in Sun's implementation of JDK) are automatically loaded as soon as this class is instantiated.When the
registerApplicationClasspathSpis
method is called, service provider instances declared in the meta-information section of JAR files on the application class path are loaded. To declare a service provider, aservices
subdirectory is placed within theMETA-INF
directory that is present in every JAR file. This directory contains a file for each service provider interface that has one or more implementation classes present in the JAR file. For example, if the JAR file contained a class namedcom.mycompany.imageio.MyFormatReaderSpi
which implements theImageReaderSpi
interface, the JAR file would contain a file named:META-INF/services/javax.imageio.spi.ImageReaderSpi
containing the line:com.mycompany.imageio.MyFormatReaderSpi
The service provider classes are intended to be lightweight and quick to load. Implementations of these interfaces should avoid complex dependencies on other classes and on native code.
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 more details on declaring service providers, and the JAR format in general, see the JAR File Specification.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class javax.imageio.spi.ServiceRegistry
ServiceRegistry.Filter
-
-
Method Summary
Methods Modifier and Type Method and Description static IIORegistry
getDefaultInstance()
Returns the defaultIIORegistry
instance used by the Image I/O API.void
registerApplicationClasspathSpis()
Registers all available service providers found on the application class path, using the defaultClassLoader
.-
Methods inherited from class javax.imageio.spi.ServiceRegistry
contains, deregisterAll, deregisterAll, deregisterServiceProvider, deregisterServiceProvider, finalize, getCategories, getServiceProviderByClass, getServiceProviders, getServiceProviders, lookupProviders, lookupProviders, registerServiceProvider, registerServiceProvider, registerServiceProviders, setOrdering, unsetOrdering
-
-
-
-
Method Detail
-
getDefaultInstance
public static IIORegistry getDefaultInstance()
Returns the defaultIIORegistry
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 differentApplet
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 defaultClassLoader
. This method is typically invoked by theImageIO.scanForPlugins
method.
-
-
Document created the 11/06/2005, last modified the 04/03/2020
Source of the printed document:https://www.gaudry.be/en/java-api-rf-javax/imageio/spi/iioregistry.html/.html/.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.