Extract CompositeHttpHandler functionality

Extract CompositeHttpHandler to a package private class and add direct
support via `HttpHandler.of(...)`. This removes the need for the
`HttpHandlerAdapterSupport` class.
This commit is contained in:
Phillip Webb
2017-03-13 20:11:03 -07:00
committed by Rossen Stoyanchev
parent 170057005e
commit 57d2fcef55
15 changed files with 164 additions and 214 deletions

View File

@@ -34,11 +34,11 @@ import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
/**
* Unit tests for {@link HttpHandlerAdapterSupport}.
* Unit tests for {@link HttpHandler}.
*
* @author Rossen Stoyanchev
*/
public class HttpHandlerAdapterSupportTests {
public class HttpHandlerTests {
@Test
public void invalidContextPath() {
@@ -139,10 +139,14 @@ public class HttpHandlerAdapterSupportTests {
@SuppressWarnings("WeakerAccess")
private static class TestHttpHandlerAdapter extends HttpHandlerAdapterSupport {
private static class TestHttpHandlerAdapter {
private final HttpHandler httpHandler;
public TestHttpHandlerAdapter(Map<String, HttpHandler> handlerMap) {
super(handlerMap);
this.httpHandler = HttpHandler.of(handlerMap);
}
public ServerHttpResponse handle(String path) {
@@ -152,7 +156,7 @@ public class HttpHandlerAdapterSupportTests {
public ServerHttpResponse handle(ServerHttpRequest request) {
ServerHttpResponse response = new MockServerHttpResponse();
getHttpHandler().handle(request, response);
this.httpHandler.handle(request, response);
return response;
}
}

View File

@@ -20,7 +20,7 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.JettyHttpHandlerAdapter;
import org.springframework.http.server.reactive.ServletHttpHandlerAdapter;
@@ -53,8 +53,8 @@ public class JettyHttpServer extends AbstractHttpServer {
}
private ServletHttpHandlerAdapter createServletAdapter() {
return getHttpHandlerMap() != null ? new JettyHttpHandlerAdapter(getHttpHandlerMap()) :
new JettyHttpHandlerAdapter(getHttpHandler());
return new JettyHttpHandlerAdapter(getHttpHandlerMap() != null
? HttpHandler.of(getHttpHandlerMap()) : getHttpHandler());
}
@Override

View File

@@ -21,6 +21,7 @@ import java.util.concurrent.atomic.AtomicReference;
import reactor.core.Loopback;
import reactor.ipc.netty.NettyContext;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ReactorHttpHandlerAdapter;
/**
@@ -42,9 +43,8 @@ public class ReactorHttpServer extends AbstractHttpServer implements Loopback {
}
private ReactorHttpHandlerAdapter createHttpHandlerAdapter() {
return (getHttpHandlerMap() != null ?
new ReactorHttpHandlerAdapter(getHttpHandlerMap()) :
new ReactorHttpHandlerAdapter(getHttpHandler()));
return new ReactorHttpHandlerAdapter(getHttpHandlerMap() != null
? HttpHandler.of(getHttpHandlerMap()) : getHttpHandler());
}
@Override

View File

@@ -18,6 +18,7 @@ package org.springframework.http.server.reactive.bootstrap;
import io.netty.buffer.ByteBuf;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.RxNettyHttpHandlerAdapter;
/**
@@ -37,9 +38,8 @@ public class RxNettyHttpServer extends AbstractHttpServer {
}
private RxNettyHttpHandlerAdapter createHttpHandlerAdapter() {
return (getHttpHandlerMap() != null ?
new RxNettyHttpHandlerAdapter(getHttpHandlerMap()) :
new RxNettyHttpHandlerAdapter(getHttpHandler()));
return new RxNettyHttpHandlerAdapter(getHttpHandlerMap() != null
? HttpHandler.of(getHttpHandlerMap()) : getHttpHandler());
}

View File

@@ -21,7 +21,7 @@ import java.io.File;
import org.apache.catalina.Context;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.ServletHttpHandlerAdapter;
import org.springframework.http.server.reactive.TomcatHttpHandlerAdapter;
import org.springframework.util.Assert;
@@ -68,9 +68,8 @@ public class TomcatHttpServer extends AbstractHttpServer {
}
private ServletHttpHandlerAdapter initServletAdapter() {
return getHttpHandlerMap() != null ?
new TomcatHttpHandlerAdapter(getHttpHandlerMap()) :
new TomcatHttpHandlerAdapter(getHttpHandler());
return new TomcatHttpHandlerAdapter(getHttpHandlerMap() != null
? HttpHandler.of(getHttpHandlerMap()) : getHttpHandler());
}

View File

@@ -20,6 +20,7 @@ import java.net.InetSocketAddress;
import io.undertow.Undertow;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.UndertowHttpHandlerAdapter;
/**
@@ -38,9 +39,8 @@ public class UndertowHttpServer extends AbstractHttpServer {
}
private UndertowHttpHandlerAdapter initHttpHandlerAdapter() {
return getHttpHandlerMap() != null ?
new UndertowHttpHandlerAdapter(getHttpHandlerMap()) :
new UndertowHttpHandlerAdapter(getHttpHandler());
return new UndertowHttpHandlerAdapter(getHttpHandlerMap() != null
? HttpHandler.of(getHttpHandlerMap()) : getHttpHandler());
}
@Override