- 1 Overview
- 2 New Features
- 2.1 Buildtime
- 2.1.1 Dependencies
- 2.1.2 Plugins and Archetypes
- 2.1.3 Artifact Repositories
- 2.1.4 Classpath Resolution
- 2.1.5 Default Answer in Non Interactive Mode
- 2.1.6 Default Packaging Targets
- 2.1.7 Dependency Resolution
- 2.1.8 Interactive Shell
- 2.2 Runtime
- 2.2.1 Swing Plugin
- 2.2.2 WindowManager and JInternalFrames
- 2.2.3 Automatic Addon Discovery
- 2.2.4 Additional MVC Group Configuration
- 3 Breaking Changes
- 4 Sample Applications
- 4.1 File Viewer
- 4.2 GroovyEdit
- 4.3 Font Picker
- 4.4 Greet
- 4.5 SwingPad
- 5 0.9.5-rc1 Release Notes
Overview
Griffon 0.9.5-rc1 – "Aquila wahlbergi" - 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 ![]()
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
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.
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.
0.9.5-rc1 Release Notes
1 Comment
Hide/Show CommentsFeb 22, 2012
jim
Getting null pointer error on SwingMenuBar,Groovy
Guessing that swingxbuilder isn't right ?
Other minor problems - you need to update the system variable "griffon-version" on windows 7. Update the instructions.