public interface NettyServerCustomizer
NettyServerCustomizer.Registry, and live while the server is running. Customizers with
 narrower scope are created from the root customizers through
 specialization when new netty channels are created by the
 server, e.g. when a client connects. These specialized customizers will then receive
 notifications when a certain step in the pipeline setup is reached, so they can do their own
 customizations on the channel and the channel pipeline they received in the specialization step.| Modifier and Type | Interface and Description | 
|---|---|
| static class  | NettyServerCustomizer.ChannelRoleEnum to describe the role of the channel passed to
  specializeForChannel(Channel, ChannelRole). | 
| static interface  | NettyServerCustomizer.RegistryInterface implemented by the HTTP server to register customizers. | 
| Modifier and Type | Method and Description | 
|---|---|
| default void | onInitialPipelineBuilt()Called when the initial connection pipeline has been built, before any incoming data
 has been processed. | 
| default void | onStreamPipelineBuilt()Called when the "final" stream pipeline has been built for processing http requests. | 
| default NettyServerCustomizer | specializeForChannel(io.netty.channel.Channel channel,
                    NettyServerCustomizer.ChannelRole role)Specialize this customizer for the given channel. | 
@NonNull default NettyServerCustomizer specializeForChannel(@NonNull io.netty.channel.Channel channel, @NonNull NettyServerCustomizer.ChannelRole role)
ServerSocketChannel when the
 server binds to a configured TCP port, and then to a
 SocketChannel when a client connects to that port.
 ServerDomainSocketChannel and
 DomainSocketChannel respectively). In the case of an
 EmbeddedChannel used for testing, there might not be a
 listener channel at all. For HTTP/2, each HTTP stream may get its own channel that is
 specialized from the overall connection channel. And finally, HTTP/3 support has to use
 datagram channels instead of the socket-based ones.channel - The new channel to specialize for.role - The role (or scope) of the channel.this if no specialization needs to take place.default void onInitialPipelineBuilt()
default void onStreamPipelineBuilt()
onInitialPipelineBuilt(). For TLS-based HTTP/2
 support, where HTTP/1 or HTTP/2 is negotiated through TLS ALPN, this will be called when
 negotiation is complete. However for HTTP/2 specifically, this may be changed in the future
 when we switch to netty channel multiplexing, where each HTTP/2 stream gets its own channel.