5 KOIN-Integration in Server (closes #5)

This commit is contained in:
Hartmut Bauer committed 2026-02-07 20:45:38 +01:00
1 parent c62ee0c2e6
commit 60f70ece4a
8 files changed
+48 -9

No files matched your search

+7 -1
View File
@@ -3,6 +3,7 @@ plugins {
alias(libs.plugins.ktor)
application
alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.koin.compiler)
alias(masterLibs.plugins.versionPlugin)
}
@@ -27,11 +28,16 @@ dependencies {
implementation(libs.ktor.serverCore)
implementation(libs.ktor.serverNetty)
implementation(libs.ktor.serverAuth)
implementation(libs.ktor.serverAuthApiKey)
implementation(libs.ktor.serverAuthJwt)
implementation(libs.ktor.serverContentNegotiation)
implementation(libs.ktor.serializationJson)
implementation(project.dependencies.platform(libs.koin.bom))
implementation(libs.koin.logger.slf4j)
implementation(libs.koin.annotations)
implementation(libs.koin.ktor)
// implementation("io.insert-koin:koin-logger-slf4j:4.1.2-Beta1")
testImplementation(libs.ktor.serverTestHost)
testImplementation(libs.kotlin.testJunit)
}
+2 -2
View File
@@ -1,3 +1,3 @@
#auto generated
#Sat Feb 07 17:52:53 CET 2026
build.number=25
#Sat Feb 07 20:02:00 CET 2026
build.number=27
@@ -3,6 +3,7 @@ package net.keinekekse.app
import io.github.oshai.kotlinlogging.KotlinLogging
import io.ktor.server.application.*
import net.keinekekse.app.server.VERSION
import net.keinekekse.app.server.config.configureKoin
import net.keinekekse.app.server.config.configureRouting
import net.keinekekse.app.server.config.configureSecurity
@@ -22,6 +23,7 @@ fun main(args: Array<String>): Unit = io.ktor.server.netty.EngineMain.main(args)
fun Application.module() {
logger.info { "\n**\n** Starting ${VERSION.displayName} - ${VERSION.description} ${VERSION.fullVersion}\n**" }
configureKoin()
configureSecurity()
configureRouting()
}
@@ -3,14 +3,14 @@ package net.keinekekse.app.server
import net.keinekekse.version.Version
object VERSION: Version {
override val version = "0.1.0-beta.1+build.25"
override val fullVersion = "0.1.0-beta.1+build.25"
override val version = "0.1.0-beta.1+build.27"
override val fullVersion = "0.1.0-beta.1+build.27"
override val major = 0
override val minor = 1
override val patch = 0
override val preRelease = "beta.1"
override val buildMetadata = "build.25"
override val buildDate = "2026-02-07T16:52:53.281643Z"
override val buildMetadata = "build.27"
override val buildDate = "2026-02-07T19:02:00.909145Z"
override val displayName = "kAS"
override val copyright = "Copyright (c) 2026 Hartmut Bauer"
override val name = "server"
@@ -0,0 +1,14 @@
package net.keinekekse.app.server.config
import io.ktor.server.application.*
import net.keinekekse.app.server.di.KoinApp
import org.koin.dsl.koinConfiguration
import org.koin.logger.slf4jLogger
import org.koin.plugin.module.dsl.withConfiguration
fun Application.configureKoin() {
koinConfiguration {
slf4jLogger()
withConfiguration<KoinApp>()
}
}
@@ -0,0 +1,6 @@
package net.keinekekse.app.server.di
import org.koin.core.annotation.KoinApplication
@KoinApplication
class KoinApp
@@ -0,0 +1,10 @@
package net.keinekekse.app.server.di
import org.koin.core.annotation.ComponentScan
import org.koin.core.annotation.Configuration
import org.koin.core.annotation.Module
@Module
@ComponentScan("net.keinekekse.app")
@Configuration
class KoinModule