public void start() {

        if (!HTTP_BIND_ENABLED.getValue()) {
            return;
        }

        final QueuedThreadPool tp = new QueuedThreadPool(HTTP_BIND_THREADS.getValue(), HTTP_BIND_THREADS_MIN.getValue(), (int) HTTP_BIND_THREADS_TIMEOUT.getValue().toMillis());
        tp.setName("Jetty-QTP-BOSH");

        httpBindServer = new Server(tp);
        if (JMXManager.isEnabled()) {
            JMXManager jmx = JMXManager.getInstance();
            httpBindServer.addBean(jmx.getContainer());
        }

        final Connector httpConnector = createConnector( httpBindServer );
        final Connector httpsConnector = createSSLConnector( httpBindServer);

        if (httpConnector == null && httpsConnector == null) {
            httpBindServer = null;
            return;
        }
        if (httpConnector != null) {
            httpBindServer.addConnector(httpConnector);
        }
        if (httpsConnector != null) {
            httpBindServer.addConnector(httpsConnector);
        }

        httpBindServer.setHandler( handlerList );

        try {
            httpBindServer.start();

            if (handlerList.getHandlers() != null) {
                Arrays.stream(handlerList.getHandlers().toArray()).forEach(handler  -> {
                    try {
                        ((Handler)handler).start();
                    } catch (Exception e) {
                        Log.warn("An exception occurred while trying to start handler: {}", handler, e);
                    }
                });
            }
            handlerList.start();

            if ( extensionHandlers.getHandlers() != null ) {
                Arrays.stream(handlerList.getHandlers().toArray()).forEach(handler  -> {
                    try {
                        ((Handler)handler).start();
                    } catch (Exception e) {
                        Log.warn("An exception occurred while trying to start extension handler: {}", handler, e);
                    }
                });
            }
            extensionHandlers.start();

            CertificateManager.addListener(this);

            Log.info("HTTP bind service started");
        }
        catch (Exception e) {
            Log.error("Error starting HTTP bind service", e);
        }

        if ( JiveGlobals.getBooleanProperty( "jetty.temp-file-toucher.enabled", true ) ) {
            tempFileToucherTask = new TempFileToucherTask( httpBindServer );
            final Duration period = Duration.ofMillis(JiveGlobals.getLongProperty( "jetty.temp-file-toucher.period", Duration.ofDays(1).toMillis() ));
            TaskEngine.getInstance().schedule( tempFileToucherTask, period, period );
        }
    }
A task that, periodically, updates the 'last modified' date of all files in the Jetty 'tmp' directories. This
prevents operating systems from removing files that are deemed unused.

@see <a href="https://igniterealtime.atlassian.net/browse/OF-1534">OF-1534</a>
xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java