Copy strategiesConfigurers when cloning WebClient.Builder
This commit fixes the missing `strategiesConfigurers` copy when the `WebClient.Builder` is cloned. Fixes gh-24329
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -114,6 +114,7 @@ final class DefaultWebClientBuilder implements WebClient.Builder {
|
||||
this.filters = other.filters != null ? new ArrayList<>(other.filters) : null;
|
||||
this.connector = other.connector;
|
||||
this.strategies = other.strategies;
|
||||
this.strategiesConfigurers = other.strategiesConfigurers != null ? new ArrayList<>(other.strategiesConfigurers) : null;
|
||||
this.exchangeFunction = other.exchangeFunction;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2019 the original author or authors.
|
||||
* Copyright 2002-2020 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -20,6 +20,7 @@ import java.time.Duration;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
@@ -36,6 +37,7 @@ import org.springframework.core.NamedThreadLocal;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.http.codec.ClientCodecConfigurer;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
|
||||
@@ -231,6 +233,23 @@ public class DefaultWebClientTests {
|
||||
builder1a.defaultCookies(cookies -> assertThat(cookies.size()).isEqualTo(2));
|
||||
}
|
||||
|
||||
@Test
|
||||
void cloneBuilder() {
|
||||
Consumer<ClientCodecConfigurer> codecsConfig = c -> {};
|
||||
ExchangeFunction exchangeFunction = request -> Mono.empty();
|
||||
WebClient.Builder builder = WebClient.builder().baseUrl("https://example.org")
|
||||
.exchangeFunction(exchangeFunction)
|
||||
.filter((request, next) -> Mono.empty())
|
||||
.codecs(codecsConfig);
|
||||
|
||||
WebClient.Builder clonedBuilder = builder.clone();
|
||||
|
||||
assertThat(clonedBuilder).extracting("baseUrl").isEqualTo("https://example.org");
|
||||
assertThat(clonedBuilder).extracting("filters").isNotNull();
|
||||
assertThat(clonedBuilder).extracting("strategiesConfigurers").isNotNull();
|
||||
assertThat(clonedBuilder).extracting("exchangeFunction").isEqualTo(exchangeFunction);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void withStringAttribute() {
|
||||
Map<String, Object> actual = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user