camp2camp/src/main/kotlin/CustomApacheServer.kt

34 lines
1.2 KiB
Kotlin

package be.simplenotes.c2c
import org.apache.hc.core5.http.impl.bootstrap.ServerBootstrap
import org.apache.hc.core5.http.io.SocketConfig
import org.http4k.core.HttpHandler
import org.http4k.server.Http4kRequestHandler
import org.http4k.server.Http4kServer
import org.http4k.server.ServerConfig
class CustomApacheServer(val port: Int) : ServerConfig {
override fun toServer(httpHandler: HttpHandler): Http4kServer = object : Http4kServer {
val handler = Http4kRequestHandler(httpHandler)
val server = ServerBootstrap.bootstrap()
.setListenerPort(port)
.setSocketConfig(SocketConfig.custom()
.setTcpNoDelay(true)
.setSoKeepAlive(true)
.setSoReuseAddress(true)
.setBacklogSize(1000)
.build())
.apply {
register("*", handler)
registerVirtual("dev.simplenotes.be", "*", handler) // TODO: find a way to put a wildcard
}.create()
override fun start() = apply { server.start() }
override fun stop() = apply { server.stop() }
override fun port(): Int = port
}
}