code: protected LinkedHashMap<String, Callable<? extends ChannelHandler>> getChannelHandlers(final MessageInput input) {
          LinkedHashMap<String, Callable<? extends ChannelHandler>> handlerList = new LinkedHashMap<>();
  
          handlerList.put("exception-logger", () -> new ExceptionLoggingChannelHandler(input, log));
          handlerList.put("packet-meta-dumper", () -> new PacketInformationDumper(input));
          handlerList.put("output-failure-logger", () -> PromiseFailureHandler.INSTANCE);
  
          return handlerList;
      }
docs: Subclasses can override this to add additional {@link ChannelHandler channel handlers} to the
  Netty {@link ChannelPipeline} to support additional features.
  
  Some common use cases are to add connection counters or traffic shapers.
  
  @param input The {@link MessageInput} for which these channel handlers are being added
  @return list of initial {@link ChannelHandler channel handlers} to add to the Netty {@link ChannelPipeline channel pipeline}