@Override public ServerConnector createServerConnector(ServerBootstrapConfiguration serverBootstrapConfiguration, ListenerConfiguration listenerConfig) { ServerConnectorBootstrap serverConnectorBootstrap = new ServerConnectorBootstrap(allChannels); serverConnectorBootstrap.addSocketConfiguration(serverBootstrapConfiguration); SSLConfig sslConfig = listenerConfig.getListenerSSLConfig(); serverConnectorBootstrap.addSecurity(sslConfig); if (sslConfig != null) { setSslContext(serverConnectorBootstrap, sslConfig, listenerConfig); } serverConnectorBootstrap.addIdleTimeout(listenerConfig.getSocketIdleTimeout()); if (Constants.HTTP_2_0 == Float.valueOf(listenerConfig.getVersion())) { serverConnectorBootstrap.setHttp2Enabled(true); } serverConnectorBootstrap.addHttpTraceLogHandler(listenerConfig.isHttpTraceLogEnabled()); serverConnectorBootstrap.addHttpAccessLogHandler(listenerConfig.isHttpAccessLogEnabled()); serverConnectorBootstrap.addThreadPools(bossGroup, workerGroup); serverConnectorBootstrap.addHeaderAndEntitySizeValidation(listenerConfig.getRequestSizeValidationConfig()); serverConnectorBootstrap.addChunkingBehaviour(listenerConfig.getChunkConfig()); serverConnectorBootstrap.addKeepAliveBehaviour(listenerConfig.getKeepAliveConfig()); serverConnectorBootstrap.addServerHeader(listenerConfig.getServerHeader()); serverConnectorBootstrap.setPipeliningEnabled(listenerConfig.isPipeliningEnabled()); serverConnectorBootstrap.setPipeliningLimit(listenerConfig.getPipeliningLimit()); if (listenerConfig.isPipeliningEnabled()) { pipeliningGroup = new DefaultEventExecutorGroup(PIPELINING_THREAD_COUNT, new DefaultThreadFactory( PIPELINING_THREAD_POOL_NAME)); serverConnectorBootstrap.setPipeliningThreadGroup(pipeliningGroup); } return serverConnectorBootstrap.getServerConnector(listenerConfig.getHost(), listenerConfig.getPort()); }