Legacy-Modernisierung: Java EE, EJB, SOAP, JSP zu modernem Java
Verstehen, absichern, strangeln, extrahieren und modernisieren ohne Blindflug.
Enterprise JavaBeispieleArchitekturOffline HTML
Modernisierung beginnt mit Verstehen
Legacy-Code ist nicht automatisch schlecht. Er enthält Geschäftsregeln, Ausnahmen, historische Partnerverträge und Produktionswissen. Modernisierung bedeutet, dieses Wissen zu sichern, bevor Technik ersetzt wird.
| Phase | Ziel | Artefakt |
|---|---|---|
| Inventur | Systeme, Schnittstellen, Jobs, DB, Deployments verstehen | Systemlandkarte, Abhängigkeitsmatrix |
| Absicherung | Tests und Observability für kritische Pfade schaffen | Characterization Tests, Logs, Traces |
| Schnitt setzen | Neue API/Fassade oder Strangler-Kante definieren | Adapter, Facade, Proxy, Routing-Regel |
| Extraktion | Fachliche Capability herauslösen | Modul oder Service mit Vertrag |
| Ablösung | Traffic umstellen, Altpfad entfernen | Migrationsreport, Runbook, Rückbauplan |
Strangler Fig praktisch
Strangler-Fassade für schrittweise Migration
public class OrderFacade {
private final LegacyOrderService legacy;
private final ModernOrderService modern;
private final MigrationSwitch migrationSwitch;
// Pattern: Facade + Strangler Fig - Aufrufer bleiben stabil, Implementierung wandert schrittweise.
public OrderResponse placeOrder(PlaceOrderRequest request) {
if (migrationSwitch.useModernPath(request.customerSegment())) {
return modern.placeOrder(request);
}
return legacy.placeOrder(request);
}
}
javax zu jakarta
Die Umstellung von javax.* auf jakarta.* ist nicht nur Suchen/Ersetzen. Application Server, Libraries, Annotation Processor, SOAP/JAX-WS, JPA Provider, Validation, Security und Tests müssen zusammenpassen. Besonders kritisch sind alte Bibliotheken, die noch javax-APIs erwarten.