Updated test cases in `ValkeyEventStoreTest` and cache implementation in `ValkeyDistributedCache` to fully transition from Redis to Valkey. Adjusted configurations, templates, connection handling, and exception management to reflect Valkey-specific behavior and APIs.
75 lines
2.9 KiB
Plaintext
75 lines
2.9 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)
|
|
// Benötigt für Lettuce-basierten Valkey-Client (LettuceConnectionFactory)
|
|
implementation(libs.lettuce.core)
|
|
// Für Boot-Autoconfiguration-Annotations (z. B. @ConditionalOnMissingBean,
|
|
// @ConfigurationProperties, @EnableConfigurationProperties)
|
|
implementation("org.springframework.boot:spring-boot-autoconfigure")
|
|
// 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)
|
|
}
|