@Override
    public HttpClient build() {
        if (client != null) {
            return new ArmeriaHttpClient(this, client.getWebClient());
        }

        final WebClientBuilder clientBuilder = WebClient.builder();
        clientBuilder.factory(clientFactory(false));

        if (LoggerFactory.getLogger(ArmeriaHttpClient.class).isTraceEnabled()) {
            final LogWriter logWriter = LogWriter.builder()
                                                 .logger(ArmeriaHttpClient.class.getName())
                                                 .requestLogLevel(LogLevel.TRACE)
                                                 .successfulResponseLogLevel(LogLevel.TRACE)
                                                 .build();
            clientBuilder.decorator(LoggingClient.builder()
                                                 .logWriter(logWriter)
                                                 .newDecorator());
            // 16 KiB should be enough for most of the cases.
            clientBuilder.decorator(ContentPreviewingClient.newDecorator(16 * 1024));
        }

        if (followRedirects) {
            clientBuilder.followRedirects();
        }

        clientFactory.additionalConfig(clientBuilder);
        final WebClient webClient = clientBuilder.build();
        return client = new ArmeriaHttpClient(this, webClient);
    }
A {@link StandardHttpClientBuilder} to build an {@link ArmeriaHttpClient}.
kubernetes/src/main/java/com/linecorp/armeria/client/kubernetes/ArmeriaHttpClientBuilder.java