1
0
Files
asv-format-validator/docs/arbeitspakete/m1/AP09-altlogik-einfrieren.md
T
2026-04-20 10:11:19 +02:00

5.1 KiB
Raw Blame History

model
model
sonnet

AP09 Altlogik einfrieren (Preview-Code deaktivieren)

Meilenstein: M1 Vorgänger: AP03, AP05, AP06 erforderlich Nachfolger: AP10, AP11 Grundlage: AP00-ist-analyse.md §§ 7, 8 Entscheidungsprotokoll: docs/arbeitspakete/m1/E00-entscheidungsprotokoll.md (E-01 Option b, E-03 leere Testklasse)

Ziel

Die bestehende Preview-Parser- und Validator-Logik (DefaultStructureValidator, DefaultFieldValidator, DefaultInputFileValidator) wird nicht gelöscht und nicht verschoben, sondern im Bootstrap nicht mehr verdrahtet. Ein M1-Lauf erzeugt keine fachlichen ASVREC-/ASVFEH-Befunde mehr. Die Klassen bleiben physisch an ihrem Ort als M3-Vorbau.

Hintergrund und Entscheidung

Laut AP00-Ist-Analyse läuft DefaultStructureValidator (19 ASVREC/ASVFEH-Regeln) aktiv im produktiven Lauf mit — was dem M1-Ziel „noch keine ASV-Fachvalidierung" widerspricht.

Entscheidung E-01: Option (b) — Klassen bleiben in ihren Paketen, werden aber im Bootstrap nicht mehr verdrahtet. Für M3 kann die Verdrahtung direkt wieder aktiviert werden.

Kein Paketumzug, keine Umbenennung, kein @Deprecated.

Voraussetzungen

  • AP03 (Paketstruktur)
  • AP05 (neues Befundmodell)
  • AP06 (neuer Bootstrap/CLI)

Scope IN

1. Bootstrap-Verdrahtung anpassen

In bootstrap.Main: DefaultInputFileValidator erhält statt DefaultStructureValidator und DefaultFieldValidator jeweils eine Null-Implementation — eine leere Implementierung der jeweiligen Interfaces, die keine Befunde produziert.

Die Null-Implementierungen können als benannte Klassen in bootstrap oder application angelegt werden:

/** M1-Platzhalter. Ab M3 durch DefaultStructureValidator ersetzen. */
public final class NoOpStructureValidator implements StructureValidator {
    @Override
    public List<Finding> validate(ValidationContext ctx) {
        return List.of(); // bewusst leer in M1
    }
}

Analog für NoOpFieldValidator.

2. Einfriermarker als JavaDoc-Kommentar

DefaultStructureValidator und DefaultFieldValidator erhalten folgenden JavaDoc-Kommentar — keine andere Änderung:

/**
 * M3-Vorbau. In M1 bewusst nicht im produktiven Lauf verdrahtet.
 * Wird ab M3 wieder aktiviert und gegen die finalen Regelklassifikationen
 * (V1-V/T/N/K) aus fachliche-anforderungen.md bewertet.
 *
 * @see docs/arbeitspakete/m1/E00-entscheidungsprotokoll.md E-01
 */

3. Abnahmetest

Ein Integrationstest prüft, dass ein Lauf mit einer beliebigen Testdatei keine fachlichen Findings mit Bezug auf ASVREC-/ASVFEH-Segmentregeln erzeugt.

4. Aufräumen

  • DefaultStructureValidatorTestAdditional (leere Testklasse ohne @Test-Methoden) löschen (gemäß E-03)
  • Sicherstellen dass logs/ in .gitignore steht (falls AP06 das noch nicht erledigt hat)
  • Aktive Tests von DefaultStructureValidator und DefaultFieldValidator bleiben erhalten und grün — sie testen den M3-Vorbau

5. Grep-Nachweis im Bericht

grep -rn "DefaultStructureValidator\|DefaultFieldValidator" \
  src/main/java/de/gecheckt/asv/adapter \
  src/main/java/de/gecheckt/asv/bootstrap

Muss leer sein — der aktive Code darf diese Klassen nicht mehr referenzieren.

Scope OUT

  • Paketumzug der Preview-Klassen (explizit nicht — Entscheidung E-01 Option b)
  • Inhaltliche Änderung an DefaultStructureValidator oder DefaultFieldValidator
  • Fachliche Neubewertung der 19 Preview-Regeln (das ist M3)
  • Löschen von Preview-Klassen

Schritte

  1. NoOpStructureValidator und NoOpFieldValidator anlegen
  2. bootstrap.Main umverdrahten: Preview-Validatoren durch NoOp-Implementierungen ersetzen
  3. JavaDoc-Einfriermarker in DefaultStructureValidator und DefaultFieldValidator ergänzen
  4. DefaultStructureValidatorTestAdditional löschen
  5. Grep-Nachweis ausführen und im Bericht dokumentieren
  6. Integrationstest: Lauf erzeugt keine ASVREC-/ASVFEH-Segmentbefunde
  7. mvn clean verify grün — alle bisherigen Tests der Preview-Klassen müssen weiterhin grün sein
  8. Abschlussbericht schreiben

Abnahmekriterien

  • NoOpStructureValidator und NoOpFieldValidator existieren
  • bootstrap.Main verdrahtet keine Preview-Validatoren mehr
  • Grep auf DefaultStructureValidator/DefaultFieldValidator in adapter und bootstrap ist leer (Nachweis im Bericht)
  • Einfriermarker-JavaDoc in beiden Preview-Klassen vorhanden
  • DefaultStructureValidatorTestAdditional ist gelöscht
  • Bestehende Tests der Preview-Klassen laufen weiterhin grün
  • Integrationstest: Lauf mit Testdatei erzeugt keine ASVREC-/ASVFEH-Segmentbefunde
  • mvn clean verify grün
  • Abschlussbericht unter docs/arbeitspakete/m1/berichte/AP09-bericht.md

Rest-Risiken und offene Punkte

  • Bei Wiederaufnahme in M3: jede der 19 Preview-Regeln ist neu gegen V1-V/T/N/K-Klassifikation zu bewerten. Explizit M3-Aufgabe.
  • Falls Preview-Tests beim Einfrieren brechen (z.B. wegen Interface-Änderungen durch AP05): einmalige Anpassung der Testimports ist kein Scope-Verstoß, sondern Teil der Konsolidierung.

Bericht

docs/arbeitspakete/m1/berichte/AP09-bericht.md nach docs/arbeitspakete/m1/templates/ap-bericht.md.