ArmeriaRetrofitBuilder extends AbstractClientOptionsBuilder { public Retrofit build() { final SessionProtocol protocol = webClient.scheme().sessionProtocol(); final ClientOptions retrofitOptions = buildOptions(webClient.options()); final WebClient baseWebClient = WebClient.builder(protocol, webClient.endpointGroup()) .options(retrofitOptions) .build(); if (nonBaseClientFactory == null) { nonBaseClientFactory = (p, url) -> WebClient.builder(p, Endpoint.of(url.host(), url.port())) .options(retrofitOptions) .build(); } retrofitBuilder.callFactory(new ArmeriaCallFactory( baseWebClientHost, baseWebClientPort, baseWebClient, streaming ? SubscriberFactory.streaming(callbackExecutor) : SubscriberFactory.blocking(), new CachedNonBaseClientFactory(nonBaseClientFactory) )); return retrofitBuilder.build(); } ArmeriaRetrofitBuilder(WebClient webClient); ArmeriaRetrofitBuilder nonBaseClientFactory(
            BiFunction<? super SessionProtocol, ? super Endpoint, ? extends WebClient> nonBaseClientFactory); ArmeriaRetrofitBuilder addConverterFactory(Converter.Factory factory); ArmeriaRetrofitBuilder addCallAdapterFactory(CallAdapter.Factory factory); ArmeriaRetrofitBuilder callbackExecutor(Executor executor); ArmeriaRetrofitBuilder streaming(boolean streaming); ArmeriaRetrofitBuilder validateEagerly(boolean validateEagerly); Retrofit build(); @Override ArmeriaRetrofitBuilder options(ClientOptions options); @Override ArmeriaRetrofitBuilder options(ClientOptionValue<?>... options); @Override ArmeriaRetrofitBuilder options(Iterable<ClientOptionValue<?>> options); @Override ArmeriaRetrofitBuilder option(ClientOption<T> option, T value); @Override ArmeriaRetrofitBuilder option(ClientOptionValue<T> optionValue); @Override ArmeriaRetrofitBuilder factory(ClientFactory factory); @Override ArmeriaRetrofitBuilder writeTimeout(Duration writeTimeout); @Override ArmeriaRetrofitBuilder writeTimeoutMillis(long writeTimeoutMillis); @Override ArmeriaRetrofitBuilder responseTimeout(Duration responseTimeout); @Override ArmeriaRetrofitBuilder responseTimeoutMillis(long responseTimeoutMillis); @Override ArmeriaRetrofitBuilder maxResponseLength(long maxResponseLength); @Override ArmeriaRetrofitBuilder requestIdGenerator(Supplier<RequestId> requestIdGenerator); @Override ArmeriaRetrofitBuilder endpointRemapper(
            Function<? super Endpoint, ? extends EndpointGroup> endpointRemapper); @Override ArmeriaRetrofitBuilder decorator(
            Function<? super HttpClient, ? extends HttpClient> decorator); @Override ArmeriaRetrofitBuilder decorator(DecoratingHttpClientFunction decorator); @Override ArmeriaRetrofitBuilder clearDecorators(); @Override ArmeriaRetrofitBuilder rpcDecorator(
            Function<? super RpcClient, ? extends RpcClient> decorator); @Override ArmeriaRetrofitBuilder rpcDecorator(DecoratingRpcClientFunction decorator); @Override ArmeriaRetrofitBuilder addHeader(CharSequence name, Object value); @Override ArmeriaRetrofitBuilder addHeaders(
            Iterable<? extends Entry<? extends CharSequence, ?>> headers); @Override ArmeriaRetrofitBuilder setHeader(CharSequence name, Object value); @Override ArmeriaRetrofitBuilder setHeaders(
            Iterable<? extends Entry<? extends CharSequence, ?>> headers); @Override ArmeriaRetrofitBuilder auth(BasicToken token); @Override ArmeriaRetrofitBuilder auth(OAuth1aToken token); @Override ArmeriaRetrofitBuilder auth(OAuth2Token token);  }
@Test void build() { final Retrofit retrofit = ArmeriaRetrofit.of("http: assertThat(retrofit.baseUrl().toString()).isEqualTo("http: }