Make ReactiveWebServerFactory functional interface

Update `ReactiveWebServerFactory` to contain only a single method.

Fixes gh-8559
This commit is contained in:
Phillip Webb 2017-03-14 13:44:37 -07:00
parent ca5e566deb
commit 4100360ceb
6 changed files with 3 additions and 55 deletions

View File

@ -41,12 +41,6 @@ public class MockReactiveWebServerFactory extends AbstractReactiveWebServerFacto
return this.webServer; return this.webServer;
} }
@Override
public WebServer getWebServer(Map<String, HttpHandler> handlerMap) {
this.webServer = spy(new MockReactiveWebServer(handlerMap, getPort()));
return this.webServer;
}
public MockReactiveWebServer getWebServer() { public MockReactiveWebServer getWebServer() {
return this.webServer; return this.webServer;
} }

View File

@ -17,7 +17,6 @@
package org.springframework.boot.web.embedded.jetty; package org.springframework.boot.web.embedded.jetty;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.util.Map;
import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.server.AbstractConnector;
import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.ConnectionFactory;
@ -62,8 +61,8 @@ public class JettyReactiveWebServerFactory extends AbstractReactiveWebServerFact
} }
/** /**
* Create a new {@link JettyServletWebServerFactory} that listens for requests * Create a new {@link JettyServletWebServerFactory} that listens for requests using
* using the specified port. * the specified port.
* @param port the port to listen on * @param port the port to listen on
*/ */
public JettyReactiveWebServerFactory(int port) { public JettyReactiveWebServerFactory(int port) {
@ -77,13 +76,6 @@ public class JettyReactiveWebServerFactory extends AbstractReactiveWebServerFact
return new JettyWebServer(server, getPort() >= 0); return new JettyWebServer(server, getPort() >= 0);
} }
@Override
public WebServer getWebServer(Map<String, HttpHandler> handlerMap) {
JettyHttpHandlerAdapter servlet = new JettyHttpHandlerAdapter(handlerMap);
Server server = createJettyServer(servlet);
return new JettyWebServer(server, getPort() >= 0);
}
protected Server createJettyServer(JettyHttpHandlerAdapter servlet) { protected Server createJettyServer(JettyHttpHandlerAdapter servlet) {
int port = (getPort() >= 0 ? getPort() : 0); int port = (getPort() >= 0 ? getPort() : 0);
InetSocketAddress address = new InetSocketAddress(getAddress(), port); InetSocketAddress address = new InetSocketAddress(getAddress(), port);

View File

@ -16,8 +16,6 @@
package org.springframework.boot.web.embedded.netty; package org.springframework.boot.web.embedded.netty;
import java.util.Map;
import reactor.ipc.netty.http.server.HttpServer; import reactor.ipc.netty.http.server.HttpServer;
import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory; import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory;
@ -49,14 +47,6 @@ public class NettyReactiveWebServerFactory extends AbstractReactiveWebServerFact
return new NettyWebServer(server, handlerAdapter); return new NettyWebServer(server, handlerAdapter);
} }
@Override
public WebServer getWebServer(Map<String, HttpHandler> handlerMap) {
HttpServer server = createHttpServer();
ReactorHttpHandlerAdapter handlerAdapter = new ReactorHttpHandlerAdapter(
handlerMap);
return new NettyWebServer(server, handlerAdapter);
}
private HttpServer createHttpServer() { private HttpServer createHttpServer() {
HttpServer server; HttpServer server;
if (getAddress() != null) { if (getAddress() != null) {

View File

@ -17,7 +17,6 @@
package org.springframework.boot.web.embedded.tomcat; package org.springframework.boot.web.embedded.tomcat;
import java.io.File; import java.io.File;
import java.util.Map;
import org.apache.catalina.Host; import org.apache.catalina.Host;
import org.apache.catalina.connector.Connector; import org.apache.catalina.connector.Connector;
@ -73,14 +72,6 @@ public class TomcatReactiveWebServerFactory extends AbstractReactiveWebServerFac
return new TomcatWebServer(tomcatServer, getPort() >= 0); return new TomcatWebServer(tomcatServer, getPort() >= 0);
} }
@Override
public WebServer getWebServer(Map<String, HttpHandler> handlerMap) {
Tomcat tomcatServer = createTomcatServer();
TomcatHttpHandlerAdapter servlet = new TomcatHttpHandlerAdapter(handlerMap);
prepareContext(tomcatServer.getHost(), servlet);
return new TomcatWebServer(tomcatServer, getPort() >= 0);
}
private Tomcat createTomcatServer() { private Tomcat createTomcatServer() {
Tomcat tomcat = new Tomcat(); Tomcat tomcat = new Tomcat();
File baseDir = createTempDir("tomcat"); File baseDir = createTempDir("tomcat");

View File

@ -16,8 +16,6 @@
package org.springframework.boot.web.embedded.undertow; package org.springframework.boot.web.embedded.undertow;
import java.util.Map;
import io.undertow.Undertow; import io.undertow.Undertow;
import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory; import org.springframework.boot.web.reactive.server.AbstractReactiveWebServerFactory;
@ -65,14 +63,6 @@ public class UndertowReactiveWebServerFactory extends AbstractReactiveWebServerF
return new UndertowWebServer(builder, getPort() >= 0); return new UndertowWebServer(builder, getPort() >= 0);
} }
@Override
public WebServer getWebServer(Map<String, HttpHandler> handlerMap) {
Undertow.Builder builder = createBuilder(getPort());
UndertowHttpHandlerAdapter handler = new UndertowHttpHandlerAdapter(handlerMap);
builder.setHandler(handler);
return new UndertowWebServer(builder, getPort() >= 0);
}
private Undertow.Builder createBuilder(int port) { private Undertow.Builder createBuilder(int port) {
Undertow.Builder builder = Undertow.builder(); Undertow.Builder builder = Undertow.builder();
if (this.bufferSize != null) { if (this.bufferSize != null) {

View File

@ -16,8 +16,6 @@
package org.springframework.boot.web.reactive.server; package org.springframework.boot.web.reactive.server;
import java.util.Map;
import org.springframework.boot.web.server.WebServer; import org.springframework.boot.web.server.WebServer;
import org.springframework.http.server.reactive.HttpHandler; import org.springframework.http.server.reactive.HttpHandler;
@ -28,6 +26,7 @@ import org.springframework.http.server.reactive.HttpHandler;
* @since 2.0.0 * @since 2.0.0
* @see WebServer * @see WebServer
*/ */
@FunctionalInterface
public interface ReactiveWebServerFactory { public interface ReactiveWebServerFactory {
/** /**
@ -41,12 +40,4 @@ public interface ReactiveWebServerFactory {
*/ */
WebServer getWebServer(HttpHandler httpHandler); WebServer getWebServer(HttpHandler httpHandler);
/**
* Register a map of {@link HttpHandler}s, each to a specific context path.
* @param handlerMap a map of context paths and the associated {@code HttpHandler}
* @return a fully configured and started {@link WebServer}
* @see WebServer#stop()
*/
WebServer getWebServer(Map<String, HttpHandler> handlerMap);
} }