public GrpcServiceBuilder addService(String path, ServerServiceDefinition service,
                                         MethodDescriptor<?, ?> methodDescriptor) {
        registryBuilder.addService(requireNonNull(path, "path"),
                                   requireNonNull(service, "service"),
                                   requireNonNull(methodDescriptor, "methodDescriptor"),
                                   null, ImmutableList.of());
        return this;
    }
Adds a {@linkplain MethodDescriptor method} of gRPC {@link ServerServiceDefinition} to this
{@link GrpcServiceBuilder}. You can get {@link MethodDescriptor}s from the enclosing class of
your generated stub.

<p>Note that the specified {@code path} replaces the normal gRPC service path.
Let's say you have the following gRPC service definition.
<pre>{@code
package example.grpc.hello;

service HelloService {
  rpc Hello (HelloRequest) returns (HelloReply) {}
}}</pre>
The normal gRPC service path for the {@code Hello} method is
{@code "/example.grpc.hello.HelloService/Hello"}.
However, if you set {@code "/fooHello"} to {@code path}, the {@code Hello} method will be served at
{@code "/fooHello"}. This is useful for supporting unframed gRPC with HTTP idiomatic path.
grpc/src/main/java/com/linecorp/armeria/server/grpc/GrpcServiceBuilder.java