39 lines
1.2 KiB
Kotlin
39 lines
1.2 KiB
Kotlin
package be.simplenotes.app.modules
|
|
|
|
import be.simplenotes.app.jetty.ConnectorBuilder
|
|
import be.simplenotes.app.jetty.Jetty
|
|
import be.simplenotes.app.routes.Router
|
|
import be.simplenotes.app.utils.StaticFileResolver
|
|
import be.simplenotes.config.ServerConfig
|
|
import io.micronaut.context.annotation.Factory
|
|
import org.eclipse.jetty.server.ServerConnector
|
|
import org.http4k.server.Http4kServer
|
|
import org.http4k.server.asServer
|
|
import jakarta.inject.Named
|
|
import jakarta.inject.Singleton
|
|
import org.eclipse.jetty.server.Server as JettyServer
|
|
import org.http4k.server.ServerConfig as Http4kServerConfig
|
|
|
|
@Factory
|
|
class ServerModule {
|
|
|
|
@Singleton
|
|
@Named("styles")
|
|
fun styles(resolver: StaticFileResolver) = resolver.resolve("styles.css")!!
|
|
|
|
@Singleton
|
|
fun http4kServer(router: Router, serverConfig: Http4kServerConfig): Http4kServer =
|
|
router().asServer(serverConfig)
|
|
|
|
@Singleton
|
|
fun http4kServerConfig(config: ServerConfig): Http4kServerConfig {
|
|
val builder: ConnectorBuilder = { server: JettyServer ->
|
|
ServerConnector(server).apply {
|
|
port = config.port
|
|
host = config.host
|
|
}
|
|
}
|
|
return Jetty(config.port, builder)
|
|
}
|
|
}
|