diff --git a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToReactorConverter.java b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToReactorConverter.java
index 52d894048c1..411e0ab42ad 100644
--- a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToReactorConverter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToReactorConverter.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToRxJava1Converter.java b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToRxJava1Converter.java
index b4b2043dcb5..b82d4742c83 100644
--- a/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToRxJava1Converter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/core/convert/support/ReactiveStreamsToRxJava1Converter.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpInputMessage.java
similarity index 60%
rename from spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpRequest.java
rename to spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpInputMessage.java
index dca48dee1cb..8cd4535b6bd 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpInputMessage.java
@@ -13,21 +13,26 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.reactive.web.http;
+
+package org.springframework.http;
import java.nio.ByteBuffer;
import org.reactivestreams.Publisher;
/**
- * Represent a server-side HTTP request.
+ * Represents a "reactive" HTTP input message, consisting of {@linkplain #getHeaders() headers}
+ * and a readable {@linkplain #getBody() streaming body }.
+ *
+ *
Typically implemented by an HTTP request on the server-side, or a response on the client-side.
*
- * @author Rossen Stoyanchev
+ * @author Arjen Poutsma
*/
-public interface ServerHttpRequest extends HttpRequest {
+public interface ReactiveHttpInputMessage extends HttpMessage {
/**
- * Return the body of the message as a reactive stream.
+ * Return the body of the message as an publisher of {@code ByteBuffer}s.
+ * @return the body
*/
Publisher getBody();
diff --git a/spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpOutputMessage.java b/spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpOutputMessage.java
new file mode 100644
index 00000000000..674268f6cd0
--- /dev/null
+++ b/spring-web-reactive/src/main/java/org/springframework/http/ReactiveHttpOutputMessage.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright 2002-2015 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.http;
+
+import java.nio.ByteBuffer;
+
+import org.reactivestreams.Publisher;
+
+/**
+ * Represents a "reactive" HTTP output message, consisting of {@linkplain #getHeaders() headers}
+ * and the capability to add a {@linkplain #setBody(Publisher) body}.
+ *
+ * Typically implemented by an HTTP request on the client-side, or a response on the server-side.
+ *
+ * @author Arjen Poutsma
+ */
+public interface ReactiveHttpOutputMessage extends HttpMessage {
+
+ /**
+ * Sets the body of this message to the given publisher of {@link ByteBuffer}s. The
+ * publisher will be used to write to the underlying HTTP layer with asynchronously,
+ * given pull demand by this layer.
+ *
+ * @param body the body to use
+ * @return a publisher that indicates completion
+ */
+ Publisher setBody(Publisher body);
+
+}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpRequest.java
similarity index 66%
rename from spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpRequest.java
rename to spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpRequest.java
index 96767fe2fee..591a0177275 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpRequest.java
@@ -13,19 +13,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.reactive.web.http;
-import java.net.URI;
+package org.springframework.http.client;
-import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpRequest;
+import org.springframework.http.ReactiveHttpOutputMessage;
/**
- * @author Rossen Stoyanchev
+ * Represents a "reactive" client-side HTTP request.
+ *
+ * @author Arjen Poutsma
*/
-public interface HttpRequest extends HttpMessage {
-
- HttpMethod getMethod();
-
- URI getURI();
+public interface ReactiveClientHttpRequest extends HttpRequest, ReactiveHttpOutputMessage {
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpResponse.java
new file mode 100644
index 00000000000..b5f619bdc92
--- /dev/null
+++ b/spring-web-reactive/src/main/java/org/springframework/http/client/ReactiveClientHttpResponse.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2002-2015 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.http.client;
+
+import java.io.Closeable;
+import java.io.IOException;
+
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ReactiveHttpInputMessage;
+
+/**
+ * Represents a "reactive" client-side HTTP response.
+ *
+ * @author Arjen Poutsma
+ */
+public interface ReactiveClientHttpResponse extends ReactiveHttpInputMessage, Closeable {
+
+ /**
+ * Return the HTTP status code of the response.
+ * @return the HTTP status as an HttpStatus enum value
+ * @throws IOException in case of I/O errors
+ */
+ HttpStatus getStatusCode() throws IOException;
+
+ /**
+ * Return the HTTP status code of the response as integer
+ * @return the HTTP status as an integer
+ * @throws IOException in case of I/O errors
+ */
+ int getRawStatusCode() throws IOException;
+
+ /**
+ * Return the HTTP status text of the response.
+ * @return the HTTP status text
+ * @throws IOException in case of I/O errors
+ */
+ String getStatusText() throws IOException;
+
+ /**
+ * Close this response, freeing any resources created.
+ */
+ @Override
+ void close();
+
+}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpMessage.java b/spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpRequest.java
similarity index 66%
rename from spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpMessage.java
rename to spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpRequest.java
index a3c6092d312..4b5d0d1fa2c 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpMessage.java
+++ b/spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpRequest.java
@@ -13,15 +13,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.reactive.web.http;
-import org.springframework.http.HttpHeaders;
+package org.springframework.http.server;
+
+import org.springframework.http.HttpRequest;
+import org.springframework.http.ReactiveHttpInputMessage;
/**
- * @author Rossen Stoyanchev
+ * Represents a "reactive" server-side HTTP request
+ *
+ * @author Arjen Poutsma
*/
-public interface HttpMessage {
-
- HttpHeaders getHeaders();
+public interface ReactiveServerHttpRequest extends HttpRequest, ReactiveHttpInputMessage {
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpResponse.java
similarity index 58%
rename from spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpResponse.java
rename to spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpResponse.java
index 1f64f2dd6e0..3563b7b07b2 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/ServerHttpResponse.java
+++ b/spring-web-reactive/src/main/java/org/springframework/http/server/ReactiveServerHttpResponse.java
@@ -13,23 +13,28 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.reactive.web.http;
-import java.nio.ByteBuffer;
+package org.springframework.http.server;
import org.reactivestreams.Publisher;
import org.springframework.http.HttpStatus;
+import org.springframework.http.ReactiveHttpOutputMessage;
/**
- * Represent a server-side HTTP response.
+ * Represents a "reactive" server-side HTTP response.
*
- * @author Rossen Stoyanchev
+ * @author Arjen Poutsma
*/
-public interface ServerHttpResponse extends HttpMessage {
+public interface ReactiveServerHttpResponse
+ extends ReactiveHttpOutputMessage {
+ /**
+ * Set the HTTP status code of the response.
+ * @param status the HTTP status as an HttpStatus enum value
+ */
void setStatusCode(HttpStatus status);
-
+
/**
* Write the response headers. This method must be invoked to send responses without body.
* @return A {@code Publisher} used to signal the demand, and receive a notification
@@ -37,16 +42,4 @@ public interface ServerHttpResponse extends HttpMessage {
* network.
*/
Publisher writeHeaders();
-
- /**
- * Write the provided reactive stream of bytes to the response body. Most servers
- * support multiple {@code writeWith} calls. Headers are written automatically
- * before the body, so not need to call {@link #writeHeaders()} explicitly.
- * @param contentPublisher the stream to write in the response body.
- * @return A {@code Publisher} used to signal the demand, and receive a notification
- * when the handling is complete (success or error) including the flush of the data on the
- * network.
- */
- Publisher writeWith(Publisher contentPublisher);
-
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JacksonJsonDecoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JacksonJsonDecoder.java
index 0562653bdc3..3b98fbfa5b5 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JacksonJsonDecoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JacksonJsonDecoder.java
@@ -16,18 +16,19 @@
package org.springframework.reactive.codec.decoder;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectReader;
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.reactive.codec.CodecException;
import org.springframework.reactive.codec.encoder.JacksonJsonEncoder;
import org.springframework.reactive.io.ByteBufferInputStream;
-import reactor.Publishers;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
/**
* Decode from a bytes stream of JSON objects to a stream of {@code Object} (POJO).
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/Jaxb2Decoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/Jaxb2Decoder.java
index bff1ef03341..c1c0dc1883a 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/Jaxb2Decoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/Jaxb2Decoder.java
@@ -16,27 +16,32 @@
package org.springframework.reactive.codec.decoder;
+import java.nio.ByteBuffer;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.UnmarshalException;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.transform.Source;
+import javax.xml.transform.sax.SAXSource;
+import javax.xml.transform.stream.StreamSource;
+
import org.reactivestreams.Publisher;
-import org.springframework.core.ResolvableType;
-import org.springframework.http.MediaType;
-import org.springframework.reactive.codec.CodecException;
-import org.springframework.reactive.codec.encoder.Jaxb2Encoder;
-import org.springframework.reactive.io.ByteBufferPublisherInputStream;
-import org.springframework.util.Assert;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;
import org.xml.sax.helpers.XMLReaderFactory;
import reactor.Publishers;
-import javax.xml.bind.*;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.transform.Source;
-import javax.xml.transform.sax.SAXSource;
-import javax.xml.transform.stream.StreamSource;
-import java.nio.ByteBuffer;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import org.springframework.core.ResolvableType;
+import org.springframework.http.MediaType;
+import org.springframework.reactive.codec.CodecException;
+import org.springframework.reactive.codec.encoder.Jaxb2Encoder;
+import org.springframework.reactive.io.ByteBufferPublisherInputStream;
+import org.springframework.util.Assert;
/**
* Decode from a bytes stream of XML elements to a stream of {@code Object} (POJO).
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JsonObjectDecoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JsonObjectDecoder.java
index 9831b4035f4..e3346d97934 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JsonObjectDecoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/JsonObjectDecoder.java
@@ -16,20 +16,20 @@
package org.springframework.reactive.codec.decoder;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.List;
+
import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import io.netty.buffer.Unpooled;
import org.reactivestreams.Publisher;
-import org.springframework.core.ResolvableType;
-import org.springframework.http.MediaType;
-import org.springframework.reactive.codec.encoder.JsonObjectEncoder;
-
import reactor.Publishers;
import reactor.fn.Function;
-import java.nio.ByteBuffer;
-import java.util.ArrayList;
-import java.util.List;
+import org.springframework.core.ResolvableType;
+import org.springframework.http.MediaType;
+import org.springframework.reactive.codec.encoder.JsonObjectEncoder;
/**
* Decode an arbitrary split byte stream representing JSON objects to a byte stream
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/StringDecoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/StringDecoder.java
index 91742a84b7f..152cb6cf34d 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/StringDecoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/decoder/StringDecoder.java
@@ -16,17 +16,18 @@
package org.springframework.reactive.codec.decoder;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+import reactor.io.buffer.Buffer;
+
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.reactive.codec.encoder.StringEncoder;
import org.springframework.reactive.codec.support.HintUtils;
-import reactor.Publishers;
-import reactor.io.buffer.Buffer;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
/**
* Decode from a bytes stream to a String stream.
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JacksonJsonEncoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JacksonJsonEncoder.java
index efdb652be0f..f24f7d76d15 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JacksonJsonEncoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JacksonJsonEncoder.java
@@ -16,18 +16,19 @@
package org.springframework.reactive.codec.encoder;
+import java.io.IOException;
+import java.nio.ByteBuffer;
+
import com.fasterxml.jackson.databind.ObjectMapper;
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+import reactor.io.buffer.Buffer;
+
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.reactive.codec.CodecException;
import org.springframework.reactive.codec.decoder.JacksonJsonDecoder;
import org.springframework.reactive.io.BufferOutputStream;
-import reactor.Publishers;
-import reactor.io.buffer.Buffer;
-
-import java.io.IOException;
-import java.nio.ByteBuffer;
/**
* Encode from an {@code Object} stream to a byte stream of JSON objects.
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/Jaxb2Encoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/Jaxb2Encoder.java
index 3a2887e21f7..6533e5fe904 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/Jaxb2Encoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/Jaxb2Encoder.java
@@ -16,7 +16,19 @@
package org.springframework.reactive.codec.encoder;
+import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.MarshalException;
+import javax.xml.bind.Marshaller;
+
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+import reactor.io.buffer.Buffer;
+
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.reactive.codec.CodecException;
@@ -24,17 +36,6 @@ import org.springframework.reactive.codec.decoder.Jaxb2Decoder;
import org.springframework.reactive.io.BufferOutputStream;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
-import reactor.Publishers;
-import reactor.io.buffer.Buffer;
-
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.MarshalException;
-import javax.xml.bind.Marshaller;
-import java.nio.ByteBuffer;
-import java.nio.charset.StandardCharsets;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
/**
* Encode from an {@code Object} stream to a byte stream of XML elements.
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JsonObjectEncoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JsonObjectEncoder.java
index d39e530f732..e6a070642af 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JsonObjectEncoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/JsonObjectEncoder.java
@@ -16,23 +16,22 @@
package org.springframework.reactive.codec.encoder;
-import org.reactivestreams.Publisher;
-import org.reactivestreams.Subscriber;
-import org.springframework.core.ResolvableType;
-import org.springframework.http.MediaType;
-import org.springframework.reactive.codec.decoder.JsonObjectDecoder;
-
-import reactor.core.subscriber.SubscriberBarrier;
-
import java.nio.ByteBuffer;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
-import static reactor.Publishers.*;
-
+import org.reactivestreams.Publisher;
+import org.reactivestreams.Subscriber;
+import reactor.core.subscriber.SubscriberBarrier;
import reactor.core.support.BackpressureUtils;
import reactor.io.buffer.Buffer;
+import org.springframework.core.ResolvableType;
+import org.springframework.http.MediaType;
+import org.springframework.reactive.codec.decoder.JsonObjectDecoder;
+
+import static reactor.Publishers.lift;
+
/**
* Encode a byte stream of individual JSON element to a byte stream representing a single
* JSON array when if it contains more than one element.
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/StringEncoder.java b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/StringEncoder.java
index ac267de1c1a..f7bc6699fcf 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/StringEncoder.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/codec/encoder/StringEncoder.java
@@ -16,16 +16,17 @@
package org.springframework.reactive.codec.encoder;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+
import org.springframework.core.ResolvableType;
import org.springframework.http.MediaType;
import org.springframework.reactive.codec.decoder.StringDecoder;
import org.springframework.reactive.codec.support.HintUtils;
-import reactor.Publishers;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
/**
* Encode from a String stream to a bytes stream.
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/io/ByteBufferPublisherInputStream.java b/spring-web-reactive/src/main/java/org/springframework/reactive/io/ByteBufferPublisherInputStream.java
index 647e6887126..a4eace4e866 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/io/ByteBufferPublisherInputStream.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/io/ByteBufferPublisherInputStream.java
@@ -16,16 +16,17 @@
package org.springframework.reactive.io;
-import org.reactivestreams.Publisher;
-import org.reactivestreams.Subscription;
-import org.springframework.util.Assert;
-import reactor.Publishers;
-
import java.io.IOException;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.concurrent.BlockingQueue;
+import org.reactivestreams.Publisher;
+import org.reactivestreams.Subscription;
+import reactor.Publishers;
+
+import org.springframework.util.Assert;
+
/**
* {@code InputStream} implementation based on a byte array {@link Publisher}.
*
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/DispatcherHandler.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/DispatcherHandler.java
index b50aebff180..89c372946ea 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/DispatcherHandler.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/DispatcherHandler.java
@@ -13,25 +13,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
import org.springframework.http.HttpStatus;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.web.http.HttpHandler;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
-import reactor.Publishers;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
/**
* Central dispatcher for HTTP request handlers/controllers. Dispatches to registered
@@ -91,7 +93,7 @@ public class DispatcherHandler implements HttpHandler, ApplicationContextAware {
@Override
- public Publisher handle(ServerHttpRequest request, ServerHttpResponse response) {
+ public Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
if (logger.isDebugEnabled()) {
logger.debug("Processing " + request.getMethod() + " request for [" + request.getURI() + "]");
@@ -123,7 +125,7 @@ public class DispatcherHandler implements HttpHandler, ApplicationContextAware {
}
- protected Object getHandler(ServerHttpRequest request) {
+ protected Object getHandler(ReactiveServerHttpRequest request) {
Object handler = null;
for (HandlerMapping handlerMapping : this.handlerMappings) {
handler = handlerMapping.getHandler(request);
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerAdapter.java
index 01fc9a9f0ef..91d94204127 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerAdapter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerAdapter.java
@@ -13,10 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
/**
* Interface that must be implemented for each handler type to handle an HTTP request.
@@ -52,6 +53,6 @@ public interface HandlerAdapter {
* @throws Exception in case of errors
* @return An {@link HandlerResult} instance
*/
- HandlerResult handle(ServerHttpRequest request, ServerHttpResponse response, Object handler) throws Exception;
+ HandlerResult handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response, Object handler) throws Exception;
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerMapping.java
index e3472eba535..2a087989a7c 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerMapping.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerMapping.java
@@ -13,15 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
/**
* @author Rossen Stoyanchev
*/
public interface HandlerMapping {
- Object getHandler(ServerHttpRequest request);
+ Object getHandler(ReactiveServerHttpRequest request);
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResult.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResult.java
index 2b3c912071a..156f2f5c965 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResult.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResult.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResultHandler.java
index 7a4a9cb23bf..aee3d6eab53 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResultHandler.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/HandlerResultHandler.java
@@ -13,12 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch;
import org.reactivestreams.Publisher;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
/**
* Process the {@link HandlerResult}, usually returned by an {@link HandlerAdapter}.
@@ -47,6 +48,6 @@ public interface HandlerResultHandler {
* when the handling is complete (success or error) including the flush of the data on the
* network.
*/
- Publisher handleResult(ServerHttpRequest request, ServerHttpResponse response, HandlerResult result);
+ Publisher handleResult(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response, HandlerResult result);
}
\ No newline at end of file
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/SimpleHandlerResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/SimpleHandlerResultHandler.java
index 0e9556eb30f..0fe01b02be3 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/SimpleHandlerResultHandler.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/SimpleHandlerResultHandler.java
@@ -22,8 +22,8 @@ import org.reactivestreams.Publisher;
import reactor.Publishers;
import org.springframework.core.Ordered;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
/**
* Supports {@link HandlerResult} with a {@code Publisher} value.
@@ -46,9 +46,8 @@ public class SimpleHandlerResultHandler implements Ordered, HandlerResultHandler
}
@Override
- public Publisher handleResult(ServerHttpRequest request, ServerHttpResponse response, HandlerResult result) {
+ public Publisher handleResult(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response, HandlerResult result) {
Publisher handleComplete = Publishers.completable((Publisher>)result.getValue());
return Publishers.concat(Publishers.from(Arrays.asList(handleComplete, response.writeHeaders())));
}
-
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/HttpHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/HttpHandlerAdapter.java
index 0dc2e9463d4..67c563355ad 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/HttpHandlerAdapter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/HttpHandlerAdapter.java
@@ -13,16 +13,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.handler;
import org.reactivestreams.Publisher;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.web.dispatch.HandlerAdapter;
import org.springframework.reactive.web.dispatch.HandlerResult;
import org.springframework.reactive.web.http.HttpHandler;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
-
/**
* Support use of {@link HttpHandler} with
@@ -44,7 +44,7 @@ public class HttpHandlerAdapter implements HandlerAdapter {
}
@Override
- public HandlerResult handle(ServerHttpRequest request, ServerHttpResponse response, Object handler) {
+ public HandlerResult handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response, Object handler) {
HttpHandler httpHandler = (HttpHandler)handler;
Publisher completion = httpHandler.handle(request, response);
return new HandlerResult(httpHandler, completion);
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMapping.java
index 64bae7f0ae0..c49f9fa0c5d 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMapping.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMapping.java
@@ -13,14 +13,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.handler;
import java.util.HashMap;
import java.util.Map;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.reactive.web.dispatch.HandlerMapping;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-
/**
* @author Rossen Stoyanchev
@@ -39,7 +39,7 @@ public class SimpleUrlHandlerMapping implements HandlerMapping {
@Override
- public Object getHandler(ServerHttpRequest request) {
+ public Object getHandler(ReactiveServerHttpRequest request) {
return this.handlerMap.get(request.getURI().getPath());
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/HandlerMethodArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/HandlerMethodArgumentResolver.java
index e4d77d3dbc8..f09fa428306 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/HandlerMethodArgumentResolver.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/HandlerMethodArgumentResolver.java
@@ -13,11 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.springframework.reactive.web.dispatch.method;
+package org.springframework.reactive.web.dispatch.method;
import org.springframework.core.MethodParameter;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
/**
@@ -27,6 +27,6 @@ public interface HandlerMethodArgumentResolver {
boolean supportsParameter(MethodParameter parameter);
- Object resolveArgument(MethodParameter parameter, ServerHttpRequest request);
+ Object resolveArgument(MethodParameter parameter, ReactiveServerHttpRequest request);
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/InvocableHandlerMethod.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/InvocableHandlerMethod.java
index ab49c6b6e14..75076771803 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/InvocableHandlerMethod.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/InvocableHandlerMethod.java
@@ -26,7 +26,7 @@ import org.springframework.core.DefaultParameterNameDiscoverer;
import org.springframework.core.GenericTypeResolver;
import org.springframework.core.MethodParameter;
import org.springframework.core.ParameterNameDiscoverer;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.util.ReflectionUtils;
import org.springframework.web.method.HandlerMethod;
@@ -55,7 +55,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
}
- public Object invokeForRequest(ServerHttpRequest request, Object... providedArgs) throws Exception {
+ public Object invokeForRequest(ReactiveServerHttpRequest request, Object... providedArgs) throws Exception {
Object[] args = getMethodArgumentValues(request, providedArgs);
if (logger.isTraceEnabled()) {
logger.trace("Invoking [" + getBeanType().getSimpleName() + "." +
@@ -68,7 +68,7 @@ public class InvocableHandlerMethod extends HandlerMethod {
return returnValue;
}
- private Object[] getMethodArgumentValues(ServerHttpRequest request, Object... providedArgs) throws Exception {
+ private Object[] getMethodArgumentValues(ReactiveServerHttpRequest request, Object... providedArgs) throws Exception {
MethodParameter[] parameters = getMethodParameters();
Object[] args = new Object[parameters.length];
for (int i = 0; i < parameters.length; i++) {
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/DefaultConversionService.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/DefaultConversionService.java
index 327bd8d8f8c..f38d00a063e 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/DefaultConversionService.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/DefaultConversionService.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestBodyArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestBodyArgumentResolver.java
index daf58211687..e14be9ee214 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestBodyArgumentResolver.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestBodyArgumentResolver.java
@@ -16,23 +16,24 @@
package org.springframework.reactive.web.dispatch.method.annotation;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.reactivestreams.Publisher;
+
import org.springframework.core.MethodParameter;
import org.springframework.core.ResolvableType;
import org.springframework.core.convert.ConversionService;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.reactive.codec.decoder.ByteToMessageDecoder;
import org.springframework.reactive.web.dispatch.method.HandlerMethodArgumentResolver;
-import org.springframework.reactive.web.http.ServerHttpRequest;
import org.springframework.web.bind.annotation.RequestBody;
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
/**
* @author Sebastien Deleuze
* @author Stephane Maldini
@@ -66,7 +67,7 @@ public class RequestBodyArgumentResolver implements HandlerMethodArgumentResolve
@Override
@SuppressWarnings("unchecked")
- public Object resolveArgument(MethodParameter parameter, ServerHttpRequest request) {
+ public Object resolveArgument(MethodParameter parameter, ReactiveServerHttpRequest request) {
MediaType mediaType = resolveMediaType(request);
ResolvableType type = ResolvableType.forMethodParameter(parameter);
@@ -92,14 +93,14 @@ public class RequestBodyArgumentResolver implements HandlerMethodArgumentResolve
}
}
- private MediaType resolveMediaType(ServerHttpRequest request) {
+ private MediaType resolveMediaType(ReactiveServerHttpRequest request) {
String acceptHeader = request.getHeaders().getFirst(HttpHeaders.CONTENT_TYPE);
List mediaTypes = MediaType.parseMediaTypes(acceptHeader);
MediaType.sortBySpecificityAndQuality(mediaTypes);
return ( mediaTypes.size() > 0 ? mediaTypes.get(0) : MediaType.TEXT_PLAIN);
}
- private ByteToMessageDecoder> resolveDeserializers(ServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
+ private ByteToMessageDecoder> resolveDeserializers(ReactiveServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
for (ByteToMessageDecoder> deserializer : this.deserializers) {
if (deserializer.canDecode(type, mediaType, hints)) {
return deserializer;
@@ -108,7 +109,7 @@ public class RequestBodyArgumentResolver implements HandlerMethodArgumentResolve
return null;
}
- private List> resolvePreProcessors(ServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
+ private List> resolvePreProcessors(ReactiveServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
List> preProcessors = new ArrayList<>();
for (ByteToMessageDecoder preProcessor : this.preProcessors) {
if (preProcessor.canDecode(type, mediaType, hints)) {
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerAdapter.java
index 6afcb3d44d9..3ffa44d83c3 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerAdapter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerAdapter.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.method.annotation;
import java.nio.ByteBuffer;
@@ -21,6 +22,8 @@ import java.util.Arrays;
import java.util.List;
import org.springframework.beans.factory.InitializingBean;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.codec.decoder.ByteBufferDecoder;
import org.springframework.reactive.codec.decoder.ByteToMessageDecoder;
import org.springframework.reactive.codec.decoder.JacksonJsonDecoder;
@@ -30,8 +33,6 @@ import org.springframework.reactive.web.dispatch.HandlerAdapter;
import org.springframework.reactive.web.dispatch.HandlerResult;
import org.springframework.reactive.web.dispatch.method.HandlerMethodArgumentResolver;
import org.springframework.reactive.web.dispatch.method.InvocableHandlerMethod;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
import org.springframework.web.method.HandlerMethod;
@@ -68,7 +69,7 @@ public class RequestMappingHandlerAdapter implements HandlerAdapter, Initializin
}
@Override
- public HandlerResult handle(ServerHttpRequest request, ServerHttpResponse response,
+ public HandlerResult handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response,
Object handler) throws Exception {
final InvocableHandlerMethod invocable = new InvocableHandlerMethod((HandlerMethod) handler);
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMapping.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMapping.java
index 17df6ff8192..3dd42b38316 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMapping.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMapping.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.method.annotation;
import java.util.Arrays;
@@ -32,8 +33,8 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.http.HttpMethod;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.reactive.web.dispatch.HandlerMapping;
-import org.springframework.reactive.web.http.ServerHttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -92,7 +93,7 @@ public class RequestMappingHandlerMapping implements HandlerMapping,
}
@Override
- public Object getHandler(ServerHttpRequest request) {
+ public Object getHandler(ReactiveServerHttpRequest request) {
String path = request.getURI().getPath();
HttpMethod method = request.getMethod();
for (Map.Entry entry : this.methodMap.entrySet()) {
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestParamArgumentResolver.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestParamArgumentResolver.java
index e3aaed22384..ab7fa92d857 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestParamArgumentResolver.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/RequestParamArgumentResolver.java
@@ -13,12 +13,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.method.annotation;
import org.springframework.core.MethodParameter;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.reactive.web.dispatch.method.HandlerMethodArgumentResolver;
-import org.springframework.reactive.web.http.ServerHttpRequest;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.util.UriComponents;
import org.springframework.web.util.UriComponentsBuilder;
@@ -39,7 +40,7 @@ public class RequestParamArgumentResolver implements HandlerMethodArgumentResolv
@Override
- public Object resolveArgument(MethodParameter param, ServerHttpRequest request) {
+ public Object resolveArgument(MethodParameter param, ReactiveServerHttpRequest request) {
RequestParam annotation = param.getParameterAnnotation(RequestParam.class);
String name = (annotation.value().length() != 0 ? annotation.value() : param.getParameterName());
UriComponents uriComponents = UriComponentsBuilder.fromUri(request.getURI()).build();
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/ResponseBodyResultHandler.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/ResponseBodyResultHandler.java
index bfd39cdbfff..0bfd9cdd479 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/ResponseBodyResultHandler.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/dispatch/method/annotation/ResponseBodyResultHandler.java
@@ -13,9 +13,18 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.method.annotation;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
import org.reactivestreams.Publisher;
+import reactor.Publishers;
+
import org.springframework.core.MethodParameter;
import org.springframework.core.Ordered;
import org.springframework.core.ResolvableType;
@@ -23,20 +32,13 @@ import org.springframework.core.annotation.AnnotatedElementUtils;
import org.springframework.core.convert.ConversionService;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.codec.encoder.MessageToByteEncoder;
import org.springframework.reactive.web.dispatch.HandlerResult;
import org.springframework.reactive.web.dispatch.HandlerResultHandler;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.method.HandlerMethod;
-import reactor.Publishers;
-
-import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
/**
@@ -95,7 +97,8 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered
@Override
@SuppressWarnings("unchecked")
- public Publisher handleResult(ServerHttpRequest request, ServerHttpResponse response,
+ public Publisher handleResult(ReactiveServerHttpRequest request,
+ ReactiveServerHttpResponse response,
HandlerResult result) {
Object value = result.getValue();
@@ -129,20 +132,21 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered
outputStream = postProcessor.encode(outputStream, elementType, mediaType, hints.toArray());
}
response.getHeaders().setContentType(mediaType);
- return response.writeWith(outputStream);
+ return response.setBody(outputStream);
}
return Publishers.error(new IllegalStateException(
- "Return value type '" + returnType.getParameterType().getName() + "' with media type '" + mediaType + "' not supported" ));
+ "Return value type '" + returnType.getParameterType().getName() +
+ "' with media type '" + mediaType + "' not supported"));
}
- private MediaType resolveMediaType(ServerHttpRequest request) {
+ private MediaType resolveMediaType(ReactiveServerHttpRequest request) {
String acceptHeader = request.getHeaders().getFirst(HttpHeaders.ACCEPT);
List mediaTypes = MediaType.parseMediaTypes(acceptHeader);
MediaType.sortBySpecificityAndQuality(mediaTypes);
return ( mediaTypes.size() > 0 ? mediaTypes.get(0) : MediaType.TEXT_PLAIN);
}
- private MessageToByteEncoder> resolveSerializer(ServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
+ private MessageToByteEncoder> resolveSerializer(ReactiveServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
for (MessageToByteEncoder> codec : this.serializers) {
if (codec.canEncode(type, mediaType, hints)) {
return codec;
@@ -151,7 +155,7 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered
return null;
}
- private List> resolvePostProcessors(ServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
+ private List> resolvePostProcessors(ReactiveServerHttpRequest request, ResolvableType type, MediaType mediaType, Object[] hints) {
List> postProcessors = new ArrayList<>();
for (MessageToByteEncoder postProcessor : this.postProcessors) {
if (postProcessor.canEncode(type, mediaType, hints)) {
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpHandler.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpHandler.java
index 4158526da8d..ff86a9a7221 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpHandler.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpHandler.java
@@ -18,6 +18,8 @@ package org.springframework.reactive.web.http;
import org.reactivestreams.Publisher;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
/**
* Interface for handlers that process HTTP requests and generate an HTTP response.
@@ -28,8 +30,8 @@ import org.reactivestreams.Publisher;
* @author Arjen Poutsma
* @author Rossen Stoyanchev
* @author Sebastien Deleuze
- * @see ServerHttpRequest#getBody()
- * @see ServerHttpResponse#writeWith(Publisher)
+ * @see ReactiveServerHttpRequest#getBody()
+ * @see ReactiveServerHttpResponse#setBody(Publisher)
*/
public interface HttpHandler {
@@ -44,6 +46,6 @@ public interface HttpHandler {
* when the handling is complete (success or error) including the flush of the data on the
* network.
*/
- Publisher handle(ServerHttpRequest request, ServerHttpResponse response);
+ Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response);
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServer.java
index 7d0e436377b..6006e974220 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServer.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServerSupport.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServerSupport.java
index ae5b1a820cc..f7aa9aae8b1 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServerSupport.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/HttpServerSupport.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpRequest.java
index 10960ab2aec..81c761230b0 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpRequest.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -26,13 +26,13 @@ import reactor.io.net.http.HttpChannel;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.util.Assert;
/**
* @author Stephane Maldini
*/
-public class PublisherReactorServerHttpRequest implements ServerHttpRequest {
+public class PublisherReactorServerHttpRequest implements ReactiveServerHttpRequest {
private final HttpChannel channel;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpResponse.java
index 4f52316968f..d6b25ba4547 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpResponse.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/PublisherReactorServerHttpResponse.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -25,13 +25,13 @@ import reactor.io.net.http.model.Status;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
-import org.springframework.reactive.web.http.ServerHttpResponse;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.util.Assert;
/**
* @author Stephane Maldini
*/
-public class PublisherReactorServerHttpResponse implements ServerHttpResponse {
+public class PublisherReactorServerHttpResponse implements ReactiveServerHttpResponse {
private final HttpChannel, Buffer> channel;
@@ -67,7 +67,7 @@ public class PublisherReactorServerHttpResponse implements ServerHttpResponse {
}
@Override
- public Publisher writeWith(Publisher contentPublisher) {
+ public Publisher setBody(Publisher contentPublisher) {
applyHeaders();
return this.channel.writeWith(Publishers.map(contentPublisher, Buffer::new));
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorHttpServer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorHttpServer.java
index 9cbd3976e94..5528fea3a8b 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorHttpServer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorHttpServer.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpRequest.java
index 75b22152d72..7dff1f2b7ce 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpRequest.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.reactor;
import java.nio.ByteBuffer;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpResponse.java
index eec16e85214..831e0f24788 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpResponse.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/ReactorServerHttpResponse.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -13,22 +13,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.reactor;
+import java.nio.ByteBuffer;
+
import org.reactivestreams.Publisher;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.reactive.web.http.ServerHttpResponse;
-import org.springframework.util.Assert;
-import reactor.Publishers;
import reactor.io.buffer.Buffer;
import reactor.io.net.http.HttpChannel;
-import reactor.io.net.http.model.Status;
import reactor.rx.Stream;
import reactor.rx.Streams;
-import java.nio.ByteBuffer;
-
/**
* @author Stephane Maldini
*/
@@ -44,7 +39,7 @@ public class ReactorServerHttpResponse extends PublisherReactorServerHttpRespons
}
@Override
- public Stream writeWith(Publisher contentPublisher) {
- return Streams.wrap(super.writeWith(contentPublisher));
+ public Stream setBody(Publisher contentPublisher) {
+ return Streams.wrap(super.setBody(contentPublisher));
}
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/RequestHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/RequestHandlerAdapter.java
index ecf4f560ba0..2e6d1207941 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/RequestHandlerAdapter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/reactor/RequestHandlerAdapter.java
@@ -1,11 +1,11 @@
/*
- * Copyright (c) 2011-2015 Pivotal Software Inc, All Rights Reserved.
+ * Copyright 2002-2015 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.
* You may obtain a copy of the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RequestHandlerAdapter.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RequestHandlerAdapter.java
index 4149dce5ea5..1a8fea2b8f8 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RequestHandlerAdapter.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RequestHandlerAdapter.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.rxnetty;
import io.netty.buffer.ByteBuf;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyHttpServer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyHttpServer.java
index d07cc78c840..21dc109a2ae 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyHttpServer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyHttpServer.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.rxnetty;
import io.netty.buffer.ByteBuf;
@@ -20,7 +21,6 @@ import io.netty.buffer.ByteBuf;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.reactive.web.http.HttpServer;
import org.springframework.reactive.web.http.HttpServerSupport;
-import org.springframework.reactive.web.http.rxnetty.RequestHandlerAdapter;
import org.springframework.util.Assert;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpRequest.java
index 7aa05a50cd5..5f3be593e65 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpRequest.java
@@ -13,28 +13,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.rxnetty;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.ByteBuffer;
+
import io.netty.buffer.ByteBuf;
import io.reactivex.netty.protocol.http.server.HttpServerRequest;
import org.reactivestreams.Publisher;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.util.Assert;
-
import reactor.core.publisher.convert.RxJava1Converter;
import rx.Observable;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.ByteBuffer;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
* @author Stephane Maldini
*/
-public class RxNettyServerHttpRequest implements ServerHttpRequest {
+public class RxNettyServerHttpRequest implements ReactiveServerHttpRequest {
private final HttpServerRequest request;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpResponse.java
index 1143663e66f..241d76fa59b 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpResponse.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/rxnetty/RxNettyServerHttpResponse.java
@@ -13,28 +13,29 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.rxnetty;
+import java.nio.ByteBuffer;
+
import io.netty.handler.codec.http.HttpResponseStatus;
import io.reactivex.netty.protocol.http.server.HttpServerResponse;
import org.reactivestreams.Publisher;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.reactive.web.http.ServerHttpResponse;
-import org.springframework.util.Assert;
-
import reactor.Publishers;
import reactor.core.publisher.convert.RxJava1Converter;
import reactor.io.buffer.Buffer;
import rx.Observable;
-import java.nio.ByteBuffer;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.server.ReactiveServerHttpResponse;
+import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
* @author Stephane Maldini
*/
-public class RxNettyServerHttpResponse implements ServerHttpResponse {
+public class RxNettyServerHttpResponse implements ReactiveServerHttpResponse {
private final HttpServerResponse> response;
@@ -70,7 +71,7 @@ public class RxNettyServerHttpResponse implements ServerHttpResponse {
}
@Override
- public Publisher writeWith(Publisher contentPublisher) {
+ public Publisher setBody(Publisher contentPublisher) {
applyHeaders();
Observable contentObservable = RxJava1Converter.from(contentPublisher).map(content -> new Buffer(content).asBytes());
return RxJava1Converter.from(this.response.writeBytes(contentObservable));
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/AsyncContextSynchronizer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/AsyncContextSynchronizer.java
index 98811b67a21..65240b963c3 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/AsyncContextSynchronizer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/AsyncContextSynchronizer.java
@@ -18,7 +18,6 @@ package org.springframework.reactive.web.http.servlet;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;
-
import javax.servlet.AsyncContext;
import javax.servlet.ServletInputStream;
import javax.servlet.ServletOutputStream;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/HttpHandlerServlet.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/HttpHandlerServlet.java
index 9bcddbfd6f8..5a6b7c2155a 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/HttpHandlerServlet.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/HttpHandlerServlet.java
@@ -17,7 +17,6 @@
package org.springframework.reactive.web.http.servlet;
import java.io.IOException;
-
import javax.servlet.AsyncContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/JettyHttpServer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/JettyHttpServer.java
index ddfd5d01ab1..4acad5dfe7e 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/JettyHttpServer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/JettyHttpServer.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.servlet;
import org.eclipse.jetty.server.Server;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/RequestBodyPublisher.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/RequestBodyPublisher.java
index c685882a094..12368fc1836 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/RequestBodyPublisher.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/RequestBodyPublisher.java
@@ -18,9 +18,7 @@ package org.springframework.reactive.web.http.servlet;
import java.io.IOException;
import java.nio.ByteBuffer;
-import java.nio.charset.Charset;
import java.util.Arrays;
-
import javax.servlet.ReadListener;
import javax.servlet.ServletInputStream;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpRequest.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpRequest.java
index b6aaea8fb76..80a14063519 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpRequest.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpRequest.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.servlet;
import java.net.URI;
@@ -21,7 +22,6 @@ import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.util.Enumeration;
import java.util.Map;
-
import javax.servlet.http.HttpServletRequest;
import org.reactivestreams.Publisher;
@@ -29,7 +29,7 @@ import org.reactivestreams.Publisher;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.util.Assert;
import org.springframework.util.LinkedCaseInsensitiveMap;
import org.springframework.util.StringUtils;
@@ -37,7 +37,7 @@ import org.springframework.util.StringUtils;
/**
* @author Rossen Stoyanchev
*/
-public class ServletServerHttpRequest implements ServerHttpRequest {
+public class ServletServerHttpRequest implements ReactiveServerHttpRequest {
private final HttpServletRequest servletRequest;
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpResponse.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpResponse.java
index ff462ec1583..e0bc7c78f77 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpResponse.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/ServletServerHttpResponse.java
@@ -13,12 +13,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.servlet;
import java.nio.ByteBuffer;
import java.util.List;
import java.util.Map;
-
import javax.servlet.http.HttpServletResponse;
import org.reactivestreams.Publisher;
@@ -26,13 +26,13 @@ import reactor.Publishers;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
-import org.springframework.reactive.web.http.ServerHttpResponse;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
*/
-public class ServletServerHttpResponse implements ServerHttpResponse {
+public class ServletServerHttpResponse implements ReactiveServerHttpResponse {
private final HttpServletResponse servletResponse;
@@ -69,7 +69,7 @@ public class ServletServerHttpResponse implements ServerHttpResponse {
}
@Override
- public Publisher writeWith(final Publisher contentPublisher) {
+ public Publisher setBody(final Publisher contentPublisher) {
applyHeaders();
return (s -> contentPublisher.subscribe(responseSubscriber));
}
diff --git a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/TomcatHttpServer.java b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/TomcatHttpServer.java
index 16e37d0e85a..472a74afc3b 100644
--- a/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/TomcatHttpServer.java
+++ b/spring-web-reactive/src/main/java/org/springframework/reactive/web/http/servlet/TomcatHttpServer.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.http.servlet;
import java.io.File;
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMappingIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMappingIntegrationTests.java
index de986c811ff..70ca1c7b5c5 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMappingIntegrationTests.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/handler/SimpleUrlHandlerMappingIntegrationTests.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.handler;
import java.net.URI;
@@ -27,12 +28,12 @@ import reactor.rx.Streams;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.web.dispatch.DispatcherHandler;
import org.springframework.reactive.web.dispatch.SimpleHandlerResultHandler;
import org.springframework.reactive.web.http.AbstractHttpHandlerIntegrationTests;
import org.springframework.reactive.web.http.HttpHandler;
-import org.springframework.reactive.web.http.ServerHttpRequest;
-import org.springframework.reactive.web.http.ServerHttpResponse;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.support.StaticWebApplicationContext;
@@ -99,16 +100,16 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler
private static class FooHandler implements HttpHandler {
@Override
- public Publisher handle(ServerHttpRequest request, ServerHttpResponse response) {
- return response.writeWith(Streams.just(Buffer.wrap("foo").byteBuffer()));
+ public Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
+ return response.setBody(Streams.just(Buffer.wrap("foo").byteBuffer()));
}
}
private static class BarHandler implements HttpHandler {
@Override
- public Publisher handle(ServerHttpRequest request, ServerHttpResponse response) {
- return response.writeWith(Streams.just(Buffer.wrap("bar").byteBuffer()));
+ public Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
+ return response.setBody(Streams.just(Buffer.wrap("bar").byteBuffer()));
}
}
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMappingTests.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMappingTests.java
index 9bb4a02aede..0d53aac9bf4 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMappingTests.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingHandlerMappingTests.java
@@ -20,20 +20,21 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.nio.ByteBuffer;
-import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.reactivestreams.Publisher;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
-import org.springframework.reactive.web.http.ServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.method.HandlerMethod;
+import static org.junit.Assert.assertEquals;
+
/**
* @author Sebastien Deleuze
*/
@@ -52,14 +53,14 @@ public class RequestMappingHandlerMappingTests {
@Test
public void path() throws NoSuchMethodException {
- ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, "boo");
+ ReactiveServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, "boo");
HandlerMethod handler = (HandlerMethod) this.mapping.getHandler(request);
assertEquals(TestController.class.getMethod("boo"), handler.getMethod());
}
@Test
public void method() throws NoSuchMethodException {
- ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.POST, "foo");
+ ReactiveServerHttpRequest request = new MockServerHttpRequest(HttpMethod.POST, "foo");
HandlerMethod handler = (HandlerMethod) this.mapping.getHandler(request);
assertEquals(TestController.class.getMethod("postFoo"), handler.getMethod());
@@ -104,7 +105,7 @@ public class RequestMappingHandlerMappingTests {
}
- private static class MockServerHttpRequest implements ServerHttpRequest{
+ private static class MockServerHttpRequest implements ReactiveServerHttpRequest{
private HttpMethod method;
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingIntegrationTests.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingIntegrationTests.java
index 6aa048e2597..e46dc4ff467 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingIntegrationTests.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/dispatch/method/annotation/RequestMappingIntegrationTests.java
@@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+
package org.springframework.reactive.web.dispatch.method.annotation;
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/EchoHandler.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/EchoHandler.java
index a5241cc9343..907191b95fd 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/EchoHandler.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/EchoHandler.java
@@ -18,13 +18,16 @@ package org.springframework.reactive.web.http;
import org.reactivestreams.Publisher;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
+
/**
* @author Arjen Poutsma
*/
public class EchoHandler implements HttpHandler {
@Override
- public Publisher handle(ServerHttpRequest request, ServerHttpResponse response) {
- return response.writeWith(request.getBody());
+ public Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
+ return response.setBody(request.getBody());
}
}
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/RandomHandler.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/RandomHandler.java
index 69244b098c3..79a87fd76e6 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/RandomHandler.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/RandomHandler.java
@@ -27,6 +27,9 @@ import org.reactivestreams.Subscription;
import reactor.io.buffer.Buffer;
import reactor.rx.Streams;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
+
import static org.junit.Assert.assertEquals;
/**
@@ -41,7 +44,7 @@ public class RandomHandler implements HttpHandler {
private final Random rnd = new Random();
@Override
- public Publisher handle(ServerHttpRequest request, ServerHttpResponse response) {
+ public Publisher handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
request.getBody().subscribe(new Subscriber() {
private Subscription s;
@@ -73,7 +76,7 @@ public class RandomHandler implements HttpHandler {
});
response.getHeaders().setContentLength(RESPONSE_SIZE);
- return response.writeWith(Streams.just(ByteBuffer.wrap(randomBytes())));
+ return response.setBody(Streams.just(ByteBuffer.wrap(randomBytes())));
}
private byte[] randomBytes() {
diff --git a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/XmlHandler.java b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/XmlHandler.java
index dcf95a8dc2a..490cbd4c1b0 100644
--- a/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/XmlHandler.java
+++ b/spring-web-reactive/src/test/java/org/springframework/reactive/web/http/XmlHandler.java
@@ -23,14 +23,16 @@ import javax.xml.bind.Unmarshaller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.reactivestreams.Publisher;
+import reactor.io.buffer.Buffer;
+import reactor.rx.Streams;
import org.springframework.http.MediaType;
+import org.springframework.http.server.ReactiveServerHttpRequest;
+import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.reactive.io.BufferOutputStream;
import org.springframework.reactive.io.ByteBufferPublisherInputStream;
import static org.junit.Assert.fail;
-import reactor.io.buffer.Buffer;
-import reactor.rx.Streams;
/**
* @author Arjen Poutsma
@@ -40,8 +42,8 @@ public class XmlHandler implements HttpHandler {
private static final Log logger = LogFactory.getLog(XmlHandler.class);
@Override
- public Publisher handle(ServerHttpRequest request,
- ServerHttpResponse response) {
+ public Publisher handle(ReactiveServerHttpRequest request,
+ ReactiveServerHttpResponse response) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(XmlHandlerIntegrationTests.Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
@@ -73,7 +75,7 @@ public class XmlHandler implements HttpHandler {
bos.close();
buffer.flip();
- return response.writeWith(Streams.just(buffer.byteBuffer()));
+ return response.setBody(Streams.just(buffer.byteBuffer()));
}
catch (Exception ex) {
logger.error(ex, ex);