public final class ProtoUtils extends Object
Modifier and Type | Method and Description |
---|---|
static <T extends Message> |
keyForProto(T instance)
Produce a metadata key for a generated protobuf type.
|
static <T extends Message> |
marshaller(T defaultInstance)
Create a
MethodDescriptor.Marshaller for protos of the same type as defaultInstance . |
static <T extends Message> |
metadataMarshaller(T instance)
Produce a metadata marshaller for a protobuf type.
|
static void |
setExtensionRegistry(ExtensionRegistry registry)
Sets the global registry for proto marshalling shared across all servers and clients.
|
@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/1787") public static void setExtensionRegistry(ExtensionRegistry registry)
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.ExtensionRegistry)
, 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.
public static <T extends Message> MethodDescriptor.Marshaller<T> marshaller(T defaultInstance)
MethodDescriptor.Marshaller
for protos of the same type as defaultInstance
.public static <T extends Message> Metadata.Key<T> keyForProto(T instance)
@ExperimentalApi(value="https://github.com/grpc/grpc-java/issues/4477") public static <T extends Message> Metadata.BinaryMarshaller<T> metadataMarshaller(T instance)