This Week in Grails (2011-22)

Lots of tweets and retweets this week about a rendering performance comparison between Rails, Wicket, Grails, Play, Lift, and JSP. The blog author updated the post and benchmarks based on responses from the community, adding a second server option for the Rails test, trying out the new Scala-based templates for Play, and based on feedback from Stéphane Maldini running the tests using the latest 1.4 Grails code. Stéphane and Lari Hotari had already been working on optimizing GSP performance and after profiling this test Lari was able to add a few more optimizations and double the throughput when rendering templates. The numbers for Grails are now only a little slower than using JSPs.

Grails 1.4 development is going well. One cool new feature is a dramatically reduced output on the commandline. Now most lines are rendered on a single line much like recent versions of Gradle. Graeme’s also looking at improving interactive mode which can make running multiple commands extremely fast since you only need to start the VM and initialize Grails once, but currently it suffers from OOME issues. I’ve added support for multiple datasources to core (from the Datasources plugin) and am working on adding two-phase commit (XA/JTA) for JDBC and JMS.

Also, good news for the Translate plugin released last week. Ironically, the day it was released, Google announced that they were cancelling their translation API, but it’s been reworked to use the Microsoft API instead.

Some GR8Conf (EU and US) items of note:

If you want to keep up with these “This Week in Grails” posts you can access them directly via their category link or in an RSS reader with the feed for just these posts.

Translations of this post:


There were 3 new plugins released:

  • grails-ant version 0.1.1. Provides Ant to Grails applications
  • sms version 0.1. Provides services to access Torpedeiro HTTP/S API
  • sipgate version 1.0.0. Allows you to send SMS via the SMS-Gateway

and 19 updated plugins:

  • avatar version 0.5. Provides a taglib for displaying avatars
  • bubbling version 2.1.3. Provides integration with the Bubbling Library YUI extension
  • ckeditor version Implements the integration layer between Grails and the CKEditor web rich text editor.
  • cloud-foundry-ui version 1.0. Provides a basic monitoring UI for Cloud Foundry applications
  • dynamic-config version 0.3. Change config properties without restarting the application
  • equals-hashcode-test version 0.1.1. Base Spock specification for testing equals and hashCode methods of domain classes and other Groovy objects
  • functional-test-development version 0.1.8. Installs a script, develop-functional-tests, that you can use to develop your functional tests more conveniently
  • gpars version 0.2. Adds GPars jar files to Grails projects
  • grails-melody version 1.5. Integrates the JavaMelody system monitoring tool
  • grails-ui version 1.2. Provides a standard UI tag library for ajaxy widgets using YUI
  • lesscss-resources version 0.3. Optimises the use of css files, compiling .less files into their .css counterprt, and place the css into the processing chain to be available to the other resource plugin features
  • portlets version 0.8. Aims to provide a simple way of developing JSR-168 portlets
  • portlets-gatein version 0.2. Provides a simple way of deploying Grails portlets to JBoss GateIN 3.1 Portal
  • portlets-liferay version 0.3. Uses the Portlets Plugin and adds Liferay Portal specific configurations and adapters
  • rateable version 0.7.0. Adds a generic mechanism for rating domain objects
  • scala version 0.6.2. Allows you to compile Scala sources in the /src/java and /src/scala folders of your application
  • tiny-mce version 3.4.2. Integrates the TinyMce editor javascript and tags to embed the editor in your GSP pages
  • translate version 1.1. Translates text from one language to another using the Google Translate API
  • yui version 2.8.2. Provides integration with the Yahoo! UI Library

Interesting Tweets


User groups and Conferences

Comments are closed.

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 License.