griffon – rich app using groovy and swing

In my constant search for rich app platforms, griffon has appeared on the radar. Griffon ( uses grails-like thinking to help you create an application. It includes plugins that bolt on large components into your application such as different builders and java components for web services. While it is still a young project, it looks promising and I encourage people to start using it and developing with it.

One are of development is to get spring and gorm moved over to griffon so that ORM technology is more easily available inside groovy similar to what is available in grails. You can use the 0.3 snapshot to create a spring enabled griffon application and if you compile the 0.3 snapshot compatible only gorm plugin (and manually install it), you can use gorm as well.

Recently, gorm was enhanced so that it could be used outside of grails, however, you must use a specially configured session factory that knows it should scan the domain classes and augment them with groovy special methods (so that gorm is easier to use for programmers).  This is documented and Some previous blogs which described how to configure stand alone gorm to scan the classpath and augment domain classes may no longer be valid as alot of this startup is done inside the special gorm session factory now.

IDE support is improving. I believe that the latest netbeans and intellij have support for griffon projects and similar to grails, requires issuing external commands to run griffon scripts such as “run-app.” Eclipse has groovy support but does not have griffon support per se and its not clear that anyone is working on eclipse griffon support beyond some basic integration. However, creating a griffon project creates an eclipse .project, .classpath and .launch file to help in editing and launching griffon programs. One problem, however, is that jar files in the .classpath are not pointing to the plugin jars and hence, incremental compilation may not work correctly.

Popular posts from this blog

graphql (facebook), falcor (netflix) and odata and ...

React, Redux, Recompose and some simple steps to remove "some" boilerplate and improve reuse

Using wye and tee with scalaz-stream