org.ehcache.spi.serialization
Interface SerializationProvider

All Superinterfaces:
Service

public interface SerializationProvider
extends Service

A Service providing Serializer instances.

The CacheManager obtains an instance of this Service prior to creating any Cache instances. Before creating each Cache instance, the CacheManager calls the createKeySerializer(Class, ClassLoader, ServiceConfiguration[]) and createValueSerializer(Class, ClassLoader, ServiceConfiguration[]) methods to obtain Serializer instances for the Cache, either through explicit configuration or from CacheManager level configuration.

Some Cache configurations make serialization mandatory. If serialization is mandatory, failure to return a Serializer from a SerializationProvider results in a Cache initialization failure. For a Cache in which serialization is not mandatory, failing to return a Serializer will not cause Cache initialization failure.


Method Summary
<T> Serializer<T>
createKeySerializer(java.lang.Class<T> clazz, java.lang.ClassLoader classLoader, ServiceConfiguration<?>... configs)
          Creates a key Serializer with the given parameters.
<T> Serializer<T>
createValueSerializer(java.lang.Class<T> clazz, java.lang.ClassLoader classLoader, ServiceConfiguration<?>... configs)
          Creates a value Serializer with the given parameters.
 void releaseSerializer(Serializer<?> serializer)
          Releases the given Serializer instance.
 
Methods inherited from interface org.ehcache.spi.service.Service
start, stop
 

Method Detail

createKeySerializer

<T> Serializer<T> createKeySerializer(java.lang.Class<T> clazz,
                                      java.lang.ClassLoader classLoader,
                                      ServiceConfiguration<?>... configs)
                                  throws UnsupportedTypeException
Creates a key Serializer with the given parameters.

Type Parameters:
T - the type serialized to serialize to/from
Parameters:
clazz - the class of the type to serialize to/from
classLoader - the classloader used to load classes during deserialization; may be null
configs - the ServiceConfiguration instances available through the CacheManager
Returns:
a Serializer instance, possibly null
Throws:
UnsupportedTypeException - if a serializer cannot be created for the given type

createValueSerializer

<T> Serializer<T> createValueSerializer(java.lang.Class<T> clazz,
                                        java.lang.ClassLoader classLoader,
                                        ServiceConfiguration<?>... configs)
                                    throws UnsupportedTypeException
Creates a value Serializer with the given parameters.

Type Parameters:
T - the type serialized to serialize to/from
Parameters:
clazz - the class of the type to serialize to/from
classLoader - the classloader used to load classes during deserialization; may be null
configs - the ServiceConfiguration instances available through the CacheManager
Returns:
a Serializer instance, possibly null
Throws:
UnsupportedTypeException - if a serializer cannot be created for the given type

releaseSerializer

void releaseSerializer(Serializer<?> serializer)
                       throws java.lang.Exception
Releases the given Serializer instance. If the serializer is obtained from a SerializationProvider and implements Closeable, the close method is invoked.

Parameters:
serializer - the serializer to be released
Throws:
java.lang.Exception - when the release fails