Example usage for io.netty.channel.embedded EmbeddedChannel writeAndFlush

List of usage examples for io.netty.channel.embedded EmbeddedChannel writeAndFlush

Introduction

In this page you can find the example usage for io.netty.channel.embedded EmbeddedChannel writeAndFlush.

Prototype

@Override
    public ChannelFuture writeAndFlush(Object msg, ChannelPromise promise) 

Source Link

Usage

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);
    }
}