Class ProtoUtils

  • public final class ProtoUtils
    extends Object
    Utility methods for using protobuf with grpc.
    • Method Detail

      • setExtensionRegistry

        public static void setExtensionRegistry​(ExtensionRegistry registry)
        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(, 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.

      • marshallerWithRecursionLimit

        public static <T extends MessageMethodDescriptor.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.
      • keyForProto

        public static <T extends MessageMetadata.Key<T> keyForProto​(T instance)
        Produce a metadata key for a generated protobuf type.
      • metadataMarshaller

        public static <T extends MessageMetadata.BinaryMarshaller<T> metadataMarshaller​(T instance)
        Produce a metadata marshaller for a protobuf type.