Package org.mockserver.netty.unification
Class PortUnificationHandler
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.ReplayingDecoder<Void>
org.mockserver.netty.unification.PortUnificationHandler
- All Implemented Interfaces:
io.netty.channel.ChannelHandler,io.netty.channel.ChannelInboundHandler
- Author:
- jamesdbloom
-
Nested Class Summary
Nested classes/interfaces inherited from class io.netty.handler.codec.ByteToMessageDecoder
io.netty.handler.codec.ByteToMessageDecoder.CumulatorNested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe HTTP/2SETTINGS_MAX_CONCURRENT_STREAMSMockServer advertises on every HTTP/2 connection, and which Netty enforces by refusing further streams withREFUSED_STREAM(AbstractHttp2ConnectionHandlerBuilder.enforceMaxActiveStreams→connection.remote().maxActiveStreams(...)).protected final MockServerLoggerFields inherited from class io.netty.handler.codec.ByteToMessageDecoder
COMPOSITE_CUMULATOR, MERGE_CUMULATOR -
Constructor Summary
ConstructorsConstructorDescriptionPortUnificationHandler(Configuration configuration, LifeCycle server, HttpState httpState, HttpActionHandler actionHandler, NettySslContextFactory nettySslContextFactory, McpSessionManager mcpSessionManager) -
Method Summary
Modifier and TypeMethodDescriptionvoidchannelActive(io.netty.channel.ChannelHandlerContext ctx) protected voidstatic voiddisableSslDownstream(io.netty.channel.Channel channel) static voidenableSslDownstream(io.netty.channel.Channel channel) static voidenableSslUpstreamAndDownstream(io.netty.channel.Channel channel) voidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable throwable) static voidhttp2Enabled(io.netty.channel.Channel channel) static voidhttpEnabled(io.netty.channel.Channel channel) static booleanisHttp2Enabled(io.netty.channel.Channel channel) static booleanisHttpEnabled(io.netty.channel.Channel channel) static booleanisSslEnabledDownstream(io.netty.channel.Channel channel) static booleanisSslEnabledUpstream(io.netty.channel.Channel channel) static NettySslContextFactorynettySslContextFactory(io.netty.channel.Channel channel) Methods inherited from class io.netty.handler.codec.ReplayingDecoder
callDecode, checkpoint, checkpoint, state, stateMethods inherited from class io.netty.handler.codec.ByteToMessageDecoder
actualReadableBytes, channelInactive, channelRead, channelReadComplete, decodeLast, discardSomeReadBytes, handlerRemoved, handlerRemoved0, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecode, userEventTriggeredMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelRegistered, channelUnregistered, channelWritabilityChangedMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, isSharableMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded
-
Field Details
-
HTTP2_MAX_CONCURRENT_STREAMS
public static final int HTTP2_MAX_CONCURRENT_STREAMSThe HTTP/2SETTINGS_MAX_CONCURRENT_STREAMSMockServer advertises on every HTTP/2 connection, and which Netty enforces by refusing further streams withREFUSED_STREAM(AbstractHttp2ConnectionHandlerBuilder.enforceMaxActiveStreams→connection.remote().maxActiveStreams(...)).This is set explicitly, and deliberately matches the value Netty 4.2 would otherwise supply (
Http2CodecUtil.SMALLEST_MAX_CONCURRENT_STREAMS= 100), so current behaviour is unchanged while the limit becomes MockServer's own rather than an inherited default. It cannot be left implicit: Netty 4.1'sHttp2Settings.defaultSettings()advertises no concurrent-stream limit at all (RFC 9113 then permits unbounded streams), and 4.2 added one — so anything depending on the limit would silently change meaning with a Netty upgrade or downgrade.GrpcPendingRequestsdepends on this bound: it sizes its per-stream record map above this value so eviction can never discard a live stream (which would silently skip gRPC conversion — issue #2419).- See Also:
-
mockServerLogger
-
-
Constructor Details
-
PortUnificationHandler
public PortUnificationHandler(Configuration configuration, LifeCycle server, HttpState httpState, HttpActionHandler actionHandler, NettySslContextFactory nettySslContextFactory, McpSessionManager mcpSessionManager)
-
-
Method Details
-
nettySslContextFactory
-
enableSslUpstreamAndDownstream
public static void enableSslUpstreamAndDownstream(io.netty.channel.Channel channel) -
isSslEnabledUpstream
public static boolean isSslEnabledUpstream(io.netty.channel.Channel channel) -
enableSslDownstream
public static void enableSslDownstream(io.netty.channel.Channel channel) -
disableSslDownstream
public static void disableSslDownstream(io.netty.channel.Channel channel) -
isSslEnabledDownstream
public static boolean isSslEnabledDownstream(io.netty.channel.Channel channel) -
httpEnabled
public static void httpEnabled(io.netty.channel.Channel channel) -
isHttpEnabled
public static boolean isHttpEnabled(io.netty.channel.Channel channel) -
http2Enabled
public static void http2Enabled(io.netty.channel.Channel channel) -
isHttp2Enabled
public static boolean isHttp2Enabled(io.netty.channel.Channel channel) -
channelActive
public void channelActive(io.netty.channel.ChannelHandlerContext ctx) - Specified by:
channelActivein interfaceio.netty.channel.ChannelInboundHandler- Overrides:
channelActivein classio.netty.channel.ChannelInboundHandlerAdapter
-
decode
protected void decode(io.netty.channel.ChannelHandlerContext ctx, io.netty.buffer.ByteBuf msg, List<Object> out) - Specified by:
decodein classio.netty.handler.codec.ByteToMessageDecoder
-
exceptionCaught
- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter
-