34 lines
1.2 KiB
Kotlin
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
|
|
}
|
|
}
|