Anvil CoderAnmelden

Anwendungsfälle

Legacy-Java modernisieren

Die Migration, die seit Jahren verschoben wird, als Kette kleiner, einzeln prüfbarer Schritte: ein gewachsenes Spring-Projekt auf Java 25 und Spring Boot 4, Commit für Commit.

Illustration zum Anwendungsfall „Legacy-Java modernisieren“ (dekorativ)

Fallstudie im Detail

Beispiel-Szenario

Stack-Profil: java-spring-boot-4-hexagonal · Beispiel-Szenario mit typischen Grössenordnungen.

Ein gewachsenes Spring-Projekt läuft auf einer alten Java- und Framework-Version. Abhängigkeiten haben sich über Jahre angehäuft, ein Teil der Tests ist rot oder übersprungen, und die Migration wurde immer wieder verschoben, weil niemand sie in kleine Schritte zerlegen konnte. Genau das übernimmt der Lauf: Zielniveau ins Ticket, Plan in Slices, jeder Slice ein Commit.

Was bei deinem Team bleibt: Das Zielniveau legt dein Team fest. Den Review jedes Slices, die Freigabe kritischer Abhängigkeitswechsel und den Merge behältst du.

Was du brauchst

So läuft es ab

  1. Das Ticket im Tracker beschreibt das Zielniveau je Modul.
  2. Der Plan zerlegt die Migration in geordnete, einzeln prüfbare Slices.
  3. Jeder Slice ändert einen abgegrenzten Ausschnitt: eine Abhängigkeit, eine API-Anpassung oder eine Testkorrektur.
  4. Je Slice laufen Kompilierung, die betroffenen Tests und die statische Analyse.
  5. Das Ergebnis kommt als Pull Request in dein Repository; du reviewst und mergst.

Was du bekommst

Kennzahlen

Umfang

Stories/Tickets
1
Slices
34
Dateien/Module
118

Durchsatz

Validierte Slices
31
Wiederholungen
9
Menschliche Eingriffe
6

Qualität

Ausgeführte Checks
Compile, Unit Tests, Static Analysis
Gates bestanden
5
Gates fehlgeschlagen
1

Ressourcen

Prompt-Tokens
500000
Completion-Tokens
200000
Cache-Tokens
750000
Modell-Aufrufe
200
Sandbox-Laufzeit
90 Minuten
Modell-/Stack-Kontext
Java 17 → Java 25, Spring Boot 3 → Spring Boot 4 (Zielprofil java-spring-boot-4-hexagonal).

Was offen blieb

Zwei ältere Testklassen decken den neuen Codepfad noch nicht ab; sie stehen als Ticket im Backlog.