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:
com.hazelcast.nio.serialization.Serializer, com.hazelcast.nio.serialization.StreamSerializer<T>

public abstract class ProtobufSerializer<T extends com.google.protobuf.GeneratedMessageV3> extends Object implements com.hazelcast.nio.serialization.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 Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    ProtobufSerializer(Class<T> clazz, int typeId)
    Called by the subclass to initialize this protobuf serializer.
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T extends com.google.protobuf.GeneratedMessageV3>
    ProtobufSerializer<T>
    from(Class<T> clazz, int typeId)
    A utility method that creates an anonymous ProtobufSerializer.
    int
     
    read(com.hazelcast.nio.ObjectDataInput in)
     
    void
    write(com.hazelcast.nio.ObjectDataOutput out, T object)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.hazelcast.nio.serialization.Serializer

    destroy
  • 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()
      Specified by:
      getTypeId in interface com.hazelcast.nio.serialization.Serializer
    • write

      public void write(com.hazelcast.nio.ObjectDataOutput out, T object) throws IOException
      Specified by:
      write in interface com.hazelcast.nio.serialization.StreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
      Throws:
      IOException
    • read

      public T read(com.hazelcast.nio.ObjectDataInput in) throws IOException
      Specified by:
      read in interface com.hazelcast.nio.serialization.StreamSerializer<T extends com.google.protobuf.GeneratedMessageV3>
      Throws:
      IOException
    • 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