Move http.server to http.server.reactive

This commit is contained in:
Rossen Stoyanchev
2015-12-02 17:46:07 -05:00
parent 382c98f968
commit da98becf72
58 changed files with 1204 additions and 1308 deletions

View File

@@ -21,12 +21,13 @@ import org.junit.Before;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.springframework.http.server.support.HttpServer;
import org.springframework.http.server.support.JettyHttpServer;
import org.springframework.http.server.support.ReactorHttpServer;
import org.springframework.http.server.support.RxNettyHttpServer;
import org.springframework.http.server.support.TomcatHttpServer;
import org.springframework.http.server.support.UndertowHttpServer;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.boot.HttpServer;
import org.springframework.http.server.reactive.boot.JettyHttpServer;
import org.springframework.http.server.reactive.boot.ReactorHttpServer;
import org.springframework.http.server.reactive.boot.RxNettyHttpServer;
import org.springframework.http.server.reactive.boot.TomcatHttpServer;
import org.springframework.http.server.reactive.boot.UndertowHttpServer;
import org.springframework.util.SocketUtils;
@@ -60,7 +61,7 @@ public abstract class AbstractHttpHandlerIntegrationTests {
this.server.start();
}
protected abstract ReactiveHttpHandler createHttpHandler();
protected abstract HttpHandler createHttpHandler();
@After
public void tearDown() throws Exception {

View File

@@ -18,13 +18,17 @@ package org.springframework.http.server;
import org.reactivestreams.Publisher;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
/**
* @author Arjen Poutsma
*/
public class EchoHandler implements ReactiveHttpHandler {
public class EchoHandler implements HttpHandler {
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
public Publisher<Void> handle(ServerHttpRequest request, ServerHttpResponse response) {
return response.setBody(request.getBody());
}
}

View File

@@ -24,6 +24,13 @@ import org.reactivestreams.Publisher;
import reactor.Publishers;
import reactor.rx.Streams;
import org.springframework.http.server.reactive.FilterChainHttpHandler;
import org.springframework.http.server.reactive.HttpFilter;
import org.springframework.http.server.reactive.HttpFilterChain;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
@@ -33,15 +40,15 @@ import static org.mockito.Mockito.mock;
*/
public class FilterChainHttpHandlerTests {
private ReactiveServerHttpRequest request;
private ServerHttpRequest request;
private ReactiveServerHttpResponse response;
private ServerHttpResponse response;
@Before
public void setUp() throws Exception {
this.request = mock(ReactiveServerHttpRequest.class);
this.response = mock(ReactiveServerHttpResponse.class);
this.request = mock(ServerHttpRequest.class);
this.response = mock(ServerHttpResponse.class);
}
@Test
@@ -90,7 +97,7 @@ public class FilterChainHttpHandlerTests {
}
private static class TestFilter implements ReactiveHttpFilter {
private static class TestFilter implements HttpFilter {
private boolean invoked;
@@ -100,15 +107,15 @@ public class FilterChainHttpHandlerTests {
}
@Override
public Publisher<Void> filter(ReactiveServerHttpRequest req, ReactiveServerHttpResponse res,
ReactiveHttpFilterChain chain) {
public Publisher<Void> filter(ServerHttpRequest req, ServerHttpResponse res,
HttpFilterChain chain) {
this.invoked = true;
return doFilter(req, res, chain);
}
public Publisher<Void> doFilter(ReactiveServerHttpRequest req, ReactiveServerHttpResponse res,
ReactiveHttpFilterChain chain) {
public Publisher<Void> doFilter(ServerHttpRequest req, ServerHttpResponse res,
HttpFilterChain chain) {
return chain.filter(req, res);
}
@@ -117,14 +124,14 @@ public class FilterChainHttpHandlerTests {
private static class ShortcircuitingFilter extends TestFilter {
@Override
public Publisher<Void> doFilter(ReactiveServerHttpRequest req, ReactiveServerHttpResponse res,
ReactiveHttpFilterChain chain) {
public Publisher<Void> doFilter(ServerHttpRequest req, ServerHttpResponse res,
HttpFilterChain chain) {
return Publishers.empty();
}
}
private static class StubHandler implements ReactiveHttpHandler {
private static class StubHandler implements HttpHandler {
private boolean invoked;
@@ -133,7 +140,7 @@ public class FilterChainHttpHandlerTests {
}
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest req, ReactiveServerHttpResponse res) {
public Publisher<Void> handle(ServerHttpRequest req, ServerHttpResponse res) {
this.invoked = true;
return Publishers.empty();
}

View File

@@ -27,12 +27,16 @@ import org.reactivestreams.Subscription;
import reactor.io.buffer.Buffer;
import reactor.rx.Streams;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import static org.junit.Assert.assertEquals;
/**
* @author Arjen Poutsma
*/
public class RandomHandler implements ReactiveHttpHandler {
public class RandomHandler implements HttpHandler {
private static final Log logger = LogFactory.getLog(RandomHandler.class);
@@ -41,7 +45,7 @@ public class RandomHandler implements ReactiveHttpHandler {
private final Random rnd = new Random();
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
public Publisher<Void> handle(ServerHttpRequest request, ServerHttpResponse response) {
request.getBody().subscribe(new Subscriber<ByteBuffer>() {
private Subscription s;

View File

@@ -27,6 +27,9 @@ import reactor.io.buffer.Buffer;
import reactor.rx.Streams;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.util.BufferOutputStream;
import org.springframework.util.ByteBufferPublisherInputStream;
@@ -35,13 +38,13 @@ import static org.junit.Assert.fail;
/**
* @author Arjen Poutsma
*/
public class XmlHandler implements ReactiveHttpHandler {
public class XmlHandler implements HttpHandler {
private static final Log logger = LogFactory.getLog(XmlHandler.class);
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest request,
ReactiveServerHttpResponse response) {
public Publisher<Void> handle(ServerHttpRequest request,
ServerHttpResponse response) {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(XmlHandlerIntegrationTests.Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();

View File

@@ -23,6 +23,7 @@ import org.junit.Test;
import org.springframework.http.RequestEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.web.client.RestTemplate;
/**
@@ -31,7 +32,7 @@ import org.springframework.web.client.RestTemplate;
public class XmlHandlerIntegrationTests extends AbstractHttpHandlerIntegrationTests {
@Override
protected ReactiveHttpHandler createHttpHandler() {
protected HttpHandler createHttpHandler() {
return new XmlHandler();
}

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.http.server.servlet31;
package org.springframework.http.server.reactive;
import javax.servlet.AsyncContext;
@@ -31,12 +31,12 @@ public class AsyncContextSynchronizerTests {
private AsyncContext asyncContext;
private AsyncContextSynchronizer synchronizer;
private ServletAsyncContextSynchronizer synchronizer;
@Before
public void setUp() throws Exception {
asyncContext = mock(AsyncContext.class);
synchronizer = new AsyncContextSynchronizer(asyncContext);
synchronizer = new ServletAsyncContextSynchronizer(asyncContext);
}
@Test

View File

@@ -30,16 +30,14 @@ import reactor.rx.Streams;
import org.springframework.http.HttpStatus;
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.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.web.client.HttpClientErrorException;
import org.springframework.web.client.RestClientException;
import org.springframework.web.reactive.DispatcherHandler;
import org.springframework.http.server.AbstractHttpHandlerIntegrationTests;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.context.support.StaticWebApplicationContext;
import org.springframework.web.reactive.method.annotation.RequestMappingHandlerMapping;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
@@ -54,7 +52,7 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler
@Override
protected ReactiveHttpHandler createHttpHandler() {
protected HttpHandler createHttpHandler() {
StaticWebApplicationContext wac = new StaticWebApplicationContext();
wac.registerSingleton("hm", TestHandlerMapping.class);
@@ -122,18 +120,18 @@ public class SimpleUrlHandlerMappingIntegrationTests extends AbstractHttpHandler
}
}
private static class FooHandler implements ReactiveHttpHandler {
private static class FooHandler implements HttpHandler {
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
public Publisher<Void> handle(ServerHttpRequest request, ServerHttpResponse response) {
return response.setBody(Streams.just(Buffer.wrap("foo").byteBuffer()));
}
}
private static class BarHandler implements ReactiveHttpHandler {
private static class BarHandler implements HttpHandler {
@Override
public Publisher<Void> handle(ReactiveServerHttpRequest request, ReactiveServerHttpResponse response) {
public Publisher<Void> handle(ServerHttpRequest request, ServerHttpResponse response) {
return response.setBody(Streams.just(Buffer.wrap("bar").byteBuffer()));
}
}

View File

@@ -29,7 +29,7 @@ import reactor.rx.Streams;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.server.ReactiveServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -59,7 +59,7 @@ public class RequestMappingHandlerMappingTests {
@Test
public void path() throws Exception {
ReactiveServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, "boo");
ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.GET, "boo");
Publisher<?> handlerPublisher = this.mapping.getHandler(request);
HandlerMethod handlerMethod = toHandlerMethod(handlerPublisher);
assertEquals(TestController.class.getMethod("boo"), handlerMethod.getMethod());
@@ -67,7 +67,7 @@ public class RequestMappingHandlerMappingTests {
@Test
public void method() throws Exception {
ReactiveServerHttpRequest request = new MockServerHttpRequest(HttpMethod.POST, "foo");
ServerHttpRequest request = new MockServerHttpRequest(HttpMethod.POST, "foo");
Publisher<?> handlerPublisher = this.mapping.getHandler(request);
HandlerMethod handlerMethod = toHandlerMethod(handlerPublisher);
assertEquals(TestController.class.getMethod("postFoo"), handlerMethod.getMethod());
@@ -116,7 +116,7 @@ public class RequestMappingHandlerMappingTests {
/**
* TODO: this is more widely needed.
*/
private static class MockServerHttpRequest implements ReactiveServerHttpRequest {
private static class MockServerHttpRequest implements ServerHttpRequest {
private HttpMethod method;

View File

@@ -53,7 +53,7 @@ import org.springframework.core.codec.support.StringEncoder;
import org.springframework.web.reactive.DispatcherHandler;
import org.springframework.web.reactive.handler.SimpleHandlerResultHandler;
import org.springframework.http.server.AbstractHttpHandlerIntegrationTests;
import org.springframework.http.server.ReactiveHttpHandler;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -75,7 +75,7 @@ public class RequestMappingIntegrationTests extends AbstractHttpHandlerIntegrati
@Override
protected ReactiveHttpHandler createHttpHandler() {
protected HttpHandler createHttpHandler() {
this.wac = new AnnotationConfigWebApplicationContext();
this.wac.register(FrameworkConfig.class, ApplicationConfig.class);
this.wac.refresh();