public ClientRequestContext build() {
        final EndpointGroup endpointGroup;
        if (this.endpointGroup != null) {
            endpointGroup = this.endpointGroup;
        } else {
            endpointGroup = Endpoint.parse(authority());
        }

        final DefaultClientRequestContext ctx = new DefaultClientRequestContext(
                eventLoop(), meterRegistry(), sessionProtocol(), id(), method(), requestTarget(),
                endpointGroup, options,
                request(), rpcRequest(), requestOptions, CancellationScheduler.ofClient(0),
                isRequestStartTimeSet() ? requestStartTimeNanos() : System.nanoTime(),
                isRequestStartTimeSet() ? requestStartTimeMicros() : SystemInfo.currentTimeMicros());
        if (timedOut()) {
            ctx.timeoutNow();
        }
        ctx.init().handle((unused, cause) -> {
            ctx.finishInitialization(cause == null);
            return null;
        });
        ctx.logBuilder().session(fakeChannel(ctx.eventLoop()), sessionProtocol(), sslSession(),
                                 connectionTimings);

        if (request() != null) {
            ctx.logBuilder().requestHeaders(request().headers());
        }

        if (rpcRequest() != null) {
            ctx.logBuilder().requestContent(rpcRequest(), null);
        }

        return ctx;
    }
Returns a new {@link ClientRequestContext} created with the properties of this builder.
core/src/main/java/com/linecorp/armeria/client/ClientRequestContextBuilder.java