Wednesday, November 28, 2007

Impressive Grails Plugin Architecture

I just finished watching the video of Graeme Rocher explain the Grails Plugin Architecture while at the Grails Exchange in London recently (Graeme Rocher on the Grails Plugin Architecture). I got to say, while long at 53 minutes, it was well worth the time and was pretty impressive.

Some things I didn't realize was all the default core functionality in grails is plugin based; everything in grails is based on plugins. For example: spring, hibernate, internalionalization, domains, controllers, tab libraries, etc are all plugins.

On top of that it is really easy to create your own plugin (watch the video above or go here. Here are some of the things you can do with plugins that make them so powerful:

  • Add new methods, constructors, properties to any class at runtime
  • Perform runtime Spring configuration instead of depending on some static spring XML file that you wish you could change at runtime
  • Modify the web.xml on the fly
  • Add new controllers, domains, tag libraries, etc
Here are just a few plugins that already exist:
  • XFire - exposes a grails service as a SOAP service
  • Searchable - integrates compass and lucene search
  • Remoting - exposes a grails service over RMI, HTTP, or burlap
  • GWT - integrates grails with Google Web Toolkit
  • Acegi/JSecurity - adds security support for grails
  • JMS - exposes grails services as Message Driven Beans
  • Wicket/JSF/Tapestry - bring in different view frameworks
  • Dbmigrate - support sql migration
  • Static resources - helps offload the delivery of static resources to another web server
  • Jasper Reports - create jasper reports in grails
Go here for a complete list: http://grails.codehaus.org/Plugins.

0 comments: