@Override public Server build() { final ChannelGroup activeChannels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE); final SyncRequestQueueObserver queueObserver = new SyncRequestQueueObserver(activeChannels, metricFactory); Executor executorService = null; if (threadPoolConfig != null) { executorService = createExecutorService(threadPoolConfig, queueObserver); } registerServices(serviceDescriptors, registry, executorService); final StaticPathResolver staticResolver = new StaticPathResolver(contextPath, staticFolders, staticMappings, staticResources); final NettyServer server = new NettyServer( port, registry, marshallerRegistry, staticResolver, queueObserver, activeChannels, contextPath, appName, acceptKeepAlive, supportZip, metricFactory, maxContentLength, requestTimeoutMs); server.addListeners(listeners); return server; }