01 December 2015

Griffon 2.5.0 Release Notes


The following dependencies have been upgraded

  • com.google.code.findbugs:jsr305:3.0.1

  • org.codehaus.groovy:groovy-all:2.4.5

  • com.jayway.awaitility:awaitility:1.7.0

  • com.jayway.awaitility:awaitility-groovy:1.7.0

  • org.slf4j:slf4j-simple:1.7.13

  • org.slf4j:slf4j-log4j:1.7.13


Observable Contexts

A new interface, griffon.core.ObservableContext, enables publication of events whenever a context property is added, removed, or updated; taking into account the origin (the current context or its parent context). This allows a much more dynamic interaciton between components that share a context.

Contextual Member Injection

Just like griffon.core.injection.Injector can perform member injeciton on unmanaged entities, now griffon.core.Context can perform member injection on any instance that has members annotated with @Contextual. This is useful when a contextual value is not know ahead of time when MVC members are instantiated.

Automatic Cleanup of Contextual Injections

Any MVC member that makes use of @Contextual members will have those values nullified as part of their destroy lifecycle, freeing developers form manually clearing them.

JavaFX Support

JavaFXAction supports two new properties:

  • visible: used to control the visibility of the widget that’s bound to this action.

  • styleClass: used to set style classes on the bound widget.


Running Applications in Debug Mode

Project templates now include settings for running an application in debug mode (suspended) allowing an IDE to connect remotely to it. Simply invoke the following command

$ gradle -PdebugRun=true run


Full binary compatibility report between Griffon 2.5.0 and 2.4.0 can be found here.

A list of fixed issues can be found at the 2.5.0 milestone page.