Sanfte Harmonie

Sanfte HarmonieMit Java 8 nimmt die Entwicklung von Frontends mit JavaFX langsam Fahrt auf. Sofern man nicht an einen bereits existierenden Swing-Client gebunden ist, gibt es eine Menge guter Gründe direkt mit JavaFX ins Rennen zu gehen. Neben vielen anderen Features besitzt vor allem das standardisierte (bidirektionale) Databinding eine gewisse Attraktivität, verspricht es doch den Wegfall manueller Synchonisationslogik. Angezogen von der charmanten Aura, mit der sich JavaFX umgibt, starte ich die ersten Clientprojekte. Sofort verliebe ich mich in FXML, freue mich über den aufgeräumten Code und stelle fest, dass Frontend-Entwicklung tatsächlich wieder Spaß macht. Bei der Integration meines Datenmodells über einen Servicelayer komme ich allerdings ins Stocken. Die Daten, die ich beziehe bekomme ich in Form von XML angeliefert. Alles ist präzise in einem XML-Schema spezifiziert und für mich ist JAXB das Mittel der Wahl. Die passend annotierten JavaBeans lasse ich mir mithilfe des xjc-Plugins im Build- Prozess generieren. Soweit so gut. Jetzt noch schnell das Databinding für mein JavaFX-Frontend vorgenommen und fertig? Leider nein! Das Plugin erzeugt mir dummerweise nur die “normale Ausbaustufe” der zum XML-Schema gehörenden JavaBeans. Eine Variante, mit passenden JavaFX-Properties lässt sich das xjc-Tool beim Generieren leider nicht entlocken. Eine Suche im Internet liefert auch keine passende Lösung für mein Problem. Und so macht sich dann doch ein wenig Enttäuschung breit. Die ist aber nicht von langer Dauer, lässt sich die Codegenerierung des xjc-Tools doch mittels Plugin modifizieren. Entstanden ist ein xjc-Plugin, mit dessen Hilfe nun JavaBeans generiert werden können, die die benötigten JavaFX-Properties enthalten. JAXB und JavaFX-Databinding friedlich vereint, arbeite ich weiter an der Fertigstellung meiner Anwendung. Das Plugin freut sich indes in Form des GitHub-Projektes jaxbfx auf die Community. Bleibt mir nur ebenfalls viel Spaß auf der Clientseite zu wünschen!