Package javax.cache

Class Caching


  • public final class Caching
    extends Object
    The Caching class provides a convenient means for an application to acquire an appropriate CachingProvider implementation.

    While defined as part of the specification, its use is not required. Applications and/or containers may instead choose to directly instantiate a CachingProvider implementation based on implementation specific instructions.

    When using the Caching class, CachingProvider implementations are automatically discovered when they follow the conventions outlined by the Java Development Kit ServiceLoader class.

    Although automatically discovered, applications that choose to use this class should not make assumptions regarding the order in which implementations are returned by the getCachingProviders() or getCachingProviders(ClassLoader) methods.

    For a CachingProvider to be automatically discoverable by the Caching class, the fully qualified class name of the CachingProvider implementation must be declared in the following file:

       META-INF/services/javax.cache.spi.CachingProvider
     
    This file must be resolvable via the class path.

    For example, in the reference implementation the contents of this file are: org.jsr107.ri.RICachingProvider

    Alternatively when the fully qualified class name of a CachingProvider implementation is specified using the system property javax.cache.spi.cachingprovider, that implementation will be used as the default CachingProvider.

    All CachingProviders that are automatically detected or explicitly declared and loaded by the Caching class are maintained in an internal registry. Consequently when a previously loaded CachingProvider is requested, it will be simply returned from the internal registry, without reloading and/or instantiating the said implementation again.

    As required by some applications and containers, multiple co-existing CachingProviders implementations, from the same or different implementors are permitted at runtime.

    To iterate through those that are currently registered a developer may use the following methods:

    1. getCachingProviders()
    2. getCachingProviders(ClassLoader)
    To request a specific CachingProvider implementation, a developer should use either the getCachingProvider(String) or getCachingProvider(String, ClassLoader) method.

    Where multiple CachingProviders are present, the CachingProvider returned by getters getCachingProvider() and getCachingProvider(ClassLoader) is undefined and as a result a CacheException will be thrown when attempted.

    Since:
    1.0
    Author:
    Brian Oliver, Greg Luck, Yannis Cosmadopoulos
    See Also:
    ServiceLoader, CachingProvider