docs: @Override
  
      public int ignite(String host,
                        int port,
                        SslStores sslStores,
                        int maxThreads,
                        int minThreads,
                        int threadIdleTimeoutMillis) throws Exception {
  
          boolean hasCustomizedConnectors = false;
  
          if (port == 0) {
              try (ServerSocket s = new ServerSocket(0)) {
                  port = s.getLocalPort();
              } catch (IOException e) {
                  logger.error("Could not get first available port (port set to 0), using default: {}", SPARK_DEFAULT_PORT);
                  port = SPARK_DEFAULT_PORT;
              }
          }
  
          // Create instance of jetty server with either default or supplied queued thread pool
          if(threadPool == null) {
              server = serverFactory.create(maxThreads, minThreads, threadIdleTimeoutMillis);
          } else {
              server = serverFactory.create(threadPool);
          }
  
          ServerConnector connector;
  
          if (sslStores == null) {
              connector = SocketConnectorFactory.createSocketConnector(server, host, port);
          } else {
              connector = SocketConnectorFactory.createSecureSocketConnector(server, host, port, sslStores);
          }
  
          Connector previousConnectors[] = server.getConnectors();
          server = connector.getServer();
          if (previousConnectors.length != 0) {
              server.setConnectors(previousConnectors);
              hasCustomizedConnectors = true;
          } else {
              server.setConnectors(new Connector[] {connector});
          }
  
          ServletContextHandler webSocketServletContextHandler =
              WebSocketServletContextHandlerFactory.create(webSocketHandlers, webSocketIdleTimeoutMillis);
  
          // Handle web socket routes
          if (webSocketServletContextHandler == null) {
              server.setHandler(handler);
          } else {
              List<Handler> handlersInList = new ArrayList<>();
              handlersInList.add(handler);
  
              // WebSocket handler must be the last one
              if (webSocketServletContextHandler != null) {
                  handlersInList.add(webSocketServletContextHandler);
              }
  
              HandlerList handlers = new HandlerList();
              handlers.setHandlers(handlersInList.toArray(new Handler[handlersInList.size()]));
              server.setHandler(handlers);
          }
  
          logger.info("== {} has ignited ...", NAME);
          if (hasCustomizedConnectors) {
              logger.info(">> Listening on Custom Server ports!");
          } else {
              logger.info(">> Listening on {}:{}", host, port);
          }
  
          server.start();
          return port;
      }