dave
02/05/2019, 8:32 AMdata 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
}
}