Overview

Griffon 1.2.0 - is the latest release in the 1.x series

Dependencies

The following dependencies have been upgraded

Features

Buildtime

New Commands

The following commands have been added

Toolkit Aware Plugin Install

Griffon supports several UI toolkits for which many plugins may exist. Some of these plugins provide the same behavior but targeting a different UI toolkit, for example miglayout (swing) vs. miglayout-javafx (javafx). Now, every Griffon application has a default UI toolkit specified in its metadata; this fact makes it possible to simplify plugin installation by only specifying the common plugin name, that is, the following command

griffon install-plugin miglayout

will install miglayout-javafx if the application has javafx defined as its UI toolkit. On the other hand, it will install miglayout if the UI toolkit is swing.

Usage Tracking

An opt-in usage tracking system has been put into place in order to monitor the development of the Griffon community and help drive the roadmap for future features. There's no personal information being recorded; usage tracking can be disabled/enabled at any time. Verifying the current status of usage tracking is done by invoking this command

griffon usage-stats

Enabling or disabling usage tracking is done with

griffon usage-stats --enabled=[true|false]

Usage tracking is turned off automatically if running in offline mode.

IDE Support

DSL descriptors for both Intellij IDEA and Eclipse have been updated to their latest compatible syntax.

Runtime

Service LifeCycle

Services now have their own life-cycle methods, similarly to their MVC counterparts. See the section Service LifeCycle for more information.

Service Configuration DSL

Services properties may now be configured externally to the service class, using a simple DSL. Refer to the Service Configuration DSL section to learn more.

External Configuration

Applications now have the ability to specify alternate locations for configuration files and scripts. Simply configure griffon.config.locations in Config.groovy, for example

griffon.config.locations = [
    "classpath:${appName}-config.properties",
    "classpath:${appName}-config.groovy",
    "file:${userHome}/.griffon/${appName}-config.properties",
    "file:${userHome}/.griffon/${appName}-config.groovy"]

Section External Configuration Support covers this feature in more detail.

New Application Events

Instances managed by the application (such as MVC members) will now trigger a DestroyInstance event when the instance is no longer needed. This event is the counterpart of NewInstance.

Compatibility

The following plugins need to be updated to their latest versions

Sample Applications

Griffon 1.2.0 ships with 8 sample applications of varying levels of complexity demonstrating various parts of the framework. In order of complexity they are:

File Viewer

File Viewer is a simple demonstration of creating new MVCGroups on the fly.

Source: samples/FileViewer

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

GroovyEdit

GroovyEdit is an improved version of FileViewer that uses custom observable models.

Source: samples/GroovyEdit

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

Font Picker

Font Picker demonstrates form based data binding to adjust the sample rendering of system fonts.

Source: samples/FontPicker

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

Greet

Greet, a full featured Griffon Application, is a Twitter client. It shows Joint Java/Groovy compilation, richer MVCGroup interactions, and network service based data delivery.

Source: samples/Greet

To run the sample from source, change into the source directory and run griffon run-webstart from the command prompt. Because Greet uses JNLP APIs for browser integration using run-app will prevent web links from working.

SwingPad

SwingPad, a full featured Griffon Application, is a scripting console for rendering Groovy SwingBuilder views.

Source: samples/SwingPad

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

GroovyFXPad

GroovyFXPad, a full featured Griffon Application, is a scripting console for rendering GroovyFX views.

Source: samples/GroovyFXPad

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

FxBrowser

FxBrowser is a trivial JavaFX powered browser that demonstrates Griffon's integration with JavaFX.

Source: samples/FxBrowser

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

WeatherWidget

WeatherWidget demonstrates binding, threading and plugin usage.

Source: samples/WeatherWidget

To run the sample from source, change into the source directory and run griffon run-app from the command prompt.

Release Notes

1.2.0