mirror of https://github.com/grpc/grpc-java.git
core: copy the SchemaDescriptor when rebuilding descriptor (#6851)
useMarshalledMessages works by duplicating a ServerServiceDefinition while replacing just the marshallers. It currently does not copy over the SchemaDescriptors, which breaks at least the ProtoReflectionService.
This commit is contained in:
parent
1bf5ad1527
commit
e081f414a7
|
|
@ -197,10 +197,15 @@ public final class ServerInterceptors {
|
||||||
wrappedMethods.add(wrapMethod(definition, wrappedMethodDescriptor));
|
wrappedMethods.add(wrapMethod(definition, wrappedMethodDescriptor));
|
||||||
}
|
}
|
||||||
// Build the new service descriptor
|
// Build the new service descriptor
|
||||||
final ServerServiceDefinition.Builder serviceBuilder = ServerServiceDefinition
|
final ServiceDescriptor.Builder serviceDescriptorBuilder =
|
||||||
.builder(new ServiceDescriptor(serviceDef.getServiceDescriptor().getName(),
|
ServiceDescriptor.newBuilder(serviceDef.getServiceDescriptor().getName())
|
||||||
wrappedDescriptors));
|
.setSchemaDescriptor(serviceDef.getServiceDescriptor().getSchemaDescriptor());
|
||||||
// Create the new service definiton.
|
for (MethodDescriptor<?, ?> wrappedDescriptor : wrappedDescriptors) {
|
||||||
|
serviceDescriptorBuilder.addMethod(wrappedDescriptor);
|
||||||
|
}
|
||||||
|
// Create the new service definition.
|
||||||
|
final ServerServiceDefinition.Builder serviceBuilder =
|
||||||
|
ServerServiceDefinition.builder(serviceDescriptorBuilder.build());
|
||||||
for (ServerMethodDefinition<?, ?> definition : wrappedMethods) {
|
for (ServerMethodDefinition<?, ?> definition : wrappedMethods) {
|
||||||
serviceBuilder.addMethod(definition);
|
serviceBuilder.addMethod(definition);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue