so, for instance - this is the default implementat...
# http4k
d
so, for instance - this is the default implementation of Undertow:
Copy code
data class Undertow(val port: Int = 8000, val enableHttp2: Boolean) : ServerConfig {
    constructor(port: Int = 8000) : this(port, false)

    override fun toServer(httpHandler: HttpHandler): Http4kServer =
        object : Http4kServer {
            val server = Undertow.builder()
                .addHttpListener(port, "0.0.0.0")
                .setServerOption(ENABLE_HTTP2, enableHttp2)
                .setHandler(BlockingHandler(HttpUndertowHandler(httpHandler))).build()

            override fun start() = apply { server.start() }

            override fun stop() = apply { server.stop() }

            override fun port(): Int = if (port > 0) port else (server.listenerInfo[0].address as InetSocketAddress).port
        }
}