diff --git a/spring-web-reactive/src/main/java/org/springframework/web/reactive/support/AbstractServletHttpHandlerAdapterInitializer.java b/spring-web-reactive/src/main/java/org/springframework/web/reactive/support/AbstractServletHttpHandlerAdapterInitializer.java index 792708566e..2dedbfc1b5 100644 --- a/spring-web-reactive/src/main/java/org/springframework/web/reactive/support/AbstractServletHttpHandlerAdapterInitializer.java +++ b/spring-web-reactive/src/main/java/org/springframework/web/reactive/support/AbstractServletHttpHandlerAdapterInitializer.java @@ -38,8 +38,7 @@ import org.springframework.web.WebApplicationInitializer; * @author Arjen Poutsma * @since 5.0 */ -public abstract class AbstractServletHttpHandlerAdapterInitializer - implements WebApplicationInitializer { +public abstract class AbstractServletHttpHandlerAdapterInitializer implements WebApplicationInitializer { /** * The default servlet name. Can be customized by overriding {@link #getServletName}. @@ -69,18 +68,16 @@ public abstract class AbstractServletHttpHandlerAdapterInitializer HttpHandler httpHandler = createHttpHandler(); Assert.notNull(httpHandler, - "createHttpHandler() did not return a HttpHandler for servlet [" - + servletName + "]"); + "createHttpHandler() did not return a HttpHandler for servlet [" + servletName + "]"); ServletHttpHandlerAdapter servlet = createServlet(httpHandler); Assert.notNull(servlet, - "createHttpHandler() did not return a ServletHttpHandlerAdapter for servlet [" - + servletName + "]"); + "createHttpHandler() did not return a ServletHttpHandlerAdapter for servlet [" + servletName + "]"); ServletRegistration.Dynamic registration = servletContext.addServlet(servletName, servlet); Assert.notNull(registration, "Failed to register servlet with name '" + servletName + "'." + - "Check if there is another servlet registered under the same name."); + "Check if there is another servlet registered under the same name."); registration.setLoadOnStartup(1); registration.addMapping(getServletMappings()); diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpConnector.java b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpConnector.java index 46f8b5a03d..ba38c667e0 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpConnector.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/ReactorClientHttpConnector.java @@ -19,24 +19,25 @@ package org.springframework.http.client.reactive; import java.net.URI; import java.util.function.Function; -import org.springframework.http.HttpMethod; - import reactor.core.publisher.Mono; import reactor.ipc.netty.config.ClientOptions; import reactor.ipc.netty.http.HttpException; import reactor.ipc.netty.http.HttpInbound; +import org.springframework.http.HttpMethod; + /** * Reactor-Netty implementation of {@link ClientHttpConnector} * * @author Brian Clozel - * @see reactor.ipc.netty.http.HttpClient * @since 5.0 + * @see reactor.ipc.netty.http.HttpClient */ public class ReactorClientHttpConnector implements ClientHttpConnector { private final ClientOptions clientOptions; + /** * Create a Reactor Netty {@link ClientHttpConnector} with default {@link ClientOptions} * and SSL support enabled. @@ -52,6 +53,7 @@ public class ReactorClientHttpConnector implements ClientHttpConnector { this.clientOptions = clientOptions; } + @Override public Mono connect(HttpMethod method, URI uri, Function> requestCallback) { @@ -66,4 +68,4 @@ public class ReactorClientHttpConnector implements ClientHttpConnector { .map(httpInbound -> new ReactorClientHttpResponse(httpInbound)); } -} \ No newline at end of file +} diff --git a/spring-web/src/main/java/org/springframework/http/codec/AbstractServerHttpMessageWriter.java b/spring-web/src/main/java/org/springframework/http/codec/AbstractServerHttpMessageWriter.java index 48a5015366..54ddec8e50 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/AbstractServerHttpMessageWriter.java +++ b/spring-web/src/main/java/org/springframework/http/codec/AbstractServerHttpMessageWriter.java @@ -47,6 +47,7 @@ public abstract class AbstractServerHttpMessageWriter implements ServerHttpMe this.writer = writer; } + @Override public boolean canWrite(ResolvableType elementType, MediaType mediaType) { return this.writer.canWrite(elementType, mediaType); @@ -78,14 +79,13 @@ public abstract class AbstractServerHttpMessageWriter implements ServerHttpMe /** * Invoked before writing the response to resolve hints by * {@link #write(Publisher, ResolvableType, ResolvableType, MediaType, ServerHttpRequest, ServerHttpResponse, Map)}. - * * @param streamType the original type used for the method return value. For annotation * based controllers, the {@link MethodParameter} is available via {@link ResolvableType#getSource()}. * @param elementType the stream element type to process * @param mediaType the content type to use when writing. May be {@code null} to * indicate that the default content type of the converter must be used. * @param request the current HTTP request - * @return Additional information about how to write the body + * @return additional information about how to write the body */ protected abstract Map resolveWriteHints(ResolvableType streamType, ResolvableType elementType, MediaType mediaType, ServerHttpRequest request); diff --git a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java index f03d3381e6..e88a1dd4af 100644 --- a/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java +++ b/spring-web/src/main/java/org/springframework/http/server/reactive/ReactorHttpHandlerAdapter.java @@ -18,16 +18,15 @@ package org.springframework.http.server.reactive; import java.util.function.Function; +import io.netty.handler.codec.http.HttpResponseStatus; import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import reactor.core.publisher.Mono; import reactor.ipc.netty.http.HttpChannel; -import org.apache.commons.logging.LogFactory; import org.springframework.core.io.buffer.NettyDataBufferFactory; import org.springframework.util.Assert; -import io.netty.handler.codec.http.HttpResponseStatus; - /** * Adapt {@link HttpHandler} to the Reactor Netty channel handling function. * @@ -43,7 +42,7 @@ public class ReactorHttpHandlerAdapter implements Function *
  • {@link ByteBufferEncoder} / {@link ByteBufferDecoder}
  • @@ -115,7 +112,6 @@ public final class WebClient { *
  • {@link Jaxb2XmlEncoder} / {@link Jaxb2XmlDecoder}
  • *
  • {@link Jackson2JsonEncoder} / {@link Jackson2JsonDecoder}
  • * - * * @param clientHttpConnector the {@code ClientHttpRequestFactory} to use */ public WebClient(ClientHttpConnector clientHttpConnector) { @@ -124,8 +120,9 @@ public final class WebClient { this.webClientConfig.setResponseErrorHandler(new DefaultResponseErrorHandler()); } + /** - * Adds default HTTP message readers. + * Add default HTTP message readers. */ protected final void addDefaultHttpMessageReaders(List> messageReaders) { messageReaders.add(new DecoderHttpMessageReader<>(new ByteBufferDecoder())); @@ -140,7 +137,7 @@ public final class WebClient { } /** - * Adds default HTTP message writers. + * Add default HTTP message writers. */ protected final void addDefaultHttpMessageWriters(List> messageWriters) { messageWriters.add(new EncoderHttpMessageWriter<>(new ByteBufferEncoder())); @@ -187,11 +184,10 @@ public final class WebClient { Collections.unmodifiableList(interceptors) : Collections.emptyList()); } + /** * Perform the actual HTTP request/response exchange - * - *

    - * Requesting from the exposed {@code Flux} will result in: + *

    Requesting from the exposed {@code Flux} will result in: *

      *
    • building the actual HTTP request using the provided {@code ClientWebRequestBuilder}
    • *
    • encoding the HTTP request body with the configured {@code HttpMessageWriter}s
    • @@ -199,7 +195,6 @@ public final class WebClient { *
    */ public WebResponseActions perform(ClientWebRequestBuilder builder) { - ClientWebRequest clientWebRequest = builder.build(); DefaultClientHttpRequestInterceptionChain interception = new DefaultClientHttpRequestInterceptionChain(this.clientHttpConnector, @@ -214,7 +209,6 @@ public final class WebClient { public void doWithStatus(Consumer consumer) { clientResponse.doOnNext(clientHttpResponse -> consumer.accept(clientHttpResponse.getStatusCode())); } - @Override public T extract(ResponseExtractor extractor) { return extractor.extract(clientResponse, webClientConfig); @@ -222,6 +216,7 @@ public final class WebClient { }; } + protected class DefaultWebClientConfig implements WebClientConfig { private List> messageReaders; @@ -230,7 +225,6 @@ public final class WebClient { private ResponseErrorHandler responseErrorHandler; - public DefaultWebClientConfig() { this.messageReaders = new ArrayList<>(); addDefaultHttpMessageReaders(this.messageReaders); @@ -266,13 +260,13 @@ public final class WebClient { } } + protected class DefaultRequestCallback implements Function> { private final ClientWebRequest clientWebRequest; private final List> requestCustomizers; - public DefaultRequestCallback(ClientWebRequest clientWebRequest, List> requestCustomizers) { this.clientWebRequest = clientWebRequest; @@ -303,9 +297,8 @@ public final class WebClient { } @SuppressWarnings({"unchecked", "rawtypes"}) - protected Mono writeRequestBody(Publisher content, - ResolvableType requestType, ClientHttpRequest request, - List> messageWriters) { + protected Mono writeRequestBody(Publisher content, ResolvableType requestType, + ClientHttpRequest request, List> messageWriters) { MediaType contentType = request.getHeaders().getContentType(); Optional> messageWriter = resolveWriter(messageWriters, requestType, contentType); @@ -324,6 +317,7 @@ public final class WebClient { } } + protected class DefaultClientHttpRequestInterceptionChain implements ClientHttpRequestInterceptionChain { private final ClientHttpConnector connector; @@ -337,10 +331,9 @@ public final class WebClient { private int index; public DefaultClientHttpRequestInterceptionChain(ClientHttpConnector connector, - List interceptors, - ClientWebRequest clientWebRequest) { + List interceptors, ClientWebRequest clientWebRequest) { - Assert.notNull(connector, "'connector' should not be null"); + Assert.notNull(connector, "ClientHttpConnector should not be null"); this.connector = connector; this.interceptors = interceptors; this.clientWebRequest = clientWebRequest; @@ -364,7 +357,6 @@ public final class WebClient { new DefaultRequestCallback(this.clientWebRequest, this.requestCustomizers)); } } - } -} \ No newline at end of file +}