Package org.mockserver.netty.unification
Class EarlyMatchingHandler
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpObject>
-
- org.mockserver.netty.unification.EarlyMatchingHandler
-
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
public class EarlyMatchingHandler extends io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpObject>Inspects the incoming Netty HttpRequest (headers only) and, when a matching expectation is configured withrespondBeforeBody=true, dispatches the response and closes the connection before HttpObjectAggregator buffers the request body. On no match, removes itself and forwards the HttpRequest downstream so the standard pipeline (aggregator + matcher) runs.Only installed in the HTTP/1.1 pipeline. CONNECT and HTTP/2 requests bypass early matching and run through the standard pipeline.
See issue #1831 for the motivating use case (reproducing okhttp/okhttp#1001).
-
-
Constructor Summary
Constructors Constructor Description EarlyMatchingHandler(Configuration configuration, HttpState httpState, HttpActionHandler actionHandler, boolean isSecure)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidchannelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpObject msg)voidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)-
Methods inherited from class io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelRead
-
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelActive, channelInactive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
-
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
-
-
-
-
Constructor Detail
-
EarlyMatchingHandler
public EarlyMatchingHandler(Configuration configuration, HttpState httpState, HttpActionHandler actionHandler, boolean isSecure)
-
-
Method Detail
-
channelRead0
protected void channelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.HttpObject msg)- Specified by:
channelRead0in classio.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.HttpObject>
-
exceptionCaught
public void exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter
-
-