private static void addServiceDescriptor(ServiceInfosBuilder serviceInfosBuilder, GrpcService grpcService) {
        grpcService.services().stream()
                   .map(ServerServiceDefinition::getServiceDescriptor)
                   .filter(Objects::nonNull)
                   .filter(desc -> desc.getSchemaDescriptor() instanceof ProtoFileDescriptorSupplier)
                   .forEach(desc -> {
                       final String serviceName = desc.getName();
                       final ProtoFileDescriptorSupplier fileDescSupplier =
                               (ProtoFileDescriptorSupplier) desc.getSchemaDescriptor();
                       final FileDescriptor fileDesc = fileDescSupplier.getFileDescriptor();
                       final ServiceDescriptor serviceDesc =
                               fileDesc.getServices().stream()
                                       .filter(sd -> sd.getFullName().equals(serviceName))
                                       .findFirst()
                                       .orElseThrow(IllegalStateException::new);
                       serviceInfosBuilder.addService(serviceDesc);
                   });
    }
{@link DocServicePlugin} implementation that supports {@link GrpcService}s.
grpc/src/main/java/com/linecorp/armeria/internal/server/grpc/GrpcDocServicePlugin.java