Upgrade to Reactor Netty 0.8
Issue: SPR-16387
This commit is contained in:
committed by
Rossen Stoyanchev
parent
61ffbe5554
commit
ffbc75ae47
@@ -18,7 +18,7 @@ package org.springframework.http.server.reactive.bootstrap;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import reactor.ipc.netty.NettyContext;
|
||||
import reactor.netty.DisposableServer;
|
||||
|
||||
import org.springframework.http.server.reactive.ReactorHttpHandlerAdapter;
|
||||
|
||||
@@ -29,15 +29,17 @@ public class ReactorHttpServer extends AbstractHttpServer {
|
||||
|
||||
private ReactorHttpHandlerAdapter reactorHandler;
|
||||
|
||||
private reactor.ipc.netty.http.server.HttpServer reactorServer;
|
||||
private reactor.netty.http.server.HttpServer reactorServer;
|
||||
|
||||
private AtomicReference<NettyContext> nettyContext = new AtomicReference<>();
|
||||
private AtomicReference<DisposableServer> disposableServer = new AtomicReference<>();
|
||||
|
||||
|
||||
@Override
|
||||
protected void initServer() throws Exception {
|
||||
this.reactorHandler = createHttpHandlerAdapter();
|
||||
this.reactorServer = reactor.ipc.netty.http.server.HttpServer.create(getHost(), getPort());
|
||||
this.reactorServer = reactor.netty.http.server.HttpServer.create()
|
||||
.tcpConfiguration(tcpServer -> tcpServer.host(getHost()))
|
||||
.port(getPort());
|
||||
}
|
||||
|
||||
private ReactorHttpHandlerAdapter createHttpHandlerAdapter() {
|
||||
@@ -46,21 +48,21 @@ public class ReactorHttpServer extends AbstractHttpServer {
|
||||
|
||||
@Override
|
||||
protected void startInternal() {
|
||||
NettyContext nettyContext = this.reactorServer.newHandler(this.reactorHandler).block();
|
||||
setPort(nettyContext.address().getPort());
|
||||
this.nettyContext.set(nettyContext);
|
||||
DisposableServer disposableServer = this.reactorServer.handle(this.reactorHandler).bind().block();
|
||||
setPort(disposableServer.address().getPort());
|
||||
this.disposableServer.set(disposableServer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopInternal() {
|
||||
this.nettyContext.get().dispose();
|
||||
this.disposableServer.get().dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetInternal() {
|
||||
this.reactorServer = null;
|
||||
this.reactorHandler = null;
|
||||
this.nettyContext.set(null);
|
||||
this.disposableServer.set(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ package org.springframework.http.server.reactive.bootstrap;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
import reactor.ipc.netty.NettyContext;
|
||||
import reactor.netty.DisposableServer;
|
||||
|
||||
import org.springframework.http.server.reactive.ReactorHttpHandlerAdapter;
|
||||
|
||||
@@ -29,17 +29,18 @@ public class ReactorHttpsServer extends AbstractHttpServer {
|
||||
|
||||
private ReactorHttpHandlerAdapter reactorHandler;
|
||||
|
||||
private reactor.ipc.netty.http.server.HttpServer reactorServer;
|
||||
private reactor.netty.http.server.HttpServer reactorServer;
|
||||
|
||||
private AtomicReference<NettyContext> nettyContext = new AtomicReference<>();
|
||||
private AtomicReference<DisposableServer> disposableServer = new AtomicReference<>();
|
||||
|
||||
|
||||
@Override
|
||||
protected void initServer() throws Exception {
|
||||
this.reactorHandler = createHttpHandlerAdapter();
|
||||
this.reactorServer = reactor.ipc.netty.http.server.HttpServer.create(builder -> {
|
||||
builder.host(getHost()).port(getPort()).sslSelfSigned();
|
||||
});
|
||||
this.reactorServer = reactor.netty.http.server.HttpServer.create()
|
||||
.tcpConfiguration(tcpServer -> tcpServer.host(getHost())
|
||||
.secure())
|
||||
.port(getPort());
|
||||
}
|
||||
|
||||
private ReactorHttpHandlerAdapter createHttpHandlerAdapter() {
|
||||
@@ -48,21 +49,21 @@ public class ReactorHttpsServer extends AbstractHttpServer {
|
||||
|
||||
@Override
|
||||
protected void startInternal() {
|
||||
NettyContext nettyContext = this.reactorServer.newHandler(this.reactorHandler).block();
|
||||
setPort(nettyContext.address().getPort());
|
||||
this.nettyContext.set(nettyContext);
|
||||
DisposableServer disposableServer = this.reactorServer.handle(this.reactorHandler).bind().block();
|
||||
setPort(disposableServer.address().getPort());
|
||||
this.disposableServer.set(disposableServer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void stopInternal() {
|
||||
this.nettyContext.get().dispose();
|
||||
this.disposableServer.get().dispose();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetInternal() {
|
||||
this.reactorServer = null;
|
||||
this.reactorHandler = null;
|
||||
this.nettyContext.set(null);
|
||||
this.disposableServer.set(null);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user