Files
asv-format-validator/docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md

4.7 KiB
Raw Permalink Blame History

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.:
    de.gecheckt.asv.legacy.parser
    de.gecheckt.asv.legacy.validation
    de.gecheckt.asv.legacy.model
    
    oder alternativ:
    de.gecheckt.asv.application.preview
    
    Die Entscheidung zwischen legacy und preview wird 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.java mit 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

  • CliRunner und Bootstrap dürfen die Preview-Klassen nicht aufrufen
  • der aktive M1-Lauf verwendet ausschließlich den Dummy-Pfad aus AP06 (Datei einlesen, leeren ValidationReport erzeugen)
  • 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 neuen ValidationReport aus AP05 verwechselt

Saubere Kennzeichnung

  • In README.md des Repos (falls vorhanden, sonst anlegen) ein kurzer Abschnitt „Preview-Code" mit Verweis auf docs/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

  1. Branch m1/ap09-preview-einfrieren
  2. Zielpaket wählen (preview empfohlen) und im Bericht begründen
  3. Alle Parser-Klassen verschieben
  4. Alle Validator-Klassen verschieben
  5. validation.model.ValidationResult und validation.model.* mit verschieben
  6. Tests entsprechend verschieben; Imports anpassen
  7. CliRunner/Bootstrap auf Preview-Imports prüfen — darf keine haben, sonst entkoppeln
  8. package-info.java mit Warnhinweis in jedem Preview-Unterpaket anlegen
  9. README-Abschnitt „Preview-Code" ergänzen
  10. mvn clean verify grün bekommen (alle Tests der Preview-Klassen laufen weiter mit)
  11. Commit M1-AP09: Alt-Parser und Alt-Validator nach preview-Paket, vom M1-Lauf entkoppelt
  12. 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/application ist leer (keine Referenzen aus dem aktiven Code)
  • package-info.java mit Warnhinweis in jedem Preview-Unterpaket
  • README enthält Abschnitt „Preview-Code"
  • keine Klasse wurde gelöscht (git log --diff-filter=D für diesen Commit zeigt nur Verschiebungen)
  • mvn clean verify ist 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.