private <I, O> DefaultClientRequestContext newContext(HttpMethod method, HttpRequest req,
                                                          MethodDescriptor<I, O> methodDescriptor) {
        final String path = req.path();
        final RequestTarget reqTarget = RequestTarget.forClient(path);
        assert reqTarget != null : path;
        RequestTargetCache.putForClient(path, reqTarget);

        final RequestOptions requestOptions = REQUEST_OPTIONS_MAP.get(methodDescriptor.getType());
        assert requestOptions != null;

        return new DefaultClientRequestContext(
                meterRegistry,
                sessionProtocol,
                options().requestIdGenerator().get(),
                method,
                reqTarget,
                endpointGroup(),
                options(),
                req,
                null,
                requestOptions,
                System.nanoTime(),
                SystemInfo.currentTimeMicros());
    }
A {@link Channel} backed by an armeria {@link HttpClient}. Stores the {@link ClientBuilderParams} and other
{@link HttpClient} params for the associated gRPC stub.
grpc/src/main/java/com/linecorp/armeria/internal/client/grpc/ArmeriaChannel.java