Skip to end of metadata
Go to start of metadata

Dear friends,

Once again, the Groovy team has poured a lot of energy, blood and sweat into the Groovy source code to produce a new version of your beloved scripting language for the JVM. I'm particularly proud to announce that "groovy-jsr-02" was released today!

For us, it is a very important milestone, I should probably say a quality-focused release. We've reached 1000 test cases, and counting... But apart from the usual user support, bug fixes, applied patches provided by our active and vibrant community, we particularly focused our efforts on two main quality factors: better error reporting and improved compile-time checks.

Our heroes of the month are Jeremy Rayner, Jochen Theodorou, Franck Rasolo and Christian Stein.

Among other things, Jeremy successfully tidied up error messages and provided meaningful line and column information for compile-time errors, and with Jochen and me, also removed ugly stacktraces and made messages much clearer. The reported errors will be closer to what you are used to with "javac".

Jeremy also contributed an interesting example leveraging Lucene and Groovy, and also created a handy "groovy" Ant task that you can use to script your builds from within Ant or Maven. See for reference.

Jochen worked mostly on adding various scoping checks and sanity checks to the core. I also helped him to modify all of our 1000 test cases to match these new checks' expectations. Groovy is now able to make the following checks at compile-time:

Checks for classes and scripts:

  • check no variable is defined more than once

Checks for classes only:

  • check every variable is defined before usage
  • check that abstract methods are implemented when the class is not abstract
  • check that no final methods are overwritten
  • check that no final class is used as direct parent
  • check that no access from a static context to a dynamic declared variable is possible, example: class A { def var; def static m() { println var } }

Those checks are on by default, but if your Groovy scripts and classes don't conform yet, you can still specify a system property to disable them momentaneously: groovy.jsr.check=false

Jochen also added support for implementing interfaces and abstract classes and methods in Groovy, which Groovy hasn't really considered so far.

Our new developer, Christian Stein, worked on improving our Groovlets and Templates and fixed most bugs related to classloaders in Servlet containers and other bugs.

We've also brought back the Groovy methods documentation up-to-date on the website, as well as the outdated Javadoc APIs.

Pretty long release notes and announcement you'll tell me, yes, but I keep one of the best things for the end:

Franck Rasolo is about to release GroovyJ, a Groovy plugin for the award-wining IntelliJ IDEA leveraging their Language API. This plugin already allows you to view your Groovy sources with syntax highlighting, to compile and run your classes, etc. You can find more information on the status page with lots of tasty screenshots. The plugin should be available soon through the plugin manager of your IDE. Stay tuned!

This time, I won't cut'n paste all the JIRA issues that we've resolved, there are really too many of them. Instead, you can look for yourself in JIRA.

As a side note, for those of you who are students and would like to participate in the development of Groovy, you may apply to our Google Summer of Code propositions.

You can download this release at the usual place.
I hope you'll love this release! So... enjoy!

Guillaume Laforge
Groovy Project Manager

  • No labels

1 Comment

  1. I'm happy to see Groovy maturing. Great work guys!