fix(Gradle-Build)

refactoring(Backend)
TODO-Roadmap.md
This commit is contained in:
stefan
2025-08-14 10:54:39 +02:00
parent d0232c23a0
commit 9811eb6130
3 changed files with 269 additions and 3 deletions
+10
View File
@@ -1,5 +1,7 @@
# Infrastructure/Cache Module
*Letzte Aktualisierung: 14. August 2025*
## Überblick
Das **Cache-Modul** stellt eine zentrale, hochverfügbare und wiederverwendbare Caching-Infrastruktur für alle Microservices bereit. Es dient der Verbesserung der Anwendungsperformance, der Reduzierung von Latenzen und der Entlastung der primären PostgreSQL-Datenbank.
@@ -49,6 +51,14 @@ class MasterdataService(
}
```
## Changelog
### 2025-08-14
- **Bug Fix:** Behoben: Compiler-Warnungen in `JacksonCacheSerializer` bezüglich identity-sensitiver Operationen auf `java.time.Instant` Typen
- Ersetzt direkte Gleichheitsvergleiche (`==`, `!=`) mit `Objects.equals()` für sichere Vergleiche von nullable Instant-Objekten
- Verbesserte Typsicherheit beim Vergleich von Zeitstempel-Feldern in der Cache-Serialisierung
- Alle Tests weiterhin erfolgreich, keine funktionalen Änderungen
## Testing-Strategie
Die Qualität des Moduls wird durch eine zweistufige Teststrategie sichergestellt:
@@ -9,6 +9,7 @@ import com.fasterxml.jackson.module.kotlin.KotlinModule
import com.fasterxml.jackson.module.kotlin.readValue
import java.io.ByteArrayInputStream
import java.io.ByteArrayOutputStream
import java.util.Objects
import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream
import kotlin.time.ExperimentalTime
@@ -88,9 +89,9 @@ class JacksonCacheSerializer : CacheSerializer {
if (key != other.key) return false
if (!valueBytes.contentEquals(other.valueBytes)) return false
if (valueType != other.valueType) return false
if (!createdAt.equals(other.createdAt)) return false
if (expiresAt != other.expiresAt && expiresAt?.equals(other.expiresAt) != true) return false
if (!lastModifiedAt.equals(other.lastModifiedAt)) return false
if (!Objects.equals(createdAt, other.createdAt)) return false
if (!Objects.equals(expiresAt, other.expiresAt)) return false
if (!Objects.equals(lastModifiedAt, other.lastModifiedAt)) return false
if (isDirty != other.isDirty) return false
if (isLocal != other.isLocal) return false