Skip to end of metadata
Go to start of metadata

Overview

Griffon 0.9.5 – "Aquila clanga" - is a maintenance release of Griffon 0.9.

New Features

Buildtime

Dependencies

Griffon 0.9.5 upgrades the following dependencies

  • Groovy 1.8.6
  • Spring 3.1.0.RELEASE
  • Ant 1.8.2
  • Slf4j 1.6.4

Plugins and Archetypes

Perhaps the biggest change brought by this release is the full rework of the plugin system. Under the new rules it should be easier to create/build/install/upgrade/manage plugins. Archetypes too can be versioned and released like plugins are. this should make it easier to locate and install archetypes.

Artifact Repositories

Hosting your own plugins and archetypes just got easier. No more fumbling around with SVN and HTTP, the only thing you need now is a writable directory in the filesystem for now. Griffon 0.9.5 delivers 3 types of artifact repositories: local, remote and legacy. A default local repository is always available to you; you may configure additional ones. Remote repositories are supported in this version but the code to publish them is not yet released (keep an eye on https://github.com/griffon/griffon-artifact-portal though). Finally the legacy repository should ease up the transition to the new workflow.

Configuring a local repository is dead simple, as the following snippet shows

 

The repo definition may be placed under griffon-app/conf/BuildConfig.groovy or $USER_HOME/.griffon/settings.groovy

Classpath Resolution

The classpath used for build, compile, runtime and test should now be resolved at the last possible moment, instead of the earliest possible as it was before. Resolving the classpath eagerly caused a lot of trouble with addons.

Default Answer in Non Interactive Mode

Sometimes a command may require the user to specify a missing value. When the build is run in interactive mode (the default mode) then it's just a matter of typing the value in the console. However, if the build is run in non-interactive mode then it's very likely it will fail.

For this reason, the Griffon build accepts the definition of a default answer if the griffon.noninteractive.default.answer key is specified, like this

Be warned that this setting applies to every single input asked by a command.

Default Packaging Targets

4 packaging targets get executed when the package command is called with no arguments. There's now the option to specify which ones, by defining a list of Strings for griffon.packaging, for example

Now only those 2 targets will be executed whenever the package command is called without arguments. You can specify additional targets if the Installer plugin is available.

Dependency Resolution

It's now possible to specify SNAPSHOT dependencies on plugins and JARs. Classifiers on dependencies will also be honored, both in condensed and extended format, that is

Interactive Shell

There's a new interactive shell based on Apache Karaf's console. This new tool can be invoked by calling griffonsh from the command line. This console should enable faster responses as the JVM is started only once; also dependencies are cached and environment settings are retained. This shell grants access to all standard griffon command plus a few ones specific to this new environment. There are some rough edges still so treat it carefully (smile)

Offline Mode

Dependency resolution can now work in offline mode. When engaged, no external repository will be queried for dependencies; all dependencies should be resolved against the current cache. Also, all artifact repositories are off limits, except those of type local. This mode can be enabled by specifying griffon.offline.mode in either griffon-app/conf/BuildConfig.groovy or $USER_HOME/.griffon/settings.groovy. This flag can also be set as a system property.

Runtime

Swing Plugin

Swing support has been moved out of core and into its own plugin (https://github.com/griffon/griffon-swing-plugin). This should enable faster updates for Swing related bugs and features.

WindowManager and JInternalFrames

Speaking of Swing, the WindowManager is now capable of dealing with JInternalFrames as if they were windows. You can now show/hide/manage JInternalFrames in the same way as Windows.

Automatic Addon Discovery

Addons will now be automatically discovered and registered by the runtime. There's no longer a need to configure addons in plugin scripts (like _Instal.groovy) unless the addon requires non-standard configuration (which should be the least of cases).

Additional MVC Group Configuration

It's now possible to supply a group with more configuration while each member is being initialized. Simply define a config member in the group's definition, for example

You can access these values directly from the arguments passed to the mcGroupInit method, like this

Disable the Event Bus

Sometimes you don't want controllers to be registered as application event listeners because their code never handles an event. This results in performance upgrades as controllers need not be notified. Both the application's event bus and custom event buses (classes annotated with @griffon.transform.EventPublisher) have a new method that control if the event bus is enabled or not. Events posted while the event bus is disabled will be automatically discarded.

Skip Controller as Application Event Handler

Sometimes you don't want controllers to be registered as application event listeners because their code never handles an event. This results in performance upgrades as controllers need not be notified. This feature relies on the new config section available to MVC groups. Here's how this feature can be specified

Skip Firing MVC Lifecycle Events

There are times when creating multiple MVC groups where there's no need to trigger MVC events for example, a custom MVCGroupManager can potentially disable the event router for a time, then enable it after the group has been constructed. This feature relies on the new config section available to MVC groups. Here's how this feature can be specified

Skip Firing MVC New Instance Events

Applications will fire an event named NewInstance whenever an artifact gets instantiated, this results in 3 events per MVC group in the typical case. This is great for letting other parts of the application know that there's a new artifact instance that can be processed by dependency injection for example. But, the runtime also pays the penalty for notifying listeners that may not handle the event. Skipping these events may lead to better performance. This feature relies on the new config section available to MVC groups. Here's how this feature can be specified

Resource Location Abstraction

There's a new abstraction that deals with resource location: griffon.core.ResourceHandler. It defines the following contract

Applications, addons and artifacts have been retrofitted with this interface; it's recommended that you use these facilities instead of querying a classloader. Also, there's a new AST transformation that grafts these methods to any class: griffon.transform.ResourcesAware.

Breaking Changes

Buildtime

The plugin system and classpath resolution have been completely overhauled. We don't expect any major breackages however we sure to upgrade to the latest versions of available plugins. If you're running a plugin that has not been upgraded to 0.9.5 and its causing you trouble then please let us know asap and we'll fix it.

Runtime

Now that Swing support is provided outside of core every application must make sure to include it as a dependency. The upgrade command does this for you.

Threading Methods Renamed

The names of the threading methods (execSync, execAsync, execOutside) can be confusing. they have been renamed to the following ones

in griffon.core.ThreadingHandler

in griffon.core.GriffonApplication

in griffon.util.EventPublisher

in org.codehaus.griffon.runtime.core.EventRouter

The old method names are still available and have been marked as deprecated. They will be removed when Griffon 1.0 is released.

Sample Applications

Griffon 0.9.4 ships with 5 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.

Release Notes

0.9.5

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due
Bug GRIFFON-473 Event handlers defined in griffon-app/conf/Events.groovy lead to exceptions Andres Almiray Andres Almiray Critical Closed Fixed Mar 10, 2012 Jun 16, 2012
Bug GRIFFON-482 Griffon wrapper ignores any arguments set on the command line Andres Almiray Andres Almiray Critical Closed Fixed Mar 24, 2012 Jun 16, 2012
Bug GRIFFON-488 Groovy bug encountered ClassNode#getTypeClass in controller with public methods Andres Almiray Andres Almiray Critical Closed Fixed Mar 31, 2012 Jun 16, 2012
Bug GRIFFON-453 test-app pattern identification does not match sub-packages Andres Almiray jstewart Major Closed Fixed Feb 15, 2012 Jun 16, 2012
Bug GRIFFON-474 Griffon wrapper does not work on plugin projects Andres Almiray Andres Almiray Major Closed Fixed Mar 11, 2012 Jun 16, 2012
Bug GRIFFON-475 Can't launch and application that makes use of the JOGL plugin Andres Almiray Andres Almiray Major Closed Fixed Mar 12, 2012 Jun 16, 2012
Bug GRIFFON-476 Cannot install jogl-compat plugin Andres Almiray Andres Almiray Major Closed Fixed Mar 12, 2012 Jun 16, 2012
Bug GRIFFON-477 Do not force compiler source/target levels to use 1.6 as default Andres Almiray Andres Almiray Major Closed Fixed Mar 13, 2012 Jun 16, 2012
Improvement GRIFFON-483 Archetype resolution should fail when --archetype is specified but not found Andres Almiray Andres Almiray Major Closed Fixed Mar 29, 2012 Jun 16, 2012
Bug GRIFFON-484 Griffon 0.9.5-rc2 does dependency resolution of plugins programatically which fails during compilation for plugins with incorrect dependency syntax Andres Almiray Bisrat Dinka Major Closed Fixed Mar 29, 2012 Jun 16, 2012
Bug GRIFFON-487 NullPointerException when running an app whose name ends in "Controller" Andres Almiray Dean Iverson Major Closed Fixed Mar 30, 2012 Jun 16, 2012
Improvement GRIFFON-489 Add a clean flag to compile command Andres Almiray Andres Almiray Major Closed Fixed Mar 31, 2012 Jun 16, 2012
Bug GRIFFON-478 "griffon package" doesn't default to prod environment Andres Almiray Edo Trivial Closed Fixed Mar 13, 2012 Jun 16, 2012

0.9.5-rc2

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due
Bug GRIFFON-470 MissingMethodException when running with an addon that provides MVC groups Andres Almiray Andres Almiray Critical Closed Fixed Mar 05, 2012 Apr 19, 2012
Improvement GRIFFON-395 Destroying an MVC group should remove all of its members from application/custom event buses Andres Almiray Andres Almiray Major Closed Fixed Aug 03, 2011 Apr 19, 2012
Bug GRIFFON-455 CLI dependencies provided by plugins are not added to the build Andres Almiray Andres Almiray Major Closed Fixed Feb 15, 2012 Apr 19, 2012
Improvement GRIFFON-456 Enabled offline mode for dependecy resolution Andres Almiray Andres Almiray Major Closed Fixed Feb 17, 2012 Apr 19, 2012
Bug GRIFFON-457 Guide files are included twice in the binary packages Andres Almiray Andres Almiray Major Closed Fixed Feb 17, 2012 Apr 19, 2012
Bug GRIFFON-458 No /usr/bin/griffonsh in debian package Andres Almiray Tobias Schulte Major Closed Fixed Feb 18, 2012 Apr 19, 2012
Bug GRIFFON-459 Old Plugin is not removed from plugins folder on upgrade Andres Almiray Tobias Schulte Major Closed Fixed Feb 18, 2012 Apr 19, 2012
Bug GRIFFON-460 Griffonsh does not work on Windows Andres Almiray Tobias Schulte Major Closed Fixed Feb 21, 2012 Apr 19, 2012
Improvement GRIFFON-463 Disable the event bus for a time Andres Almiray Andres Almiray Major Closed Fixed Feb 22, 2012 Apr 19, 2012
Improvement GRIFFON-464 Rename threading methods to spell out which thread they affect Andres Almiray Andres Almiray Major Closed Fixed Feb 22, 2012 Apr 19, 2012
Improvement GRIFFON-465 Add a shortcut to artifacts and application to load resourdes from the classpath Andres Almiray Andres Almiray Major Closed Fixed Feb 24, 2012 Apr 19, 2012
Improvement GRIFFON-466 Skip firing events when creating an MVC group instance Andres Almiray Andres Almiray Major Closed Fixed Feb 24, 2012 Apr 19, 2012
Improvement GRIFFON-467 Skip registering controllers as application event listeners Andres Almiray Andres Almiray Major Closed Fixed Feb 24, 2012 Apr 19, 2012
Bug GRIFFON-468 Move GDSL and DSLD out of core and into Swing plugin Andres Almiray Andres Almiray Major Closed Fixed Feb 24, 2012 Apr 19, 2012
Bug GRIFFON-469 _GriffonPackage.groovy JNLP webstart file JVM argument updated necessary to avoid Perm Gen space issues Andres Almiray Bisrat Dinka Major Closed Fixed Feb 28, 2012 Apr 19, 2012
Bug GRIFFON-454 Quartz plugin won't install unless Spring plugin is installed first Andres Almiray Edo Minor Closed Fixed Feb 15, 2012 Apr 19, 2012
Bug GRIFFON-462 Version strings in BuildConfig.groovy no longer are automatically updated Andres Almiray Edo Minor Closed Fixed Feb 21, 2012 Apr 19, 2012

0.9.5-rc1

Loading
T Key Summary Assignee Reporter P Status Resolution Created Updated Due
Bug GRIFFON-392 EventPublisher compilation problem Andres Almiray Konstantin Grigoriev Critical Closed Fixed Jul 26, 2011 Mar 09, 2012
Improvement GRIFFON-409 Compile classpath should be resolved as late as possible Andres Almiray Andres Almiray Critical Closed Fixed Sep 18, 2011 Mar 09, 2012
Bug GRIFFON-106 Packaging error on WSClient plugin (groovyws-standalone-0.5.0.jar) Danno Ferrin Jens Hoffmann Major Closed Fixed Nov 17, 2009 Mar 09, 2012
Improvement GRIFFON-123 Add a preInstall hook for plugins Danno Ferrin Andres Almiray Major Closed Fixed Dec 14, 2009 Mar 09, 2012
Bug GRIFFON-327 uninstall-plugin does not work on Windows Andres Almiray Tobias Schulte Major Closed Fixed Feb 18, 2011 Mar 09, 2012
Bug GRIFFON-377 RunApp fails if path elements are already quoted Andres Almiray Andres Almiray Major Closed Fixed Jun 28, 2011 Mar 09, 2012
Improvement GRIFFON-408 Skip dependency resolution for certain commands Andres Almiray Andres Almiray Major Closed Fixed Sep 18, 2011 Mar 09, 2012
Improvement GRIFFON-410 Extract swing support into its own plugin Andres Almiray Andres Almiray Major Closed Fixed Sep 18, 2011 Mar 09, 2012
Improvement GRIFFON-411 Internalize addon discovery at runtime Andres Almiray Andres Almiray Major Closed Fixed Sep 18, 2011 Mar 09, 2012
New Feature GRIFFON-412 Archetypes should be versioned/release like plugins Andres Almiray Andres Almiray Major Closed Fixed Sep 18, 2011 Mar 09, 2012
New Feature GRIFFON-413 New command that lists available archetypes in archetype repos Andres Almiray Andres Almiray Major Closed Fixed Sep 18, 2011 Mar 09, 2012
Bug GRIFFON-426 Griffon does not take provided scope of transitive dependencies into account Andres Almiray Wim Deblauwe Major Closed Fixed Oct 24, 2011 Mar 09, 2012
Bug GRIFFON-428 Java Jumpstart archetype is broken Andres Almiray Andres Almiray Major Closed Fixed Oct 28, 2011 Mar 09, 2012
Bug GRIFFON-430 GDSL crashes in IDEA Andres Almiray Andres Almiray Major Closed Fixed Nov 09, 2011 Mar 09, 2012
Improvement GRIFFON-431 Intellisense in the controllers should know about doOutside and doLater Andres Almiray Rick Jensen Major Closed Fixed Nov 10, 2011 Mar 09, 2012
New Feature GRIFFON-434 Allow WindowManager to handle JInternalFrames Andres Almiray Andres Almiray Major Closed Fixed Nov 11, 2011 Mar 09, 2012
Bug GRIFFON-435 Spock Unit Tests With Closure definitions fail with java.lang.IllegalAccessError Andres Almiray Stephen Nesbitt Major Closed Fixed Nov 22, 2011 Mar 09, 2012
Improvement GRIFFON-437 Allow specifying default package targets Andres Almiray Wim Deblauwe Major Closed Fixed Nov 28, 2011 Mar 09, 2012
Bug GRIFFON-438 ClassNode#getTypeClass is called before the type class is set Andres Almiray Wim Deblauwe Major Closed Fixed Dec 06, 2011 Mar 09, 2012
Bug GRIFFON-439 Automatic loading of ArtifactHandlers is broken Andres Almiray Andres Almiray Major Closed Fixed Dec 11, 2011 Mar 09, 2012
Showing 20 out of 29 issues Refresh

  • No labels