public InstanceWebClient build() { WebClient.Builder webClientBuilder; if (this.webClient == null) { webClientBuilder = createDefaultWebClient(this.connectTimeout, this.readTimeout); } else { webClientBuilder = this.webClient.mutate(); } webClientBuilder.filters(webClientFilters -> { webClientFilters.add(InstanceExchangeFilterFunctions.addHeaders(this.httpHeadersProvider)); webClientFilters.add(InstanceExchangeFilterFunctions.rewriteEndpointUrl()); webClientFilters.add(InstanceExchangeFilterFunctions.setDefaultAcceptHeader()); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.health())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.info())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.env())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.httptrace())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.threaddump())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.liquibase())); webClientFilters.add(InstanceExchangeFilterFunctions.convertLegacyEndpoint(LegacyEndpointConverters.flyway())); webClientFilters.add(InstanceExchangeFilterFunctions.retry(this.defaultRetries, this.retriesPerEndpoint)); this.filters.forEach(filter -> webClientFilters.add(InstanceExchangeFilterFunctions.toExchangeFilterFunction( filter))); }); webClientCustomizer.customize(webClientBuilder); return new InstanceWebClient(webClientBuilder.build()); }
public WebClient instance(Instance instance) { return webClient.mutate() .filters(filters -> filters.add(0, InstanceExchangeFilterFunctions.setInstance(instance))) .build(); }
public WebClient instance(Mono<Instance> instance) { return webClient.mutate() .filters(filters -> filters.add(0, InstanceExchangeFilterFunctions.setInstance(instance))) .build(); }
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof WebClient) { WebClient webClient = (WebClient) bean; return webClient.mutate() .filters(addTraceExchangeFilterFunctionIfNotPresent()).build(); } else if (bean instanceof WebClient.Builder) { WebClient.Builder webClientBuilder = (WebClient.Builder) bean; return webClientBuilder.filters(addTraceExchangeFilterFunctionIfNotPresent()); } return bean; }
@Override public WebTestClient.Builder filters(Consumer<List<ExchangeFilterFunction>> filtersConsumer) { this.webClientBuilder.filters(filtersConsumer); return this; }
@Override public WebTestClient.Builder filters(Consumer<List<ExchangeFilterFunction>> filtersConsumer) { this.webClientBuilder.filters(filtersConsumer); return this; }
@Override public void customize(WebClient.Builder webClientBuilder) { webClientBuilder.filters((filterFunctions) -> { if (!filterFunctions.contains(this.filterFunction)) { filterFunctions.add(0, this.filterFunction); } }); }
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (bean instanceof WebClient) { WebClient webClient = (WebClient) bean; return webClient.mutate() .filters(addTraceExchangeFilterFunctionIfNotPresent()).build(); } else if (bean instanceof WebClient.Builder) { WebClient.Builder webClientBuilder = (WebClient.Builder) bean; return webClientBuilder.filters(addTraceExchangeFilterFunctionIfNotPresent()); } return bean; }
builder1.filters(filters -> assertEquals(1, filters.size())); builder1.defaultHeaders(headers -> assertEquals(1, headers.size())); builder1.defaultCookies(cookies -> assertEquals(1, cookies.size())); builder2.filters(filters -> assertEquals(2, filters.size())); builder2.defaultHeaders(headers -> assertEquals(2, headers.size())); builder2.defaultCookies(cookies -> assertEquals(2, cookies.size())); builder1a.filters(filters -> assertEquals(2, filters.size())); builder1a.defaultHeaders(headers -> assertEquals(2, headers.size())); builder1a.defaultCookies(cookies -> assertEquals(2, cookies.size()));
@Override public WebTestClient.Builder filters(Consumer<List<ExchangeFilterFunction>> filtersConsumer) { this.webClientBuilder.filters(filtersConsumer); return this; }