List of usage examples for io.netty.channel.embedded EmbeddedChannel writeAndFlush
@Override
public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise)
From source file:org.elasticsearch.http.netty4.Netty4HttpPipeliningHandlerTests.java
License:Apache License
public void testPipeliningRequestsAreReleased() throws InterruptedException { final int numberOfRequests = 10; final EmbeddedChannel embeddedChannel = new EmbeddedChannel( new Netty4HttpPipeliningHandler(logger, numberOfRequests + 1)); for (int i = 0; i < numberOfRequests; i++) { embeddedChannel.writeInbound(createHttpRequest("/" + i)); }/* w w w . j a va 2 s. com*/ HttpPipelinedRequest<FullHttpRequest> inbound; ArrayList<HttpPipelinedRequest<FullHttpRequest>> requests = new ArrayList<>(); while ((inbound = embeddedChannel.readInbound()) != null) { requests.add(inbound); } ArrayList<ChannelPromise> promises = new ArrayList<>(); for (int i = 1; i < requests.size(); ++i) { ChannelPromise promise = embeddedChannel.newPromise(); promises.add(promise); HttpPipelinedRequest<FullHttpRequest> pipelinedRequest = requests.get(i); Netty4HttpRequest nioHttpRequest = new Netty4HttpRequest(pipelinedRequest.getRequest(), pipelinedRequest.getSequence()); Netty4HttpResponse resp = nioHttpRequest.createResponse(RestStatus.OK, BytesArray.EMPTY); embeddedChannel.writeAndFlush(resp, promise); } for (ChannelPromise promise : promises) { assertFalse(promise.isDone()); } embeddedChannel.close().syncUninterruptibly(); for (ChannelPromise promise : promises) { assertTrue(promise.isDone()); assertTrue(promise.cause() instanceof ClosedChannelException); } }
From source file:org.elasticsearch.http.nio.NioHttpPipeliningHandlerTests.java
License:Apache License
public void testPipeliningRequestsAreReleased() throws InterruptedException { final int numberOfRequests = 10; final EmbeddedChannel embeddedChannel = new EmbeddedChannel( new NioHttpPipeliningHandler(logger, numberOfRequests + 1)); for (int i = 0; i < numberOfRequests; i++) { embeddedChannel.writeInbound(createHttpRequest("/" + i)); }/* w ww . j ava 2s. c om*/ HttpPipelinedRequest<FullHttpRequest> inbound; ArrayList<HttpPipelinedRequest<FullHttpRequest>> requests = new ArrayList<>(); while ((inbound = embeddedChannel.readInbound()) != null) { requests.add(inbound); } ArrayList<ChannelPromise> promises = new ArrayList<>(); for (int i = 1; i < requests.size(); ++i) { ChannelPromise promise = embeddedChannel.newPromise(); promises.add(promise); HttpPipelinedRequest<FullHttpRequest> pipelinedRequest = requests.get(i); NioHttpRequest nioHttpRequest = new NioHttpRequest(pipelinedRequest.getRequest(), pipelinedRequest.getSequence()); NioHttpResponse resp = nioHttpRequest.createResponse(RestStatus.OK, BytesArray.EMPTY); embeddedChannel.writeAndFlush(resp, promise); } for (ChannelPromise promise : promises) { assertFalse(promise.isDone()); } embeddedChannel.close().syncUninterruptibly(); for (ChannelPromise promise : promises) { assertTrue(promise.isDone()); assertTrue(promise.cause() instanceof ClosedChannelException); } }