private void handleHttpRequest(ChannelHandlerContext ctx, MessageEvent messageEvent, HttpRequest httpRequest) {
final NettyHttpRequest nettyHttpRequest = new NettyHttpRequest(messageEvent, httpRequest, id, timestamp);
final NettyHttpResponse nettyHttpResponse = new NettyHttpResponse(
ctx, new DefaultHttpResponse(HTTP_1_1, OK), isKeepAlive(httpRequest), exceptionHandler, ioExceptionHandler);
final HttpControl control = new NettyHttpControl(httpHandlers.iterator(), executor, ctx,
nettyHttpRequest, nettyHttpResponse, httpRequest, new DefaultHttpResponse(HTTP_1_1, OK),
exceptionHandler, ioExceptionHandler);
executor.execute(new Runnable() {
@Override
public void run() {
try {
control.nextHandler(nettyHttpRequest, nettyHttpResponse);
} catch (Exception exception) {
exceptionHandler.uncaughtException(Thread.currentThread(), exception);
}
}
});