Interface CachingProvider

  • All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable

    public interface CachingProvider
    extends java.io.Closeable
    Provides mechanisms to create, request and later manage the life-cycle of configured CacheManagers, identified by URIs and scoped by ClassLoaders.

    The meaning and semantics of the URI used to identify a CacheManager is implementation dependent. For applications to remain implementation independent, they should avoid attempting to create URIs and instead use those returned by getDefaultURI().

    Since:
    1.0
    • Method Detail

      • getCacheManager

        CacheManager getCacheManager​(java.net.URI uri,
                                     java.lang.ClassLoader classLoader,
                                     java.util.Properties properties)
        Requests a CacheManager configured according to the implementation specific URI be made available that uses the provided ClassLoader for loading underlying classes.

        Multiple calls to this method with the same URI and ClassLoader must return the same CacheManager instance, except if a previously returned CacheManager has been closed.

        Properties are used in construction of a CacheManager and do not form part of the identity of the CacheManager. i.e. if a second call is made to with the same URI and ClassLoader but different properties, the CacheManager created in the first call is returned.

        Properties names follow the same scheme as package names. The prefixes java and javax are reserved. Properties are passed through and can be retrieved via CacheManager.getProperties(). Properties within the package scope of a caching implementation may be used for additional configuration.

        Parameters:
        uri - an implementation specific URI for the CacheManager (null means use getDefaultURI())
        classLoader - the ClassLoader to use for the CacheManager (null means use getDefaultClassLoader())
        properties - the Properties for the CachingProvider to create the CacheManager (null means no implementation specific Properties are required)
        Throws:
        CacheException - when a CacheManager for the specified arguments could not be produced
        java.lang.SecurityException - when the operation could not be performed due to the current security settings
      • getDefaultClassLoader

        java.lang.ClassLoader getDefaultClassLoader()
        Obtains the default ClassLoader that will be used by the CachingProvider.
        Returns:
        the default ClassLoader used by the CachingProvider
      • getDefaultProperties

        java.util.Properties getDefaultProperties()
        Obtains the default Properties for the CachingProvider.

        Use this method to obtain suitable Properties for the CachingProvider.

        Returns:
        the default Properties for the CachingProvider
      • getCacheManager

        CacheManager getCacheManager​(java.net.URI uri,
                                     java.lang.ClassLoader classLoader)
        Requests a CacheManager configured according to the implementation specific URI that uses the provided ClassLoader for loading underlying classes.

        Multiple calls to this method with the same URI and ClassLoader must return the same CacheManager instance, except if a previously returned CacheManager has been closed.

        Parameters:
        uri - an implementation specific URI for the CacheManager (null means use getDefaultURI())
        classLoader - the ClassLoader to use for the CacheManager (null means use getDefaultClassLoader())
        Throws:
        CacheException - when a CacheManager for the specified arguments could not be produced
        java.lang.SecurityException - when the operation could not be performed due to the current security settings
      • close

        void close()
        Closes all of the CacheManager instances and associated resources created and maintained by the CachingProvider across all ClassLoaders.

        After closing the CachingProvider will still be operational. It may still be used for acquiring CacheManager instances, though those will now be new.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Throws:
        java.lang.SecurityException - when the operation could not be performed due to the current security settings
      • close

        void close​(java.lang.ClassLoader classLoader)
        Closes all CacheManager instances and associated resources created by the CachingProvider using the specified ClassLoader.

        After closing the CachingProvider will still be operational. It may still be used for acquiring CacheManager instances, though those will now be new for the specified ClassLoader .

        Parameters:
        classLoader - the ClassLoader to release
        Throws:
        java.lang.SecurityException - when the operation could not be performed due to the current security settings
      • close

        void close​(java.net.URI uri,
                   java.lang.ClassLoader classLoader)
        Closes all CacheManager instances and associated resources created by the CachingProvider for the specified URI and ClassLoader.
        Parameters:
        uri - the URI to release
        classLoader - the ClassLoader to release
        Throws:
        java.lang.SecurityException - when the operation could not be performed due to the current security settings
      • isSupported

        boolean isSupported​(OptionalFeature optionalFeature)
        Determines whether an optional feature is supported by the CachingProvider.
        Parameters:
        optionalFeature - the feature to check for
        Returns:
        true if the feature is supported