4.7 KiB
4.7 KiB
AP09 – Altlogik aus M1 entkoppeln (Parser/Validator einfrieren)
Ziel
Die bereits vorhandene Parser- und Validator-Logik aus der früheren Implementierung (vor dieser M1-Planung) wird nicht gelöscht, aber sauber entkoppelt vom aktiven M1-Lauf. Sie wird als „Vorbau für M3 und folgende" explizit markiert und ist während M1 nicht Bestandteil der aktiven Verarbeitungskette.
Hintergrund: Der ursprüngliche Stand im Repository enthält bereits DefaultInputFileParser, DefaultSegmentLineTokenizer, DefaultStructureValidator, DefaultFieldValidator, DefaultInputFileValidator und validation.model.ValidationResult. Das ist wertvoll und darf nicht verloren gehen — gehört aber fachlich in M3 (Parser), M5 (Feldregeln) und M6 (Beziehungen), nicht in M1.
Voraussetzungen
- AP03 (Migration), AP05 (neues Befundmodell), AP06 (neuer Bootstrap/CLI)
Scope IN
Einfrieren statt Löschen
- Die bestehenden Klassen bleiben vollständig erhalten, inklusive Tests
- Sie werden in ein klar erkennbares Unterpaket verschoben, z.B.:
oder alternativ:
de.gecheckt.asv.legacy.parser de.gecheckt.asv.legacy.validation de.gecheckt.asv.legacy.modelDie Entscheidung zwischende.gecheckt.asv.application.previewlegacyundpreviewwird im Bericht dokumentiert und begründet. Empfehlung:preview, weil „legacy" suggeriert, dass etwas alt und zu entsorgen ist — tatsächlich wird der Code in M3/M5/M6 weiterverwendet. - Jedes Paket bekommt ein
package-info.javamit deutlichem Hinweis:Diese Klassen stammen aus einer früheren Implementierung und sind für die Meilensteine M3 bis M6 vorgesehen. Sie sind in M1 nicht Teil der aktiven Validierungskette. Änderungen an diesen Klassen während M1 sind zu vermeiden.
Entkopplung vom Lauf
CliRunnerundBootstrapdürfen die Preview-Klassen nicht aufrufen- der aktive M1-Lauf verwendet ausschließlich den Dummy-Pfad aus AP06 (Datei einlesen, leeren
ValidationReporterzeugen) - die alten Tests der Preview-Klassen laufen weiterhin grün mit, damit der Code nicht verrottet
validation.model.ValidationResult(alt) bleibt im Preview-Paket und wird nicht mit dem neuenValidationReportaus AP05 verwechselt
Saubere Kennzeichnung
- In
README.mddes Repos (falls vorhanden, sonst anlegen) ein kurzer Abschnitt „Preview-Code" mit Verweis aufdocs/arbeitspakete/m1/AP09-altlogik-einfrieren.md - Kein
@Deprecated! Deprecated würde bedeuten „wird entfernt" — das Gegenteil ist der Fall.
Scope OUT
- Weiterentwicklung der Preview-Klassen
- Änderung der Preview-Tests (außer notwendige Import-Anpassungen durch den Package-Umzug)
- Integration der Preview-Klassen in die neue
domain.finding-Struktur (das ist explizit M3+) - Löschung von Preview-Klassen, auch wenn sie wie Duplikate wirken
Schritte
- Branch
m1/ap09-preview-einfrieren - Zielpaket wählen (
previewempfohlen) und im Bericht begründen - Alle Parser-Klassen verschieben
- Alle Validator-Klassen verschieben
validation.model.ValidationResultundvalidation.model.*mit verschieben- Tests entsprechend verschieben; Imports anpassen
CliRunner/Bootstrapauf Preview-Imports prüfen — darf keine haben, sonst entkoppelnpackage-info.javamit Warnhinweis in jedem Preview-Unterpaket anlegen- README-Abschnitt „Preview-Code" ergänzen
mvn clean verifygrün bekommen (alle Tests der Preview-Klassen laufen weiter mit)- Commit
M1-AP09: Alt-Parser und Alt-Validator nach preview-Paket, vom M1-Lauf entkoppelt - Abschlussbericht schreiben
Abnahmekriterien
- alle ursprünglich vorhandenen Parser- und Validator-Klassen liegen im Preview-Paket
- alle zugehörigen Tests laufen weiterhin grün
grep -rn "de.gecheckt.asv.preview" src/main/java/de/gecheckt/asv/adapter src/main/java/de/gecheckt/asv/bootstrap src/main/java/de/gecheckt/asv/applicationist leer (keine Referenzen aus dem aktiven Code)package-info.javamit Warnhinweis in jedem Preview-Unterpaket- README enthält Abschnitt „Preview-Code"
- keine Klasse wurde gelöscht (
git log --diff-filter=Dfür diesen Commit zeigt nur Verschiebungen) mvn clean verifyist grün- Abschlussbericht liegt vor
Rest-Risiken und offene Punkte
- Bei Wiederaufnahme in M3 wird zu klären sein, wie der Preview-Code an das neue Befundmodell angebunden wird. Das ist explizit M3-Aufgabe, nicht M1.
- Falls die Preview-Tests beim Package-Umzug brechen (wegen relativer Ressourcenpfade o.ä.), müssen sie einmalig angepasst werden. Das ist kein Scope-Verstoß, sondern Teil des Umzugs.
Bericht
docs/arbeitspakete/m1/berichte/AP09-bericht.md nach templates/ap-bericht.md.