001package io.freefair.spring.okhttp;
002
003import okhttp3.OkHttpClient;
004import org.springframework.boot.autoconfigure.AutoConfiguration;
005import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
006import org.springframework.boot.autoconfigure.web.client.RestClientAutoConfiguration;
007import org.springframework.boot.web.client.RestClientCustomizer;
008import org.springframework.context.annotation.Bean;
009import org.springframework.context.annotation.Conditional;
010import org.springframework.http.client.OkHttp3ClientHttpRequestFactory;
011import org.springframework.web.client.RestClient;
012
013/**
014 * @author Lars Grefer
015 * @see RestClientAutoConfiguration
016 */
017@AutoConfiguration
018@ConditionalOnClass({RestClientCustomizer.class, RestClient.class})
019@Conditional(NotReactiveWebApplicationCondition.class)
020public class OkHttpRestClientAutoConfiguration {
021
022    @Bean
023    public RestClientCustomizer okHttpRestClientCustomizer(OkHttpClient okHttpClient) {
024        return restClientBuilder -> restClientBuilder.requestFactory(new OkHttp3ClientHttpRequestFactory(okHttpClient));
025    }
026
027}