[!TIP]
🌐 English version available here 👈
Dieses Dokument erklärt, wie die Konsistenz der SDKs über verschiedene Programmiersprachen hinweg in diesem Open-Source-Projekt gewahrt wird.
Das .NET-Projekt ist die „Single Source of Truth“ (einzige Quelle der Wahrheit) für alle Modelle. Die Modelle des Java-SDKs werden manuell gepflegt und gegen das generierte JSON-Schema geprüft, um Parität sicherzustellen.
.NET Models → JSON Schema
↓
Parity Tests prüfen Java-Übereinstimmung
Wenn sich .NET-Modelle ändern, generiert das XsdGenerator-Projekt folgendes neu:
schemas/xjustiz-core.schema.json)Die Java-Modelle werden manuell in sdk/java/src/main/java/de/xjustiz/core/models/ erstellt.
Automatisierte Paritätstests überprüfen, ob die Java-Modelle:
Die Pipeline führt aus:
SchemaParityTest – Prüft, ob Java-Modelle dem Schema entsprechenWird eine Abweichung gefunden, schlägt die Pipeline fehl.
sdk/dotnet/src/xjustiz.core-dotnet/Models/Verwenden Sie das Synchronisierungsskript, um Java-Modelle automatisch basierend auf .NET-Modellen zu aktualisieren:
python scripts/sync-java-models.py
Das Skript wird:
sdk/dotnet/src/xjustiz.core-dotnet/Models/Entities/ parsen# Java Paritätstests (via Gradle)
cd sdk/java && gradle test --tests "*SchemaParityTest*"
X.Justiz.Core/
├── sdk/dotnet/src/xjustiz.core-dotnet/ # Source of Truth
│ └── Models/ # .NET Modelle (hier bearbeiten)
├── schemas/
│ └── xjustiz-core.schema.json # Generiert aus .NET
├── sdk/java/src/main/java/de/xjustiz/core/
│ ├── models/ # Java Modelle (synchronisiert von .NET)
│ └── serialization/ # Handgeschriebene Hilfsprogramme
└── scripts/
└── sync-java-models.py # Synchronisiert Java-Modelle von .NET