33 lines
1020 B
Kotlin
33 lines
1020 B
Kotlin
package be.simplenotes.app
|
|
|
|
import org.eclipse.jetty.server.Server
|
|
import org.eclipse.jetty.server.ServerConnector
|
|
import org.http4k.routing.RoutingHttpHandler
|
|
import org.http4k.server.ConnectorBuilder
|
|
import org.http4k.server.Jetty
|
|
import org.http4k.server.ServerConfig
|
|
import org.http4k.server.asServer
|
|
import org.slf4j.LoggerFactory
|
|
import be.simplenotes.shared.config.ServerConfig as SimpleNotesServeConfig
|
|
|
|
class Server(
|
|
private val config: SimpleNotesServeConfig,
|
|
private val serverConfig: ServerConfig,
|
|
private val router: RoutingHttpHandler,
|
|
) {
|
|
fun start() {
|
|
router.asServer(serverConfig).start()
|
|
LoggerFactory.getLogger(javaClass).info("Listening on http://${config.host}:${config.port}")
|
|
}
|
|
}
|
|
|
|
fun serverConfig(config: SimpleNotesServeConfig): ServerConfig {
|
|
val builder: ConnectorBuilder = { server: Server ->
|
|
ServerConnector(server).apply {
|
|
port = config.port
|
|
host = config.host
|
|
}
|
|
}
|
|
return Jetty(config.port, builder)
|
|
}
|