Master 24 · Legacy Modernization Deep Dive

Eine Legacy-Quelle. Ein kontrollierter Migrationspfad.

Die frühere Beispiel-Legacy wurde entfernt. enterprise-legacy-monolith ist jetzt die einzige verbindliche Legacy-Implementierung: mit sechs unterschiedlichen Enterprise-Abläufen, konsistentem Schema, echten Tests, Golden Master, ACL, Strangler, Parallel Run und funktionaler Spring-Boot-Outbox.

Java 21Jakarta EE 10Spring Boot 3.5PostgreSQLKafkaCoverage Gate 80 %
11

aktive Maven-Module

Ohne die alten Module obsolete training module und obsolete training module.

6

Legacy-Workflows

Order, Billing, Contract, Inventory, Returns und End-of-Day Settlement.

0

Platzhaltertests

Alle früheren assertTrue(true)-Tests wurden ersetzt.

80 %

Quality Gate

JaCoCo-Line-Coverage-Gate für Legacy und moderne Runtime.

Modernisierungsarchitektur
Empfohlene Öffnungsreihenfolge
Build und Tests

Der projektlokale Bootstrap lädt beim ersten Start die festgelegte Maven-Version 3.9.11. Danach wird sie aus dem lokalen Maven-Cache verwendet.

# Windows
mvnw.cmd clean verify -Pall-tests

# Linux / WSL2
./mvnw clean verify -Pall-tests

Nur moderne Runtime lokal starten:

cd deploy/compose
docker compose up --build
Verbindliche Legacy-Quelle
Einzige aktive Legacy: mvn-ws-acl-strangler-deep-dive/enterprise-legacy-monolith

Die alte Lernspur wurde physisch gelöscht und aus Parent-POM, Navigation und Berichten entfernt. Characterization Tests und ACL referenzieren ausschließlich die Enterprise-Legacy.

Lehrbuch und Praxis

Kapitel 1 · Legacy verstehen

Beginne bei den sechs fachlichen Workflows und ihren Daten-/Remote-Abhängigkeiten. Nicht jede schlechte Struktur wird sofort korrigiert; zuerst muss ihr reales Verhalten sichtbar sein.

Kapitel 2 · Safety Net

Unit Tests prüfen Regeln und Fehler. Schema-ITs prüfen SQL-Verträge. Golden Master schützt bekannte Ausgaben. Diese Kombination ist wichtiger als eine isolierte Coverage-Zahl.

Kapitel 3 · Schnittgrenzen

ACL und Adapter verhindern, dass SOAP-Namen, Statuscodes und technische Fehler in das neue Domain-Modell wandern.

Kapitel 4 · Koexistenz

Strangler, Shadow Traffic und Parallel Comparison erlauben Legacy und Modern gleichzeitig. Ein Release Gate blockiert kritische Abweichungen.

Kapitel 5 · Moderne Betriebsfähigkeit

Transactional Outbox, Retry/Failed-Status, Probes, Metrics, Ressourcenlimits und NetworkPolicy machen aus einer Code-Migration eine betreibbare Anwendung.

Module und Quellcode

ModulZweck und InhaltPriorität
enterprise-legacy-monolithVerbindliche Legacy-Quelle
Sechs absichtlich gekoppelte Workflows mit EJB, JDBC, JMS, SOAP/REST-Clients, Audit und Outbox.
Kritisch
characterization-testsGolden Master
Freigegebene Snapshots und Schema-Verträge schützen beobachtetes Legacy-Verhalten.
Kritisch
refactoring-target-domainDomain-Modell
Money, OrderLine und Order-State-Machine als fachlich sauberes Zielmodell.
Sehr wichtig
anti-corruption-layerACL / Translator
Übersetzt mutable Legacy-DTOs, Statuscodes und Fehler in moderne Begriffe.
Kritisch
solid-refactoringSOLID-Zielbild
Application Service und Ports trennen Fachlogik von Infrastruktur.
Sehr wichtig
migration-batchRestartable Migration
Checkpoint, Chunk, Skip, Dead Letter und Wiederanlauf.
Sehr wichtig
parallel-run-comparisonParallel Run
Feldvergleich, Geldtoleranzen, Severity und Release Gate.
Kritisch
strangler-routerStrangler Routing
Deterministischer Traffic Split, Shadow Mode und Fallback.
Kritisch
modern-runtime-adapterLegacy Adapter
SOAP Mapping und begrenzte Retry-Policy am Systemrand.
Wichtig
spring-boot-migrationModerne Runtime
REST, JPA, PostgreSQL, Transactional Outbox, Kafka, Retry, Metrics und Probes.
Kritisch
runnable-smokeLauffähiger Überblick
Kompakter Command-/Pipeline-Smoke-Flow ohne externe Infrastruktur.
Wichtig
Abhängigkeitsrichtung

enterprise-legacy-monolith steht am Ausgangspunkt. characterization-tests beobachtet es, die ACL übersetzt es, Strangler und Parallel Run kontrollieren den Übergang. solid-refactoring und spring-boot-migration bilden das Ziel.

Entfernte Module

obsolete training module und obsolete training module wurden gelöscht. Ihre didaktisch sinnvollen Aspekte sind in der Enterprise-Legacy, den Characterization Tests und der Refactoring-Dokumentation aufgegangen.

⌂ Cockpit