Interface SerializationService


  • public interface SerializationService
    A service for serializing user objects that can contain references to product internal objects.

    As an alternative to this service, if the serialization/deserialization will always happen using an application thread context class loader, then DeserializationObjectInputStream could be used with thread context class loader if the necessary classes are all exported with the thread-context attribute. This approach does not work if an application thread context class loader is not used or if replacers or resolvers are needed.

    • Method Detail

      • createObjectOutputStream

        java.io.ObjectOutputStream createObjectOutputStream​(java.io.OutputStream output)
                                                     throws java.io.IOException
        Create a stream for serializing objects using a default context, which uses all registered SerializationObjectReplacer.
        Parameters:
        output - the output stream to write serialized object data
        Returns:
        a stream for serialization
        Throws:
        java.io.IOException - if the ObjectOutputStream constructor throws an exception
      • createObjectInputStream

        java.io.ObjectInputStream createObjectInputStream​(java.io.InputStream input,
                                                          java.lang.ClassLoader classLoader)
                                                   throws java.io.IOException
        Create a stream for deserializing objects using a default context, which uses all registered DeserializationClassProvider and DeserializationObjectReplacer. When deserializing application objects, the specified class loader is typically the thread context class loader.
        Parameters:
        input - the input stream containing serialized object data
        classLoader - the class loader for resolving classes
        Returns:
        a stream for deserialization
        Throws:
        java.io.IOException - if the ObjectInputStream constructor throws an exception
      • replaceObjectForSerialization

        java.lang.Object replaceObjectForSerialization​(java.lang.Object object)
        Attempt to return an object appropriate for serialization. This can be used by services that need to know whether or not an object can be serialized. If non-null is returned, the object should be passed to ObjectOutputStream.writeObject.
        Parameters:
        object - an object potentially for serialization
        Returns:
        an object for serialization, or null if the object cannot be serialized
        See Also:
        resolveObject(java.lang.Object)
      • resolveObject

        java.lang.Object resolveObject​(java.lang.Object object)
        Resolve an object returned by replaceObjectForSerialization. If an error occurs while resolving an object, a RuntimeException will be thrown.
        Parameters:
        object - an object returned by replaceObjectForSerialization(java.lang.Object)
        Returns:
        a resolved object, or the input object if it does not need to be resolved
        Throws:
        java.lang.RuntimeException - if an error occurs while resolving the object
      • resolveObjectWithException

        java.lang.Object resolveObjectWithException​(java.lang.Object object)
                                             throws java.io.IOException
        Resolve an object returned by replaceObjectForSerialization.
        Parameters:
        object - an object returned by replaceObjectForSerialization(java.lang.Object)
        Returns:
        a resolved object, or the input object if it does not need to be resolved
        Throws:
        java.io.IOException