Class ProtoLiteUtils


  • @ExperimentalApi("Will remain experimental as protobuf lite API is not stable")
    public final class ProtoLiteUtils
    extends java.lang.Object
    Utility methods for using protobuf with grpc.

    Note that this class will remain experimental for the foreseeable future as the proto lite API, which this class depends on, is not guaranteed to be stable. This is explained in protobuf documentation at: https://github.com/protocolbuffers/protobuf/blob/main/java/lite.md

    • Method Detail

      • setExtensionRegistry

        public static void setExtensionRegistry​(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
      • marshallerWithRecursionLimit

        @ExperimentalApi("https://github.com/grpc/grpc-java/issues/10108")
        public static <T extends MessageLiteMethodDescriptor.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 MessageLiteMetadata.BinaryMarshaller<T> metadataMarshaller​(T defaultInstance)
        Produce a metadata marshaller for a protobuf type.
        Since:
        1.0.0