Interview mit Thomas Hartthaler

„Die Vorteile einer reinen JavaFX-Lösung überwiegen“

Melanie Feldmann

Thomas Hartthaler

Zusammen mit dem Freiberufler Thomas Fahrmeyer hat Thomas Hartthaler (Saxonia Systems) heute auf der JAX 2016 einen Talk zur Migration von Swing zu JavaFX und den Tücken eines parallelen Betriebs gehalten. Die JAXenter-Redaktion hatte noch ein paar Fragen wie eine UI-Migration möglichst reibungslos funktioniert.

JAXenter: Sie haben in Ihrem Talk gerade die schrittweise Migration von Swing zu JavaFX und auch einen parallelen Betrieb von beidem beschrieben. Wann ist ein klarer Schnitt vielleicht sinnvoller?

Thomas Hartthaler: Bei der Planung einer Migration ist zunächst abzuschätzen, in welchem Umfang und in welchen Schritten migriert werden soll. Dazu sind Fragen zu klären, ob die gesamte Funktionalität der Anwendung migriert werden muss oder ob eventuell auch Funktionalitäten wegfallen können. Dadurch bekommt man auch einen Überblick über die Komplexität der Anwendung. Entscheidende Faktoren bei diesen Überlegungen sind das zur Verfügung stehende Budget für die Entwicklungskosten und der verfügbare Zeitrahmen für die Migration.

Besteht die Anwendung aus einfachen Modulen oder ist der Release-Zyklus entsprechend groß, sollte die Migration ohne die Vermischung beider Technologien durchgeführt werden.

Handelt es sich beispielsweise, wie in unserem Fall, um eine komplexe Anwendung bei einem einjährigen Release-Zyklus, ist ein Parallelbetrieb beider Technologien zumeist nicht vermeidbar. Neben der Entwicklung neuer Features müssen alte Komponenten stückweise migriert werden, ohne das Release mit neuen geforderten Funktionalitäten zu gefährden. Besteht die Anwendung dagegen aus einfachen Modulen oder ist der Release-Zyklus entsprechend groß, kann und sollte die Migration nach unseren Erfahrungen auch ohne die Vermischung beider Technologien durchgeführt werden, da die Vorteile einer reinen JavaFX-Lösung bei weitem überwiegen. Der größte Punkt hierbei ist sicher die zugrunde liegende Applikationsplattform, die ja meist UI-Technologie abhängig ist.

JAXenter: Was ist die größte Stolperfalle bei der Migration von Swing zu JavaFX?

Thomas Hartthaler: Bei der Verzahnung beider UI-Technologien ist die Synchronisierung dieser beiden mit eines der größten Probleme. So muss darauf geachtet werden, dass zum Beispiel neu entwickelte JavaFX-Komponenten, die in bestehende Swing-Elemente eingebettet sind, nicht im falschen UI-Thread aufgerufen werden. Das gilt natürlich auch anders herum, wenn alte Swing-Komponenten noch nicht migriert wurden und in der neuen JafaFX-Anwendung zunächst weiter bestehen müssen. Das kann im schlimmsten Falle zu Deadlocks führen und die Anwendung zum Einfrieren bringen. Dieses UI-Thread-Handling war anfangs bei uns die größte Stolperfalle.

JAXenter: Irgendwann ist aber dann doch die Zeit für die Swing-Anwendung gekommen. Was müssen Entwickler beim Ende des parallelen Betriebs achten, damit es dann nicht zu Problemen kommt?

Thomas Hartthaler: Am Ende der Migrationsphase muss sichergestellt werden, dass alle Swing-Elemente aus der Anwendung entfernt und die Vermischung beider Technologien aufgehoben ist. Das kann speziell durch einen Check der importierten Klassen und der Verwendung der Klasse von JFXPanel überprüft werden. Dafür gibt es Tools, die das automatisiert übernehmen und einen Statusbericht erzeugen.

JAXenter: Sie nutzen Eclipse e4 und e(fx)clipse für Ihre JavaFX-Projekte. Warum sind das Ihre Tools der Wahl?

Thomas Hartthaler: Am Anfang der Migration in unserem Projekt stand natürlich eine Evaluation der möglichen Tools an. Neben Eclipse E4 haben wir uns auch die Netbeans-Plattform angeschaut. Die Unterstützung von JavaFX durch Eclipse speziell auf der Basis von e(fx)clipse hat uns schließlich überzeugt, den Versuch damit zu starten. Da unsere Anwendung zudem von Erweiterungen durch Plug-ins lebt, sahen wir in der Plattformarchitektur von Eclipse durch den Plug-in-Mechanismus einen weiteren Vorteil, unseren bisherigen Plug-in-Mechanismus durch diesen abzulösen.

JAXenter: Da draußen gibt es immer noch Menschen, die an JavaFX und seiner Praxistauglichkeit zweifeln. Was würden Sie diesen entgegnen?

JavaFX wird State-of-the-Art für zukünftige Desktop-
anwendungen werden.

Thomas Hartthaler: Wenn es um das Thema attraktive Desktopanwendungen im Bereich Java geht, ist unserer Meinung nach JavaFX die erste Wahl. Es ermöglicht eine weitreichende und einfache Anpassung des Look and Feels einer Anwendung via CSS-Styling, das bisher nur aus der Webentwicklung bekannt war. Somit kann schnell auf Kundenwünsche eingegangen und das Aussehen durch den Austausch der Designvorlage individuell angepasst werden. Diese Möglichkeit bietet beispielsweise eine SWT- oder Swing-Anwendung in diesem Maße nicht. Das verstärkt den Aspekt der plattformübergreifenden Anwendung, die überall gleich schick aussehen soll. Ein weiterer Punkt ist die Ablösung von Swing durch JavaFX im JDK. Dadurch wird nach unserer Sicht JavaFX State-of-the-Art für zukünftige Desktopanwendungen werden. Das zeigt auch die Community hinter JavaFX. Sie ist bestrebt, schnell auf Fehlereinträge zu reagieren und diese zu beheben. Aus unserer Sicht ist JavaFX sehr gut geeignet, um optisch wie funktional ansprechende responsive Anwendungen zu bauen.

JAXenter: Vielen Dank für dieses Gespräch!

Den kompletten Talk von Thomas Hartthaler und Thomas Fahrmeyer finden Sie bald hier auf JAXenter im JAX TV.

hartthaler_thomasThomas Hartthaler ist seit 2008 bei der Saxonia Systems AG tätig und beschäftigt sich seit 2010 mit der Softwareentwicklung im medizinischen Umfeld. Neben der Umsetzung von Client-Server-Installationsprozessen ist er derzeit an der Migration einer Swing-basierten Client-Anwendung hin zur JavaFX-Technologie beteiligt.

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: