public GrpcServiceBuilder addService(String path, BindableService bindableService,
                                         MethodDescriptor<?, ?> methodDescriptor) {
        // TODO(minwoox): consider renaming to addMethod(...)
        return addService(path, bindableService, methodDescriptor, ImmutableList.of());
    }
Adds a {@linkplain MethodDescriptor method} of gRPC {@link BindableService} 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