meldestelle/backend/infrastructure/event-store/valkey-event-store/build.gradle.kts
Stefan Mogeritsch 7757684b6e refactor: update docker images to use custom registry and optimize configurations
Switched container images in `dc-infra.yaml` to a custom Docker registry for better control and consistency across deployments. Added Keycloak with enhanced configurations and updated several container restart policies, memory allocations, and healthcheck settings for improved performance and compatibility.
2026-02-12 20:35:25 +01:00

70 lines
2.6 KiB
Plaintext

// Dieses Modul stellt eine konkrete Implementierung der `event-store-api`
// unter Verwendung von Valkey Streams als Event-Store-Backend bereit.
plugins {
alias(libs.plugins.kotlinJvm)
alias(libs.plugins.kotlinSpring)
alias(libs.plugins.spring.boot)
alias(libs.plugins.spring.dependencyManagement)
}
kotlin {
compilerOptions {
freeCompilerArgs.addAll(
"-opt-in=kotlin.time.ExperimentalTime",
"-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
"-opt-in=kotlin.uuid.ExperimentalUuidApi"
)
}
}
dependencies {
// === Core Dependencies ===
// Stellt sicher, dass alle Versionen aus der zentralen BOM kommen
implementation(platform(projects.platform.platformBom))
// Implementiert die provider-agnostische Event-Store-API
api(projects.backend.infrastructure.eventStore.eventStoreApi)
// Benötigt Zugriff auf Core-Module für Domänen-Events und Utilities
implementation(projects.core.coreDomain)
implementation(projects.core.coreUtils)
// === Valkey & Spring Dependencies ===
// OPTIMIERUNG: Wiederverwendung des `valkey-cache`-Bundles, da es die
// gleichen Technologien (Spring Data Valkey, Lettuce, Jackson) verwendet
implementation(libs.bundles.valkey.cache)
// Stellt Jakarta Annotations bereit (z. B. @PostConstruct), die von Spring verwendet werden
implementation(libs.jakarta.annotation.api)
// Für Kotlin-spezifische Coroutines-Integration mit Spring
implementation(libs.kotlinx.coroutines.reactor)
// === Test Dependencies ===
// Fügt JUnit, Mockk, AssertJ etc. für die Tests hinzu
testImplementation(projects.platform.platformTesting)
testImplementation(libs.bundles.testing.jvm)
testImplementation(libs.bundles.testcontainers)
// Zusätzliche Test-Dependencies für erweiterte Event-Store-Tests
testImplementation(libs.kotlinx.serialization.json)
testImplementation(libs.reactor.test)
// Für Integration Tests mit beiden Valkey-Modulen
testImplementation(projects.backend.infrastructure.cache.cacheApi)
testImplementation(projects.backend.infrastructure.cache.valkeyCache)
}
// === Task Configuration ===
// Deaktiviert die Erstellung eines ausführbaren Jars für dieses Valkey Bibliothek-Modul
tasks.bootJar {
enabled = false
}
// Stellt sicher, dass stattdessen ein reguläres Jar gebaut wird
tasks.jar {
enabled = true
archiveClassifier.set("")
}
// Optimiert die Test-Ausführung
tasks.test {
useJUnitPlatform()
// Verbesserte Test-Performance für Testcontainer
systemProperty("testcontainers.reuse.enable", "true")
// Parallelisierung für bessere Performance
maxParallelForks = (Runtime.getRuntime().availableProcessors() / 2).coerceAtLeast(1)
}