Move ~.web.reactive.server to ~.http.server

This commit is contained in:
Rossen Stoyanchev
2015-11-20 13:10:44 -05:00
parent 81867fa423
commit e9e4bcdc59
39 changed files with 98 additions and 115 deletions
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive;
package org.springframework.http.server;
import org.reactivestreams.Publisher;
@@ -33,7 +33,7 @@ import org.springframework.http.server.ReactiveServerHttpResponse;
* @see ReactiveServerHttpRequest#getBody()
* @see ReactiveServerHttpResponse#setBody(Publisher)
*/
public interface HttpHandler {
public interface ReactiveHttpHandler {
/**
* Process the given request, generating a response in an asynchronous non blocking way.
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.reactive.server.reactor;
package org.springframework.http.server.reactor;
import java.net.URI;
import java.net.URISyntaxException;
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.reactive.server.reactor;
package org.springframework.http.server.reactor;
import java.nio.ByteBuffer;
@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.web.reactive.server.reactor;
package org.springframework.http.server.reactor;
import org.reactivestreams.Publisher;
import reactor.core.publisher.convert.DependencyUtils;
@@ -21,19 +21,19 @@ import reactor.io.buffer.Buffer;
import reactor.io.net.ReactiveChannelHandler;
import reactor.io.net.http.HttpChannel;
import org.springframework.web.reactive.HttpHandler;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.util.Assert;
/**
* @author Stephane Maldini
*/
public class RequestHandlerAdapter
public class ReactorHttpHandlerAdapter
implements ReactiveChannelHandler<Buffer, Buffer, HttpChannel<Buffer, Buffer>> {
private final HttpHandler httpHandler;
private final ReactiveHttpHandler httpHandler;
public RequestHandlerAdapter(HttpHandler httpHandler) {
public ReactorHttpHandlerAdapter(ReactiveHttpHandler httpHandler) {
Assert.notNull(httpHandler, "'httpHandler' is required.");
this.httpHandler = httpHandler;
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.reactor;
package org.springframework.http.server.reactor;
import java.nio.ByteBuffer;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.reactor;
package org.springframework.http.server.reactor;
import java.nio.ByteBuffer;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.rxnetty;
package org.springframework.http.server.rxnetty;
import io.netty.buffer.ByteBuf;
import io.reactivex.netty.protocol.http.server.HttpServerRequest;
@@ -24,18 +24,18 @@ import org.reactivestreams.Publisher;
import reactor.core.publisher.convert.RxJava1Converter;
import rx.Observable;
import org.springframework.web.reactive.HttpHandler;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
*/
public class RequestHandlerAdapter implements RequestHandler<ByteBuf, ByteBuf> {
public class RxNettyHttpHandlerAdapter implements RequestHandler<ByteBuf, ByteBuf> {
private final HttpHandler httpHandler;
private final ReactiveHttpHandler httpHandler;
public RequestHandlerAdapter(HttpHandler httpHandler) {
public RxNettyHttpHandlerAdapter(ReactiveHttpHandler httpHandler) {
Assert.notNull(httpHandler, "'httpHandler' is required.");
this.httpHandler = httpHandler;
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.rxnetty;
package org.springframework.http.server.rxnetty;
import java.net.URI;
import java.net.URISyntaxException;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.rxnetty;
package org.springframework.http.server.rxnetty;
import java.nio.ByteBuffer;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.io.IOException;
import java.util.concurrent.atomic.AtomicInteger;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.io.IOException;
import javax.servlet.AsyncContext;
@@ -30,24 +30,24 @@ import org.reactivestreams.Subscriber;
import org.reactivestreams.Subscription;
import org.springframework.http.HttpStatus;
import org.springframework.web.reactive.HttpHandler;
import org.springframework.http.server.ReactiveHttpHandler;
/**
* @author Arjen Poutsma
* @author Rossen Stoyanchev
*/
@WebServlet(asyncSupported = true)
public class HttpHandlerServlet extends HttpServlet {
public class Servlet31HttpHandlerAdapter extends HttpServlet {
private static final int BUFFER_SIZE = 8192;
private static Log logger = LogFactory.getLog(HttpHandlerServlet.class);
private static Log logger = LogFactory.getLog(Servlet31HttpHandlerAdapter.class);
private HttpHandler handler;
private ReactiveHttpHandler handler;
public void setHandler(HttpHandler handler) {
public void setHandler(ReactiveHttpHandler handler) {
this.handler = handler;
}
@@ -61,11 +61,11 @@ public class HttpHandlerServlet extends HttpServlet {
RequestBodyPublisher requestPublisher = new RequestBodyPublisher(synchronizer, BUFFER_SIZE);
request.getInputStream().setReadListener(requestPublisher);
ServletServerHttpRequest httpRequest = new ServletServerHttpRequest(request, requestPublisher);
Servlet31ServerHttpRequest httpRequest = new Servlet31ServerHttpRequest(request, requestPublisher);
ResponseBodySubscriber responseSubscriber = new ResponseBodySubscriber(synchronizer);
response.getOutputStream().setWriteListener(responseSubscriber);
ServletServerHttpResponse httpResponse = new ServletServerHttpResponse(response, responseSubscriber);
Servlet31ServerHttpResponse httpResponse = new Servlet31ServerHttpResponse(response, responseSubscriber);
HandlerResultSubscriber resultSubscriber = new HandlerResultSubscriber(synchronizer, httpResponse);
this.handler.handle(httpRequest, httpResponse).subscribe(resultSubscriber);
@@ -76,11 +76,11 @@ public class HttpHandlerServlet extends HttpServlet {
private final AsyncContextSynchronizer synchronizer;
private final ServletServerHttpResponse response;
private final Servlet31ServerHttpResponse response;
public HandlerResultSubscriber(AsyncContextSynchronizer synchronizer,
ServletServerHttpResponse response) {
Servlet31ServerHttpResponse response) {
this.synchronizer = synchronizer;
this.response = response;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.net.URI;
import java.net.URISyntaxException;
@@ -37,7 +37,7 @@ import org.springframework.util.StringUtils;
/**
* @author Rossen Stoyanchev
*/
public class ServletServerHttpRequest implements ReactiveServerHttpRequest {
public class Servlet31ServerHttpRequest implements ReactiveServerHttpRequest {
private final HttpServletRequest servletRequest;
@@ -46,7 +46,7 @@ public class ServletServerHttpRequest implements ReactiveServerHttpRequest {
private HttpHeaders headers;
public ServletServerHttpRequest(HttpServletRequest servletRequest,
public Servlet31ServerHttpRequest(HttpServletRequest servletRequest,
Publisher<ByteBuffer> requestBodyPublisher) {
Assert.notNull(servletRequest, "HttpServletRequest must not be null");
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.servlet;
package org.springframework.http.server.servlet31;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
@@ -34,7 +34,7 @@ import org.springframework.util.Assert;
/**
* @author Rossen Stoyanchev
*/
public class ServletServerHttpResponse implements ReactiveServerHttpResponse {
public class Servlet31ServerHttpResponse implements ReactiveServerHttpResponse {
private final HttpServletResponse response;
@@ -45,7 +45,7 @@ public class ServletServerHttpResponse implements ReactiveServerHttpResponse {
private boolean headersWritten = false;
public ServletServerHttpResponse(HttpServletResponse response,
public Servlet31ServerHttpResponse(HttpServletResponse response,
ResponseBodySubscriber subscriber) {
Assert.notNull(response, "'response' must not be null");
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.undertow;
package org.springframework.http.server.undertow;
import static org.xnio.IoUtils.safeClose;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.undertow;
package org.springframework.http.server.undertow;
import java.io.IOException;
import java.nio.ByteBuffer;
@@ -14,11 +14,11 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.undertow;
package org.springframework.http.server.undertow;
import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.web.reactive.HttpHandler;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.util.Assert;
import io.undertow.server.HttpServerExchange;
@@ -37,10 +37,10 @@ public class UndertowHttpHandlerAdapter implements io.undertow.server.HttpHandle
private static Log logger = LogFactory.getLog(UndertowHttpHandlerAdapter.class);
private final HttpHandler delegate;
private final ReactiveHttpHandler delegate;
public UndertowHttpHandlerAdapter(HttpHandler delegate) {
public UndertowHttpHandlerAdapter(ReactiveHttpHandler delegate) {
Assert.notNull(delegate, "'delegate' is required.");
this.delegate = delegate;
}
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.undertow;
package org.springframework.http.server.undertow;
import java.net.URI;
import java.net.URISyntaxException;
@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.web.reactive.server.undertow;
package org.springframework.http.server.undertow;
import java.nio.ByteBuffer;
import java.util.List;
@@ -31,6 +31,7 @@ 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.ReactiveHttpHandler;
import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.http.server.ReactiveServerHttpResponse;
@@ -52,7 +53,7 @@ import org.springframework.http.server.ReactiveServerHttpResponse;
* @author Rossen Stoyanchev
* @author Sebastien Deleuze
*/
public class DispatcherHandler implements HttpHandler, ApplicationContextAware {
public class DispatcherHandler implements ReactiveHttpHandler, ApplicationContextAware {
private static final Log logger = LogFactory.getLog(DispatcherHandler.class);
@@ -24,11 +24,11 @@ import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.http.server.ReactiveServerHttpResponse;
import org.springframework.web.reactive.HandlerAdapter;
import org.springframework.web.reactive.HandlerResult;
import org.springframework.web.reactive.HttpHandler;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.web.reactive.DispatcherHandler;
/**
* Support use of {@link HttpHandler} with
* Support use of {@link ReactiveHttpHandler} with
* {@link DispatcherHandler
* DispatcherHandler} (which implements the same contract).
* The use of {@code DispatcherHandler} this way enables routing requests to
@@ -46,14 +46,14 @@ public class HttpHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
return HttpHandler.class.isAssignableFrom(handler.getClass());
return ReactiveHttpHandler.class.isAssignableFrom(handler.getClass());
}
@Override
public Publisher<HandlerResult> handle(ReactiveServerHttpRequest request,
ReactiveServerHttpResponse response, Object handler) {
HttpHandler httpHandler = (HttpHandler)handler;
ReactiveHttpHandler httpHandler = (ReactiveHttpHandler)handler;
Publisher<Void> completion = httpHandler.handle(request, response);
return Publishers.just(new HandlerResult(httpHandler, completion, PUBLISHER_VOID));
}