Interface SerializationProvider


public interface SerializationProvider
This interface provides a mechanism to allow the use of alternate Java Serialization implementations.

The implementation of this interface *must* be thread-safe and must have a no-arg constructor.

  • Method Details

    • createObjectInputStream

      ObjectInputStream createObjectInputStream(InputStream source) throws IOException
      Creates a new ObjectInputStream wrapping the specified source.

      It's extremely important that the ObjectInputStream returned by this method extends the serialization implementation's ObjectInputStream and overrides the ObjectInputStream.resolveClass(java.io.ObjectStreamClass) of to perform the following or the equivalent thereof:

       return Class.forName(desc.getName(), true, Thread.currentThread().getContextClassLoader());
       

      If this step isn't done, there may be problems when deserializing.

      Parameters:
      source - the source stream from which to read the Object(s) from
      Returns:
      an ObjectInputStream
      Throws:
      IOException - if an error occurs when creating the input stream
    • createObjectOutputStream

      ObjectOutputStream createObjectOutputStream(OutputStream destination) throws IOException
      Creates a new ObjectOutputStream wrapping the specified destination.
      Parameters:
      destination - the destination of the serialized Object(s)
      Returns:
      an ObjectOutputStream
      Throws:
      IOException - if an error occurs when creating the output stream