Legacy Java EE Support und Modernisierung

Assessment, Stabilisierung, schrittweise Migration und Weiterentwicklung gewachsener Enterprise-Anwendungen.

Viele Enterprise-Anwendungen sind seit zehn, fünfzehn oder zwanzig Jahren produktiv. Sie erfüllen weiterhin eine wichtige Aufgabe, lassen sich aber nicht ohne Weiteres ersetzen.

Gleichzeitig wird es schwieriger, sie zuverlässig weiterzuentwickeln. Das Wissen über die Anwendung konzentriert sich auf wenige Personen, frühere Entwickler verlassen das Unternehmen und ältere Frameworks oder Laufzeitumgebungen müssen mit heutigen Sicherheits- und Infrastrukturvorgaben in Einklang gebracht werden.

Ich übernehme die Weiterentwicklung und technische Modernisierung bestehender Java-EE-Anwendungen – vom Einstieg in eine historisch gewachsene Codebasis bis zur Umsetzung konkreter Änderungen.

Wobei ich unterstütze

Bestehende Anwendungen übernehmen

Ich arbeite mich in vorhandene Codebasen, Architekturen und Deployment-Umgebungen ein – auch dann, wenn die Dokumentation unvollständig ist und wichtige Entscheidungen Jahre zurückliegen.

Dabei geht es zunächst darum, das System so weit zu verstehen, dass Änderungen kontrolliert und mit vertretbarem Risiko umgesetzt werden können.

Fehler beheben und Funktionen weiterentwickeln

Eine Legacy-Anwendung ist kein abgeschlossenes System. Fachliche Anforderungen ändern sich, neue Schnittstellen werden benötigt und bestehende Funktionen müssen angepasst werden.

Ich unterstütze bei:

  • Fehleranalyse und Fehlerbehebung
  • Weiterentwicklung bestehender Funktionen
  • Umsetzung neuer Anforderungen
  • Stabilisierung problematischer Bereiche
  • Analyse schwer nachvollziehbarer Produktionsprobleme

Abhängigkeiten und Laufzeitumgebungen aktualisieren

Auch wenn die Anwendung selbst bestehen bleibt, kann ihre technische Basis nicht dauerhaft unverändert bleiben.

Ich unterstütze unter anderem bei:

  • Updates von Java und Jakarta EE
  • Migrationen auf aktuelle JBoss- und WildFly-Versionen
  • Aktualisierung von Struts, Hibernate und weiteren Frameworks
  • Anpassung von Build- und Deployment-Prozessen
  • Austausch nicht mehr unterstützter Bibliotheken
  • Behebung von Kompatibilitätsproblemen nach Updates

Sicherheitsprobleme und CVEs bearbeiten

Ältere Java-Anwendungen enthalten häufig umfangreiche Abhängigkeitsbäume. Eine gemeldete Schwachstelle lässt sich deshalb nicht immer durch ein einfaches Versionsupdate beheben.

Ich analysiere, ob und wie eine Anwendung betroffen ist, welche Abhängigkeiten aktualisiert werden müssen und welche Anpassungen notwendig sind, damit sie anschließend weiterhin zuverlässig funktioniert.

Moderne Systeme integrieren

Bestehende Anwendungen müssen zunehmend mit neuer Infrastruktur zusammenarbeiten – etwa mit moderner Authentifizierung, neuen APIs oder zentralen Plattformdiensten.

Je nach Ausgangslage kann das durch eine direkte Anpassung, eine schrittweise Migration oder einen kompatiblen Adapter geschehen.

In einem meiner Projekte habe ich beispielsweise eine historische Authentifizierungsschnittstelle über einen Adapter mit Keycloak verbunden. Bestehende Legacy-Anwendungen konnten ihre bisherige Schnittstelle weiterverwenden, während die zentrale Authentifizierung modernisiert wurde.

Modernisieren, ohne den laufenden Betrieb aus den Augen zu verlieren

Nicht jede Anwendung braucht sofort einen vollständigen Rewrite. Ebenso wenig sollte ein altes System um jeden Preis unverändert bleiben.

Welche Teile aktualisiert, ersetzt oder zunächst bewusst beibehalten werden sollten, hängt von der konkreten Anwendung und ihrer geplanten Lebensdauer ab.

Ich entwickle dafür keine abstrakte Zielarchitektur auf dem Reißbrett, sondern gehe schrittweise vor: die vorhandene Anwendung verstehen, akute Probleme lösen und ihre technische Basis dort modernisieren, wo es für Betrieb, Sicherheit und Weiterentwicklung notwendig ist.

Technologien

Mein Schwerpunkt liegt auf historisch gewachsenen Enterprise-Webanwendungen, unter anderem mit:

  • Java EE und Jakarta EE
  • Struts 1 und 2, Servlets
  • JSP und Freemarker
  • Hibernate
  • JBoss und WildFly
  • klassischen monolithischen Enterprise-Architekturen

Erfahrung mit gewachsenen Systemen

Ich entwickle seit Mitte der 1990er-Jahre Webanwendungen und arbeite seit 2001 als selbstständiger Entwickler.

Mich interessieren gerade die Systeme, bei denen man sich zunächst orientieren, Zusammenhänge rekonstruieren und einen gangbaren Weg durch historisch gewachsene Strukturen finden muss.

Agentic Engineering hilft mir heute, große Codebasen schneller zu untersuchen, Abhängigkeiten nachzuvollziehen und Änderungen vorzubereiten. Entscheidend bleibt jedoch die Erfahrung, um Ergebnisse einzuordnen, Risiken zu erkennen und Änderungen so umzusetzen, dass die Anwendung anschließend zuverlässig weiterläuft.

Sie benötigen Unterstützung für eine bestehende Java-Anwendung?

Für Projektanfragen oder ein erstes Gespräch: raphael.kirchner@customwebcode.com