Class ProtoLiteUtils


  • @ExperimentalApi("Experimental until Lite is stable in protobuf")
    public final class ProtoLiteUtils
    extends java.lang.Object
    Utility methods for using protobuf with grpc.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <T extends com.google.protobuf.MessageLite>
      io.grpc.MethodDescriptor.Marshaller<T>
      marshaller​(T defaultInstance)
      Creates a MethodDescriptor.Marshaller for protos of the same type as defaultInstance.
      static <T extends com.google.protobuf.MessageLite>
      io.grpc.MethodDescriptor.Marshaller<T>
      marshallerWithRecursionLimit​(T defaultInstance, int recursionLimit)
      Creates a MethodDescriptor.Marshaller for protos of the same type as defaultInstance and a custom limit for the recursion depth.
      static <T extends com.google.protobuf.MessageLite>
      io.grpc.Metadata.BinaryMarshaller<T>
      metadataMarshaller​(T defaultInstance)
      Produce a metadata marshaller for a protobuf type.
      static void setExtensionRegistry​(com.google.protobuf.ExtensionRegistryLite newRegistry)
      Sets the global registry for proto marshalling shared across all servers and clients.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • setExtensionRegistry

        public static void setExtensionRegistry​(com.google.protobuf.ExtensionRegistryLite newRegistry)
        Sets the global registry for proto marshalling shared across all servers and clients.

        Warning: This API will likely change over time. It is not possible to have separate registries per Process, Server, Channel, Service, or Method. This is intentional until there is a more appropriate API to set them.

        Warning: Do NOT modify the extension registry after setting it. It is thread safe to call setExtensionRegistry(com.google.protobuf.ExtensionRegistryLite), but not to modify the underlying object.

        If you need custom parsing behavior for protos, you will need to make your own MethodDescriptor.Marshaller for the time being.

        Since:
        1.0.0
      • marshaller

        public static <T extends com.google.protobuf.MessageLite> io.grpc.MethodDescriptor.Marshaller<T> marshaller​(T defaultInstance)
        Creates a MethodDescriptor.Marshaller for protos of the same type as defaultInstance.
        Since:
        1.0.0
      • marshallerWithRecursionLimit

        @ExperimentalApi("https://github.com/grpc/grpc-java/issues/10108")
        public static <T extends com.google.protobuf.MessageLite> io.grpc.MethodDescriptor.Marshaller<T> marshallerWithRecursionLimit​(T defaultInstance,
                                                                                                                                      int recursionLimit)
        Creates a MethodDescriptor.Marshaller for protos of the same type as defaultInstance and a custom limit for the recursion depth. Any negative number will leave the limit to its default value as defined by the protobuf library.
        Since:
        1.56.0
      • metadataMarshaller

        public static <T extends com.google.protobuf.MessageLite> io.grpc.Metadata.BinaryMarshaller<T> metadataMarshaller​(T defaultInstance)
        Produce a metadata marshaller for a protobuf type.
        Since:
        1.0.0