refactor(core): Stabilize and Refactor Shared Kernel
This commit introduces a comprehensive refactoring and stabilization of the core module, establishing a robust and well-tested foundation (Shared Kernel) for all other services. The module has been thoroughly analyzed, cleaned up, and equipped with a professional-grade test suite. Architectural Refinements: - Slimmed down `core-domain` to be a true, minimal Shared Kernel by removing all domain-specific enums (`PferdeGeschlechtE`, `SparteE`, etc.). This enforces loose coupling between feature modules. - The only remaining enum is `DatenQuelleE`, which is a cross-cutting concern. Code Refactoring & Improvements: - Refactored the configuration loading by introducing a `ConfigLoader` class. This decouples the `AppConfig` data classes from the loading mechanism, significantly improving the testability of components that rely on configuration. - Unified the previously duplicated `ValidationResult` and `ValidationError` classes into a single, serializable source of truth, ensuring consistent error reporting across all APIs. Testing Enhancements: - Introduced a comprehensive test suite for the core module, bringing it to a production-ready quality standard. - Implemented the "gold standard" for database testing by replacing the previous H2 approach with **Testcontainers**. The `DatabaseFactory` is now tested against a real, ephemeral PostgreSQL container, guaranteeing 100% production parity. - Added robust unit and integration tests for critical components, including the new `ConfigLoader`, all custom `Serializers`, and the `ApiResponse` logic. - Fixed all compilation and runtime errors in the test suite, resulting in a successful `./gradlew clean build`.
This commit is contained in:
@@ -55,6 +55,7 @@ caffeine = "3.1.8"
|
||||
reactorKafka = "1.3.22"
|
||||
jackson = "2.17.0"
|
||||
jakartaAnnotation = "2.1.1"
|
||||
roomCommonJvm = "2.7.2"
|
||||
|
||||
[libraries]
|
||||
# --- Platform BOMs (Bill of Materials) ---
|
||||
@@ -174,6 +175,7 @@ assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj" }
|
||||
testcontainers-core = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" }
|
||||
testcontainers-junit-jupiter = { module = "org.testcontainers:junit-jupiter", version.ref = "testcontainers" }
|
||||
testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "testcontainers" }
|
||||
room-common-jvm = { group = "androidx.room", name = "room-common-jvm", version.ref = "roomCommonJvm" }
|
||||
|
||||
[bundles]
|
||||
# OPTIMIERUNG: Bündelt gängige Abhängigkeitsgruppen.
|
||||
|
||||
Reference in New Issue
Block a user