Framework / RuntimeRuntimes2026 Orientierung
Jakarta Runtimes: GlassFish, Open Liberty, WildFly, Payara, TomEE
Runtimes implementieren Jakarta-Spezifikationen und liefern Deployment, Classloading, Ressourcen, Security, Monitoring und Betriebseigenschaften.
Einordnung
Framework / Runtime
Enterprise-Rolle
Die Runtime entscheidet über echte Produktionsfähigkeit, Konfiguration, Patches, Support und Cloud-Verhalten.
Fachliches Verständnis
Die Runtime entscheidet über echte Produktionsfähigkeit, Konfiguration, Patches, Support und Cloud-Verhalten. In der Praxis ist wichtig, die Spezifikation nicht mit der konkreten Runtime zu verwechseln. Der Standard beschreibt die portablen APIs, die Implementierung entscheidet über Konfiguration, Performance, Betrieb und Support.
Kernkonzepte
- GlassFish als Referenz-/kompatible Implementierung.
- Open Liberty mit modularer Feature-Konfiguration.
- WildFly als Community Runtime aus JBoss-Tradition.
- Payara als Enterprise-orientierte GlassFish-Familie.
- TomEE als Tomcat-basierte EE-Runtime.
Typische Einsatzfälle
- Serverauswahl für Migration.
- Portabilität testen.
- Betriebsmodell definieren.
Technisches Beispiel
xml
<server>
<featureManager>
<feature>jakartaee-11.0</feature>
<feature>mpHealth-4.0</feature>
</featureManager>
<dataSource id="orders" jndiName="jdbc/orders"/>
</server>
Architekturregel: Jakarta APIs gehören an Systemgrenzen und Infrastrukturpunkte. Fachentscheidungen bleiben in Application Services und Domain-Modellen testbar und möglichst unabhängig vom Container.
Enterprise-Fallen
- Nur auf API-Kompatibilität schauen.
- Classloading, Patching und Observability ignorieren.
- Vendor Features unmarkiert verwenden.
Legacy-Modernisierung
Von WebSphere/JBoss/GlassFish Legacy zuerst Betriebsfunktionen und verwendete Serverressourcen inventarisieren.
Vertiefung: Review-Fragen für Senior-Entwickler
- Welche Spezifikation ist hier wirklich nötig?
- Welche Runtime-Funktion wird genutzt und ist sie portabel?
- Wo liegt die Transaktionsgrenze?
- Sind API-Verträge, DTOs und Domain-Modelle getrennt?
- Ist der Code ohne Application Server testbar?