Browse Source

Fix TODO in ReactorHttpServer

pull/1244/head
Rossen Stoyanchev 9 years ago
parent
commit
3eb2432ced
  1. 29
      spring-web/src/test/java/org/springframework/http/server/reactive/bootstrap/ReactorHttpServer.java

29
spring-web/src/test/java/org/springframework/http/server/reactive/bootstrap/ReactorHttpServer.java

@ -16,6 +16,8 @@ @@ -16,6 +16,8 @@
package org.springframework.http.server.reactive.bootstrap;
import java.util.concurrent.atomic.AtomicReference;
import reactor.core.Loopback;
import reactor.ipc.netty.NettyContext;
@ -31,7 +33,7 @@ public class ReactorHttpServer extends HttpServerSupport implements HttpServer, @@ -31,7 +33,7 @@ public class ReactorHttpServer extends HttpServerSupport implements HttpServer,
private reactor.ipc.netty.http.server.HttpServer reactorServer;
private NettyContext running;
private AtomicReference<NettyContext> nettyContext = new AtomicReference<>();
@Override
@ -43,42 +45,39 @@ public class ReactorHttpServer extends HttpServerSupport implements HttpServer, @@ -43,42 +45,39 @@ public class ReactorHttpServer extends HttpServerSupport implements HttpServer,
Assert.notNull(getHttpHandler());
this.reactorHandler = new ReactorHttpHandlerAdapter(getHttpHandler());
}
this.reactorServer = reactor.ipc.netty.http.server.HttpServer.create(getHost(),
getPort());
this.reactorServer = reactor.ipc.netty.http.server.HttpServer
.create(getHost(), getPort());
}
@Override
public boolean isRunning() {
NettyContext running = this.running;
return running != null && running.channel()
.isActive();
NettyContext context = this.nettyContext.get();
return (context != null && context.channel().isActive());
}
@Override
public Object connectedInput() {
return reactorServer;
return this.reactorServer;
}
@Override
public Object connectedOutput() {
return reactorServer;
return this.reactorServer;
}
@Override
public void start() {
// TODO: should be made thread-safe (compareAndSet..)
if (this.running == null) {
this.running = this.reactorServer.newHandler(reactorHandler).block();
if (this.nettyContext.get() == null) {
this.nettyContext.set(this.reactorServer.newHandler(reactorHandler).block());
}
}
@Override
public void stop() {
NettyContext running = this.running;
if (running != null) {
this.running = null;
running.dispose();
NettyContext context = this.nettyContext.getAndSet(null);
if (context != null) {
context.dispose();
}
}
}

Loading…
Cancel
Save