© Excellent backgrounds/Shutterstock.com
Was gibt es Neues seit letztem Jahr?

Happy Birthday, Griffon


Im September 2008 erblickte Griffon mit Version 0.0 das Licht der Welt und wurde vor gut einem Jahr mit der Version 1.0 „erwachsen“. Von einem Grails Clone mauserte es sich zu einem eigenständigen Projekt mit eigener Codebasis und „zog aus“, um eigene Wege zu gehen, und hat mittlerweile auch Code an den Bruder zurück contributed.

Griffon ist wirklich groß geworden – mittlerweile wird es in 87 Ländern genutzt, besitzt zurzeit 219 Plug-ins, unterstützt sechs UI-Toolkits (Swing, JavaFX, SWT, Qt, Pivot und Lanterna) und acht Sprachen (Java, Groovy, Scala, Clojure, Kotlin und andere). Nachdem die Version 1.0 einige grundlegende Änderungen mit sich brachte, wurde die Entwicklung bewusst ruhiger, doch einige interessante Features kamen hinzu, die im Folgenden vorgestellt werden sollen.

Mit Release 1.1 wurde Internationalisierung zu einem Core-Feature, indem das i18n-Plug-in in den Kern übernommen wurde. Damit ist jede Griffon-Anwendung durch die Verwendung von griffon.core.i18n.­­Mes­sage­Source internationalisierbar. Neben den üblichen .properties-Dateien werden Groovy-Skripte im Format von groovy.util.ConfigSlurper unterstützt, was bedingte oder auch generierte Texte ermöglicht. Weitere Informationen dazu können im Griffon-Guide [1] gefunden werden.

Doch eine Übersetzung von Texten ist nicht immer ausreichend. Bilder, Farben oder andere Ressourcen müssen häufig ebenso abhängig vom java.util.Locale gewählt werden. Deshalb wurde ein Ressourcenma­nage­ment eingeführt. Ähnlich der Internationalisierung von Texten können die Ressourcen in einer .properties- oder ConfigSlurper-Datei je Sprache definiert und mithilfe von java.beans.PropertyEditor verwendet werden. Details hierzu stehen auch im Griffon-Guide [2].

Sowohl Texte als auch Ressourcen können über Annotations im Stile von CDI injiziert werden. Mit @ griffon.core.resources.InjectedResource annotierte Properties oder Felder bekommen die konvertieren Ressourcen automatisch zugewiesen. Hierzu existiert ein Blogartikel [3] von Andres Almiray.

Mit dem Actions-Plug-in hatte Griffon schon von 1.0 eine komfortable Möglichkeit, Actions für z. B. Menüeinträge oder Buttons zu definieren und zu internationalisieren, doch war dies Swing-spezifisch. Mit Release 1.1 wanderte dieses Feature ebenso in den Kern und konnte somit Toolkit-agnostisch implementiert werden. Näheres hierzu findet man im Griffon-Guide im Kapitel über Controller [4].

Seit dem Release 1.2 wird Groovy in der Version 2.x verwendet, was an sich schon viel...

Exklusives Abo-Special

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang