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

+3 -2
View File
@@ -77,10 +77,11 @@ koin-androidx-compose = { module = "io.insert-koin:koin-androidx-compose" }
koin-compose = { module = "io.insert-koin:koin-compose" } koin-compose = { module = "io.insert-koin:koin-compose" }
koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" } koin-compose-viewmodel = { module = "io.insert-koin:koin-compose-viewmodel" }
koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation" } koin-compose-viewmodel-navigation = { module = "io.insert-koin:koin-compose-viewmodel-navigation" }
koin-ktor = { module = "io.insert-koin:koin-ktor" }
koin-logger-slf4j = { module = "io.insert-koin:koin-logger-slf4j" }
koin-test = { module = "io.insert-koin:koin-test" }
# z.Zt. alpha # z.Zt. alpha
#koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" } #koin-compose-viewmodel-navigation3 = { module = "io.insert-koin:koin-compose-viewmodel-navigation3" }
koin-ktor = { module = "io.insert-koin:koin-ktor" }
koin-test = { module = "io.insert-koin:koin-test" }
# ---- # ----
# Settings vorerst ohne externe Hilfe # Settings vorerst ohne externe Hilfe
+7 -1
View File
@@ -3,6 +3,7 @@ plugins {
alias(libs.plugins.ktor) alias(libs.plugins.ktor)
application application
alias(libs.plugins.kotlinSerialization) alias(libs.plugins.kotlinSerialization)
alias(libs.plugins.koin.compiler)
alias(masterLibs.plugins.versionPlugin) alias(masterLibs.plugins.versionPlugin)
} }
@@ -27,11 +28,16 @@ dependencies {
implementation(libs.ktor.serverCore) implementation(libs.ktor.serverCore)
implementation(libs.ktor.serverNetty) implementation(libs.ktor.serverNetty)
implementation(libs.ktor.serverAuth) implementation(libs.ktor.serverAuth)
implementation(libs.ktor.serverAuthApiKey)
implementation(libs.ktor.serverAuthJwt) implementation(libs.ktor.serverAuthJwt)
implementation(libs.ktor.serverContentNegotiation) implementation(libs.ktor.serverContentNegotiation)
implementation(libs.ktor.serializationJson) 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.ktor.serverTestHost)
testImplementation(libs.kotlin.testJunit) testImplementation(libs.kotlin.testJunit)
} }
+2 -2
View File
@@ -1,3 +1,3 @@
#auto generated #auto generated
#Sat Feb 07 17:52:53 CET 2026 #Sat Feb 07 20:02:00 CET 2026
build.number=25 build.number=27
@@ -3,6 +3,7 @@ package net.keinekekse.app
import io.github.oshai.kotlinlogging.KotlinLogging import io.github.oshai.kotlinlogging.KotlinLogging
import io.ktor.server.application.* import io.ktor.server.application.*
import net.keinekekse.app.server.VERSION 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.configureRouting
import net.keinekekse.app.server.config.configureSecurity 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() { fun Application.module() {
logger.info { "\n**\n** Starting ${VERSION.displayName} - ${VERSION.description} ${VERSION.fullVersion}\n**" } logger.info { "\n**\n** Starting ${VERSION.displayName} - ${VERSION.description} ${VERSION.fullVersion}\n**" }
configureKoin()
configureSecurity() configureSecurity()
configureRouting() configureRouting()
} }
@@ -3,14 +3,14 @@ package net.keinekekse.app.server
import net.keinekekse.version.Version import net.keinekekse.version.Version
object VERSION: Version { object VERSION: Version {
override val version = "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.25" override val fullVersion = "0.1.0-beta.1+build.27"
override val major = 0 override val major = 0
override val minor = 1 override val minor = 1
override val patch = 0 override val patch = 0
override val preRelease = "beta.1" override val preRelease = "beta.1"
override val buildMetadata = "build.25" override val buildMetadata = "build.27"
override val buildDate = "2026-02-07T16:52:53.281643Z" override val buildDate = "2026-02-07T19:02:00.909145Z"
override val displayName = "kAS" override val displayName = "kAS"
override val copyright = "Copyright (c) 2026 Hartmut Bauer" override val copyright = "Copyright (c) 2026 Hartmut Bauer"
override val name = "server" 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