@@ -0,0 +1,1146 @@
+package io.netty.channel;%0A%0Aimport java.util.Queue;%0A%0Apublic class ChannelInboundMessageHandlerAdapter%3CI%3E extends%0A        ChannelInboundHandlerAdapter%3CI%3E %7B%0A%0A    @Override%0A    public ChannelBufferHolder%3CI%3E newInboundBuffer(%0A            ChannelInboundHandlerContext%3CI%3E ctx) throws Exception %7B%0A        return ChannelBufferHolders.messageBuffer();%0A    %7D%0A%0A    @Override%0A    public void inboundBufferUpdated(ChannelInboundHandlerContext%3CI%3E ctx)%0A            throws Exception %7B%0A        Queue%3CI%3E in = ctx.in().messageBuffer();%0A        Queue%3CObject%3E out = ctx.nextIn().messageBuffer();%0A        int oldOutSize = out.size();%0A        for (;;) %7B%0A            I msg = in.poll();%0A            if (msg == null) %7B%0A                break;%0A            %7D%0A            try %7B%0A                messageReceived(ctx, msg);%0A            %7D catch (Throwable t) %7B%0A                ctx.fireExceptionCaught(t);%0A            %7D%0A        %7D%0A%0A        if (out.size() != oldOutSize) %7B%0A            ctx.fireInboundBufferUpdated();%0A        %7D%0A    %7D%0A%0A    public void messageReceived(ChannelInboundHandlerContext%3CI%3E ctx, I msg) throws Exception %7B%0A        ctx.nextIn().messageBuffer().add(msg);%0A    %7D%0A%7D%0A

Add ChannelInboundMessageHandlerAdapter