Class ProtobufSerializer<T extends com.google.protobuf.GeneratedMessageV3>

java.lang.Object
com.hazelcast.jet.protobuf.ProtobufSerializer<T>
Type Parameters:
T - the Protocol Buffers GeneratedMessageV3 type handled by this StreamSerializer.
All Implemented Interfaces:
Serializer, StreamSerializer<T>

public abstract class ProtobufSerializer<T extends com.google.protobuf.GeneratedMessageV3> extends Object implements StreamSerializer<T>
Adapts a generated Google Protocol Buffers v3 serializer class to the Hazelcast StreamSerializer interface.

To learn how to use this class, visit Jet's Serialization Guide. In brief, you should create a subclass that does nothing else but call this class's protected constructor, and then you can use it in two ways:

  1. Register it as a Jet job serializer: jobConfig.registerSerializer(MyType.class, MyTypeSerializer.class).
  2. Register it with the Jet cluster through a matching implementation of ProtobufSerializerHook
Since:
Jet 4.1
  • Constructor Details

    • ProtobufSerializer

      protected ProtobufSerializer(@Nonnull Class<T> clazz, int typeId)
      Called by the subclass to initialize this protobuf serializer.
      Parameters:
      clazz - GeneratedMessageV3 type handled by this serializer
      typeId - unique type ID of this serializer
  • Method Details

    • getTypeId

      public int getTypeId()
      Description copied from interface: Serializer
      Uniquely identifies given serializer.
      Specified by:
      getTypeId in interface Serializer
      Returns:
      typeId of serializer
    • write

      public void write(ObjectDataOutput out, T object) throws IOException
      Description copied from interface: StreamSerializer
      This method writes object to ObjectDataOutput
      Specified by:
      write in interface StreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
      Parameters:
      out - ObjectDataOutput stream that object will be written to
      object - that will be written to out
      Throws:
      IOException - in case of failure to write
    • read

      public T read(ObjectDataInput in) throws IOException
      Description copied from interface: StreamSerializer
      Reads object from objectDataInputStream
      Specified by:
      read in interface StreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
      Parameters:
      in - ObjectDataInput stream that object will read from
      Returns:
      read object
      Throws:
      IOException - in case of failure to read
    • from

      @Nonnull public static <T extends com.google.protobuf.GeneratedMessageV3> ProtobufSerializer<T> from(@Nonnull Class<T> clazz, int typeId)
      A utility method that creates an anonymous ProtobufSerializer.
      Type Parameters:
      T - the Protocol Buffers GeneratedMessageV3 type handled by created StreamSerializer
      Parameters:
      clazz - GeneratedMessageV3 type of created serializer
      typeId - unique type id of created serializer