Skip to content

Commit

Permalink
Revert "Allow ExchangeStrategies customizations in WebClient"
Browse files Browse the repository at this point in the history
This reverts commit 43e047c.
  • Loading branch information
bclozel committed Dec 2, 2019
1 parent 4f86282 commit 25554d0
Show file tree
Hide file tree
Showing 17 changed files with 32 additions and 322 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2018 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.
Expand Down Expand Up @@ -137,24 +137,11 @@ public WebTestClient.Builder filters(Consumer<List<ExchangeFilterFunction>> filt
}

@Override
@Deprecated
public WebTestClient.Builder exchangeStrategies(ExchangeStrategies strategies) {
this.webClientBuilder.exchangeStrategies(strategies);
return this;
}

@Override
public WebTestClient.Builder exchangeStrategies(ExchangeStrategies.Builder strategies) {
this.webClientBuilder.exchangeStrategies(strategies);
return this;
}

@Override
public WebTestClient.Builder exchangeStrategies(Consumer<ExchangeStrategies.Builder> configurer) {
this.webClientBuilder.exchangeStrategies(configurer);
return this;
}

@Override
public WebTestClient.Builder responseTimeout(Duration timeout) {
this.responseTimeout = timeout;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@
* and Spring Kotlin extensions to perform integration tests on an embedded WebFlux server.
*
* @author Rossen Stoyanchev
* @author Brian Clozel
* @since 5.0
* @see StatusAssertions
* @see HeaderAssertions
Expand Down Expand Up @@ -437,34 +436,11 @@ interface Builder {

/**
* Configure the {@link ExchangeStrategies} to use.
* <p>This is useful for changing the default settings, yet still allowing
* further customizations via {@link #exchangeStrategies(Consumer)}.
* By default {@link ExchangeStrategies#withDefaults()} is used.
* <p>By default {@link ExchangeStrategies#withDefaults()} is used.
* @param strategies the strategies to use
* @deprecated as of 5.1 in favor of {@link #exchangeStrategies(ExchangeStrategies.Builder)}
*/
@Deprecated
Builder exchangeStrategies(ExchangeStrategies strategies);

/**
* Configure the {@link ExchangeStrategies.Builder} to use.
* <p>This is useful for changing the default settings, yet still allowing
* further customizations via {@link #exchangeStrategies(Consumer)}.
* By default {@link ExchangeStrategies#builder()} is used.
* @param strategies the strategies to use
* @since 5.1.12
*/
Builder exchangeStrategies(ExchangeStrategies.Builder strategies);

/**
* Customize the {@link ExchangeStrategies}.
* <p>Allows further customization on {@link ExchangeStrategies},
* mutating them if they were {@link #exchangeStrategies(ExchangeStrategies) set},
* or starting from {@link ExchangeStrategies#withDefaults() defaults}.
* @since 5.1.12
*/
Builder exchangeStrategies(Consumer<ExchangeStrategies.Builder> configurer);

/**
* Max amount of time to wait for responses.
* <p>By default 5 seconds.
Expand Down Expand Up @@ -901,7 +877,7 @@ interface BodyContentSpec {
* @since 5.1
* @see #xpath(String, Map, Object...)
*/
default XpathAssertions xpath(String expression, Object... args) {
default XpathAssertions xpath(String expression, Object... args){
return xpath(expression, null, args);
}

Expand All @@ -915,7 +891,7 @@ default XpathAssertions xpath(String expression, Object... args) {
* @param args arguments to parameterize the expression
* @since 5.1
*/
XpathAssertions xpath(String expression, @Nullable Map<String, String> namespaces, Object... args);
XpathAssertions xpath(String expression, @Nullable Map<String, String> namespaces, Object... args);

/**
* Assert the response body content with the given {@link Consumer}.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2018 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.
Expand Down Expand Up @@ -63,11 +63,6 @@ public interface ClientCodecConfigurer extends CodecConfigurer {
@Override
ClientDefaultCodecs defaultCodecs();

/**
* Clone this {@link ClientCodecConfigurer}.
*/
@Override
ClientCodecConfigurer clone();

/**
* Static factory method for a {@code ClientCodecConfigurer}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,12 +87,6 @@ public interface CodecConfigurer {
*/
List<HttpMessageWriter<?>> getWriters();

/**
* Clone this {@link CodecConfigurer}.
* @since 5.1.12
*/
CodecConfigurer clone();


/**
* Customize or replace the HTTP message readers and writers registered by
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,13 @@
* client and server specific variants.
*
* @author Rossen Stoyanchev
* @author Brian Clozel
* @since 5.0
*/
class BaseCodecConfigurer implements CodecConfigurer {

protected final BaseDefaultCodecs defaultCodecs;
private final BaseDefaultCodecs defaultCodecs;

protected final DefaultCustomCodecs customCodecs;
private final DefaultCustomCodecs customCodecs = new DefaultCustomCodecs();


/**
Expand All @@ -51,16 +50,6 @@ class BaseCodecConfigurer implements CodecConfigurer {
BaseCodecConfigurer(BaseDefaultCodecs defaultCodecs) {
Assert.notNull(defaultCodecs, "'defaultCodecs' is required");
this.defaultCodecs = defaultCodecs;
this.customCodecs = new DefaultCustomCodecs();
}

/**
* Constructor with another {@link BaseCodecConfigurer} to copy
* the configuration from.
*/
BaseCodecConfigurer(BaseCodecConfigurer other) {
this.defaultCodecs = other.cloneDefaultCodecs();
this.customCodecs = new DefaultCustomCodecs(other.customCodecs);
}


Expand Down Expand Up @@ -98,17 +87,6 @@ public List<HttpMessageWriter<?>> getWriters() {
return getWritersInternal(false);
}


@Override
public CodecConfigurer clone() {
return new BaseCodecConfigurer(this);
}

protected BaseDefaultCodecs cloneDefaultCodecs() {
return new BaseDefaultCodecs(this.defaultCodecs);
}


/**
* Internal method that returns the configured writers.
* @param forMultipart whether to returns writers for general use ("false"),
Expand All @@ -132,7 +110,7 @@ protected List<HttpMessageWriter<?>> getWritersInternal(boolean forMultipart) {
/**
* Default implementation of {@code CustomCodecs}.
*/
protected static final class DefaultCustomCodecs implements CustomCodecs {
private static final class DefaultCustomCodecs implements CustomCodecs {

private final List<HttpMessageReader<?>> typedReaders = new ArrayList<>();

Expand All @@ -143,16 +121,6 @@ protected static final class DefaultCustomCodecs implements CustomCodecs {
private final List<HttpMessageWriter<?>> objectWriters = new ArrayList<>();


DefaultCustomCodecs() {
}

DefaultCustomCodecs(DefaultCustomCodecs other) {
other.typedReaders.addAll(this.typedReaders);
other.typedWriters.addAll(this.typedWriters);
other.objectReaders.addAll(this.objectReaders);
other.objectWriters.addAll(this.objectWriters);
}

@Override
public void decoder(Decoder<?> decoder) {
reader(new DecoderHttpMessageReader<>(decoder));
Expand All @@ -175,6 +143,7 @@ public void writer(HttpMessageWriter<?> writer) {
(canWriteObject ? this.objectWriters : this.typedWriters).add(writer);
}


// Package private accessors...

List<HttpMessageReader<?>> getTypedReaders() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,21 +105,6 @@ class BaseDefaultCodecs implements CodecConfigurer.DefaultCodecs {
private boolean registerDefaults = true;


BaseDefaultCodecs() {
}

protected BaseDefaultCodecs(BaseDefaultCodecs other) {
this.jackson2JsonDecoder = other.jackson2JsonDecoder;
this.jackson2JsonEncoder = other.jackson2JsonEncoder;
this.protobufDecoder = other.protobufDecoder;
this.protobufEncoder = other.protobufEncoder;
this.jaxb2Decoder = other.jaxb2Decoder;
this.jaxb2Encoder = other.jaxb2Encoder;
this.maxInMemorySize = other.maxInMemorySize;
this.enableLoggingRequestDetails = other.enableLoggingRequestDetails;
this.registerDefaults = other.registerDefaults;
}

@Override
public void jackson2JsonDecoder(Decoder<?> decoder) {
this.jackson2JsonDecoder = decoder;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2018 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.
Expand Down Expand Up @@ -49,17 +49,6 @@ class ClientDefaultCodecsImpl extends BaseDefaultCodecs implements ClientCodecCo
private Supplier<List<HttpMessageWriter<?>>> partWritersSupplier;


ClientDefaultCodecsImpl() {
}

ClientDefaultCodecsImpl(ClientDefaultCodecsImpl other) {
super(other);
this.multipartCodecs = new DefaultMultipartCodecs(other.multipartCodecs);
this.sseDecoder = other.sseDecoder;
this.partWritersSupplier = other.partWritersSupplier;
}


/**
* Set a supplier for part writers to use when
* {@link #multipartCodecs()} are not explicitly configured.
Expand All @@ -84,14 +73,6 @@ public void serverSentEventDecoder(Decoder<?> decoder) {
this.sseDecoder = decoder;
}

@Override
public ClientDefaultCodecsImpl clone() {
ClientDefaultCodecsImpl codecs = new ClientDefaultCodecsImpl();
codecs.multipartCodecs = this.multipartCodecs;
codecs.sseDecoder = this.sseDecoder;
codecs.partWritersSupplier = this.partWritersSupplier;
return codecs;
}

@Override
protected void extendObjectReaders(List<HttpMessageReader<?>> objectReaders) {
Expand Down Expand Up @@ -135,17 +116,6 @@ private static class DefaultMultipartCodecs implements ClientCodecConfigurer.Mul

private final List<HttpMessageWriter<?>> writers = new ArrayList<>();


DefaultMultipartCodecs() {
}

DefaultMultipartCodecs(@Nullable DefaultMultipartCodecs other) {
if (other != null) {
this.writers.addAll(other.writers);
}
}


@Override
public ClientCodecConfigurer.MultipartCodecs encoder(Encoder<?> encoder) {
writer(new EncoderHttpMessageWriter<>(encoder));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2018 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.
Expand All @@ -26,30 +26,14 @@
*/
public class DefaultClientCodecConfigurer extends BaseCodecConfigurer implements ClientCodecConfigurer {


public DefaultClientCodecConfigurer() {
super(new ClientDefaultCodecsImpl());
((ClientDefaultCodecsImpl) defaultCodecs()).setPartWritersSupplier(() -> getWritersInternal(true));
}

private DefaultClientCodecConfigurer(DefaultClientCodecConfigurer other) {
super(other);
}


@Override
public ClientDefaultCodecs defaultCodecs() {
return (ClientDefaultCodecs) super.defaultCodecs();
}

@Override
public DefaultClientCodecConfigurer clone() {
return new DefaultClientCodecConfigurer(this);
}

@Override
protected BaseDefaultCodecs cloneDefaultCodecs() {
return new ClientDefaultCodecsImpl((ClientDefaultCodecsImpl) defaultCodecs());
}

}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2018 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.
Expand All @@ -26,28 +26,13 @@
*/
public class DefaultServerCodecConfigurer extends BaseCodecConfigurer implements ServerCodecConfigurer {


public DefaultServerCodecConfigurer() {
super(new ServerDefaultCodecsImpl());
}

private DefaultServerCodecConfigurer(BaseCodecConfigurer other) {
super(other);
}


@Override
public ServerDefaultCodecs defaultCodecs() {
return (ServerDefaultCodecs) super.defaultCodecs();
}

@Override
public DefaultServerCodecConfigurer clone() {
return new DefaultServerCodecConfigurer(this);
}

@Override
protected BaseDefaultCodecs cloneDefaultCodecs() {
return new ServerDefaultCodecsImpl((ServerDefaultCodecsImpl) defaultCodecs());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -46,16 +46,6 @@ class ServerDefaultCodecsImpl extends BaseDefaultCodecs implements ServerCodecCo
private Encoder<?> sseEncoder;


ServerDefaultCodecsImpl() {
}

ServerDefaultCodecsImpl(ServerDefaultCodecsImpl other) {
super(other);
this.multipartReader = other.multipartReader;
this.sseEncoder = other.sseEncoder;
}


@Override
public void multipartReader(HttpMessageReader<?> reader) {
this.multipartReader = reader;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@ public void encoderDecoderOverrides() {
assertEncoderInstance(jaxb2Encoder);
}

@Test
public void cloneConfigurer() {
CodecConfigurer clone = this.configurer.clone();
this.configurer.registerDefaults(false);
assertEquals(0, this.configurer.getReaders().size());
assertEquals(11, clone.getReaders().size());
}

private Decoder<?> getNextDecoder(List<HttpMessageReader<?>> readers) {
HttpMessageReader<?> reader = readers.get(this.index.getAndIncrement());
assertEquals(DecoderHttpMessageReader.class, reader.getClass());
Expand Down

0 comments on commit 25554d0

Please sign in to comment.