Groovy Blog

The Groovy development team and SpringSource are happy to announce the joint releases of two maintenance versions of Groovy: Groovy 1.6.8 and Groovy 1.7.1.

Both releases mainly provide bug fixes, plus a few enhancements in various areas (Groovy console, mocking/stubing support, GroovyDoc improvements, generics handling, and many more). You can look at the JIRA release notes to learn more about those numerous bug fixes and improvements (for 1.6.8 and 1.7.1 respectively).

You can download Groovy at the usual place

Thanks a lot to all involved!

Tellurium 0.7.0 RC1 is out now. Over 150 issues have been closed. The issues include new features, bugs fixings, and other enhancements requested by users. There are some fundamental changes in Tellurium 0.7.0 compared with Tellurium 0.6.0 such as the group locating algorithm, UI module caching, Macro command, jQuery-based new APIs, and i18n support.

New Features

  • Santa Algorithm: The Santa algorithm is the missing half of the Tellurium UI module concept. The algorithm can locate the whole UI module at the runtime DOM. After that, you can just pass in UI element's UID to find it in the cached UI module on Tellurium Engine. That is to say, you don't need Tellurium Core to generate the runtime locators any more.
  • Macro Command: Macro Command is a set of Selenium commands that are bundled together and sent to Selenium Core in one call. This will reduce the round trip latency from Tellurium Core to Engine and thus, improve the speed performance. Another advantage for Macro Command is that Tellurium Engine can reuse the locator because many times the commands in the same bundle act on the same UI element or same sub-tree in the DOM.
  • UI Module Caching: From Tellurium 0.6.0, Tellurium provides the cache capability for CSS selectors so that Tellurium can reuse them without doing re-locating. In 0.7.0, Tellurium moves a step further to cache the whole UI module on the Engine side. Each UI module cache holds a snapshot of the DOM references for the UI elements in the UI module.
  • Tellurium New APIs: Tellurium Engine in 0.7.0 re-implemented a set of Selenium APIs by exploiting jQuery, plus many more new APIs.
  • Trace: Tellurium 0.7.0 provides built-in support for the command execution time including execution time for each command, total run time, and aggregated times for each command.
  • UI Module Live Show: The show command is used to show the UI module that you defined on the actual web page. The UI module on the web page is outlined and if a user hives over the UI module, the UIDs of the selected UI element's and its ancestors' are shown as a tooltip.
  • I18n support: Tellurium now provides support for internationalization of strings and exception messages. Internationalized strings for each locale is provided through a MessageBundle for a specific locale which is of the format <MessageBundleName><language-code><country code>.properties.

Directory Structure

The directory structure is listed as follows, i.e., the RC1 release includes Tellurium Core, Engine, tellurium-website, and ui-examples sub-projects. The documents and dependencies are also included.

  1. core
  2. engine
  3. tellurium-website
  4. ui-examples
  5. dependencies
  6. doc

How to Obtain Tellurium 0.7.0 RC1

Tellurium 0.7.0 RC1 tar ball can be downloaded from http://aost.googlecode.com/files/tellurium-0.7.0-RC1.tar.gz. You can also find Tellurium core and custom selenium server from the following Maven repositories, respectively.

http://maven.kungfuters.org/content/repositories/releases/org/telluriumsource/tellurium-core/0.7.0-RC1/

http://maven.kungfuters.org/content/repositories/thirdparty/org/seleniumhq/selenium/server/selenium-server/1.0.1-te2-RC1/

If you Tellurium Maven archetypes, you can use the following command to create a Tellurium JUnit test project.

mvn archetype:create -DgroupId=your_group_id -DartifactId=your_artifact_id \
-DarchetypeArtifactId=tellurium-junit-archetype \
-DarchetypeGroupId=org.telluriumsource -DarchetypeVersion=0.7.0-RC1 \
-DarchetypeRepository=http://maven.kungfuters.org/content/repositories/releases

Similarly, use the following Maven command for a Tellurium TestNG project,

mvn archetype:create -DgroupId=your_group_id -DartifactId=your_artifact_id \
-DarchetypeArtifactId=tellurium-testng-archetype \
-DarchetypeGroupId=org.telluriumsource -DarchetypeVersion=0.7.0-RC1 \
-DarchetypeRepository=http://maven.kungfuters.org/content/repositories/releases

Feedback

Please report any problems back to Tellurium User Group at

http://groups.google.com/group/tellurium-users

and follow Tellurium on Twitter (http://twitter.com/TelluriumSource) for any the latest update.

Thanks,

Tellurium Team

Twas the night before Christmas, when all through the house
Not a creature was stirring, not even a mouse.

The Windows-Installer for Groovy 1.7.0 can now be downloaded from the Groovy Website (direct link). It takes care of the gory details of a Windows installation, copying files, setting environment variables and file associations.

It contains the Groovy 1.7.0 Binaries, API Docs and a PDF snapshot of the Wiki, the native launcher, Gant 1.9.0, Scriptom 1.6.0, Gaelyk 0.3.2, GPars 0.9, Spock 0.3 and the Griffon Builders. These contain, among others, GFXBuilder, SwingXBuilder and JideBuilder in versions compatible to Griffon 0.2. The installation of everything but the binaries including the native launcher is optional.

Currently supported languages for the installer are english, german, spanish, french and brazilian portuguese.

Groovy 1.7 released

The Groovy development team and SpringSource are very pleased to announce the final release of Groovy 1.7, the most popular and successful dynamic language for the JVM! After two betas and two release candidates, we're are happy to deliver this new and very important milestone to our ever-growing user base.

Over the years, the Groovy project has managed to grow a community, but not only that, a very rich and active ecosystem of Groovy-related projects: the Grails web stack, the Griffon swing application framework, the Gant and Gradle build solutions, the Gaelyk lightweight toolkit for Google App Engine, the Gpars parallel system, the Easyb and Spock testing frameworks and the GMock mocking library, the CodeNarc and GMetrics quality tools, and many more! With all these initiatives, the world is even groovier and we're thankful these projects have helped us shape what Groovy is today.

Groovy 1.7 provides the following new major features and enhancements:

  • Anonymous Inner Classes and Nested Classes, for more Java-friendliness
  • Annotation enhancements, with the ability to put annotations on imports, packages and variable declarations)
  • Grape enhancement (the Groovy module system)
  • Power Asserts, for more readable and expressive assertions
  • AST (Abstract Syntax Tree) enhancements with the AST Viewer and AST Builder, for easing the creation of AST transformations
  • Various dependency upgrades (including the ASM bytecode library to get ready for the JSR-292 InvokeDynamic bytecode instructions)
  • A rewrite of the GroovyScriptEngine for more flexibility and rapidity
  • Several GroovyConsole enhancements, like line numbers, a new output view, and more
  • Various SQL improvements, like batch updates and transaction support
  • and many more enhancements!

You can learn more about all these features in the Groovy 1.7 release notes.

For further details, you can have a look at our JIRA release notes for some more details.

You can download Groovy in the download section of our website.

The Groovy development team would particularly thank all the users, contributors and committers who helped us all along to improve the quality and usefulness of the language and its APIs, as well as all those projects in the Groovy ecosystem who influenced us and inspired us.

We're offering our community this new release as a Christmas present, hoping you'll enjoy it as much as we did when working on it, and we wish you all a very Groovy Christmas, and all the best for the coming year!
Enjoy this new release, and stay tuned for all the upcoming improvements we'll bring you in the future: a more modular and even faster Groovy, additional abilities for more readable and expressive DSLs, and many more exciting features!

The Groovy development team is happy to announce the release of Groovy 1.7-RC-2, hopefully our last step before the final version, scheduled for December 22nd.

Just a few minor enhancements (backported from the 1.7.x branch), and a couple bug fixes or typos, found their way in this release.

You can see some of the changes in the JIRA release notes (some of them not appearing as the target release fix was different than RC-2).

If all goes well, it's the last Release Candidate before the final version. Unless we uncover a critical and blocker issue, we're going to release Groovy 1.7-final before Christmas, as a Christmas present for our Groovy users!

You can download Groovy 1.7-RC-2 in the download area, as usual.

Please try this last RC in your projects, to test drive it, and ensure we release a quality final version. Your help will be very much appreciated, and we're looking forward to hearing your feedback on this version.

The Windows-Installer for Groovy 1.6.7 can now be downloaded from the Groovy Website (direct link). It takes care of the gory details of a Windows installation, copying files, setting environment variables and file associations.

It contains the Groovy 1.6.7 Binaries, API Docs and a PDF snapshot of the Wiki, the native launcher, Gant 1.8.1, Scriptom 1.6.0, Gaelyk 0.3.2 and the Griffon Builders. These contain, among others, GFXBuilder, SwingXBuilder and JideBuilder in versions compatible to Griffon 0.2. The installation of everything but the binaries including the native launcher is optional.

Currently supported languages for the installer are english, german, spanish, french and brazilian portuguese.

The Groovy development team is very pleased to announce the joint release of Groovy 1.6.6 and Groovy 1.7-RC-1.

Groovy 1.6.6 is the latest official stable release, which incorporates several bug fixes and minor enhancements.
You can have a more detailed overview of the fixes on the JIRA release notes.

Groovy 1.7-RC-1 is the first Release Candidate towards the final version of Groovy 1.7.
To know more about the various bug fixes and enhancements, please have a look at the JIRA release notes.
To highlight just a few enhancements:

  • The remaining issues with the GroovyServletEngine rewrite and its usage in Groovlets and Templates should now all be cleared
  • A few adjustments to our enum and inner classes support (including stub generation for inner classes)
  • Better support of @Grape in the Groovy Console
  • MissingMethodException/MissingPropertyException now suggests some possible typos should you receive such an exception, by suggesting existing methods or properties whose name is close to the one that triggered the exception
  • The line numbers appear properly in the Groovy Console
  • Some encoding issues have been fixed with regards to loading Groovy scripts and classes through GroovyShell, GroovyCodeSource and friends (for instance, the problem could be seen on the Groovy Web Console in prior versions)
  • A new output visualization mode is available for the Groovy Console, showing the output in an external window instead of in the bottom output pane.
  • Ability to specify a Grape resolver to indicate where Grapes can be downloaded from, for example @GrabResolver(name='restlet.org', root='http://maven.restlet.org') @Grab(group='org.restlet', module='org.restlet', version='1.1.6')

Let me remind you about our draft release notes for the 1.7 final release covering the big lines:
http://docs.codehaus.org/display/GROOVY/(draft)+Groovy+1.7+release
Some updates were made to the document for this release, and some final additions will be added shortly.

Download Groovy 1.6.6 and 1.7-RC-1.

Thanks a lot to all involved in those two releases!
We're looking forward to your feedback, especially for the upcoming Groovy 1.7 final release. This is now your change to drive test the release candidates in your projects, to see if there's any regression or critical issue.
Depending on issues reported, 1.7-RC-1 may potentially be the sole release candidate. We're aiming at a release date for the final version of Groovy 1.7 before Christmas, so you can play with your new geek toy during the break!

Enjoy!

The CATS team proudly announces that the WJAX conference attendees elected us as winner of the WJAX Challenge - a coding challenge with the goal of implementing a betting system (but without money) for the next years FIFA soccer world championship.

8 teams have submitted a contribution, 5 were elected to the final round by committee, and the audience selected the winner: 1st CATS (Canoo ULC on Groovy&Grails, 221 voices), 2nd Tipptop (JRuby on Rails, 86 voices), 3rd KIX (Scala/Lift, 76 voices).

All CATS application code is written in Groovy (2495 LOC). It feeds three channels: a standard data management HTML channel almost entirely with dynamic scaffolding, a Canoo ULC channel with advanced visualisation as interactive tables, cover flow, and swing components projected on 3D OpenGL surfaces. An extra iPhone channel in only 160 LOC allows mobile betting.

CATS uses Grails plugins for security, mail, and last not least the ULC Plugin, which also contains the Groovy ULC Builder that allows programming ULC analogous to the Groovy SwingBuilder.

You can connect to the live running application(german) or download the full source code or have a look at the gallery of screenshots.

Following the conference-driven development principle, right in time for the Devoxx conference and my session with my friend Patrick Chanezon on Google App Engine Java and Gaelyk/Groovy, I've just released a new version (0.3) of the Gaelyk lightweight Groovy toolkit for Google App Engine.

This new version fixes a bug, adds some new capabilities, and bring a small change:

  • The Google services bound to the Groovlets and templates through the binding have been renamed (except userService) to remove the service suffix
  • There are some new methods for working with the memcache service, so you can use the map notation (subscript) to access elements of the cache, as well as using the 'in' keyword to check whether a key is present in the cache.
  • Since GAE SDK 1.2.6, incoming email support has been added, so Gaelyk 0.3 also adds support for incoming emails.
  • There was an issue since the birth of Gaelyk with sending emails, it has now been fixed.

Please make sure to check the tutorial, as it's been updated with new sections on these changes and new features.

You can download the latest JAR and the latest template project directly from GitHub.

The Gaelyk website uses that new version of Gaelyk, as well as the latest 1.2.6 SDK for Google App Engine – The Groovy Web Console has not yet to been updated.

Please let me also thank some of the contributors to this release, such as Sean Gilligan, Kazuchika Sekiya, Jinto, for their help with improving the tutorial, and to all those who contributed on the mailing-list or elsewhere. For instance, well done to the Averone company for migrating its website to Gaelyk, or the the Phone4Water website also on Gaelyk!!

The November 2009 issue continues our coverage of a wide range of Groovy topics, including:

  • Enterprise Development with Groovy and Grails
  • Groovy Around the Globe
  • Grails and Maven
  • Groovy Under the Hood - Ranges
  • Plugin Corner: Bean Fields Plugin
  • Community News
  • and more!

Learn more or purchase today!

The Windows-Installer for Groovy 1.7-Beta-2 can now be downloaded from the Groovy Website (direct link). It takes care of the gory details of a Windows installation, copying files, setting environment variables and file associations.

It contains the Groovy 1.7-Beta-2 Binaries, API Docs and a PDF snapshot of the Wiki, the native launcher, Gant 1.8.1, Scriptom 1.6.0, and the Griffon Builders. These contain, among others, GFXBuilder, SwingXBuilder and JideBuilder in versions compatible to Griffon 0.1.2. The installation of everything but the binaries including the native launcher is optional.

Currently supported languages for the installer are english, german, spanish, french and brazilian portuguese.

We're pleased to announce the release of Groovy 1.7-beta-2!
This is the last release before the Release Candidate cycle, towards our final 1.7 release.

Although we're not formally into the RC cycle, this release is already almost exclusively about bug fixing. However, there's one last new feature added into the mix: customizable boolean coercion.

To learn more about this feature, I've added a new paragraph in the
release notes, in the section about "Groovy Truth" customizations.

You can download Groovy 1.7-beta-2 or view the JIRA release notes.

Thanks a lot to all involved!

The Windows-Installer for Groovy 1.6.5 can now be downloaded from the Groovy Website (direct link). It takes care of the gory details of a Windows installation, copying files, setting environment variables and file associations. This version of the installer checks whether you have a 32-bit or 64-bit installation, and the native launcher executables are only installed for the 32-bit version (until we have 64-bit versions of the nativelauncher).

The installer contains the Groovy 1.6.5 Binaries, API Docs and a PDF snapshot of the Wiki, the native launcher, Gant 1.8.0, Scriptom 1.6.0, and the Griffon Builders. These contain, among others, GFXBuilder, SwingXBuilder and JideBuilder in versions compatible to Griffon 0.1.2. The installation of everything but the binaries including the native launcher is optional.

Currently supported languages for the installer are english, german, spanish, french and brazilian portuguese.

Groovy 1.6.5 is out

The Groovy development team has just released Groovy 1.6.5.
This new release is mainly a bug-fix release, no significant new feature in this version.
A second beta of our upcoming Groovy 1.7 branch will also be released very soon.

You can download Groovy at the usual place.

And you can learn more about all the bugs fixed in our JIRA release notes.

Thanks to everybody who contributed to that release, and thanks to our user community for its always great and constructive feedback for improving Groovy.

Enjoy and have a nice weekend!

Gaelyk is a lightweight toolkit for developing and deploying applications on Google App Engine.

As Google recently released an updated version of their Google App Engine SDK, providing support for XMPP/Jabber messaging and Task Queues, I've worked on a new Gaelyk version providing support for these new features, with a Groovy touch.

Gaelyk can be downloaded here: http://gaelyk.appspot.com/download/

You can have a look at the latest tutorial updated with coverage of:

  • sending / receiving XMPP/Jabber messages,
  • using Task Queues,
  • also an example of how to do queries on the datastore has been added.

Read the tutorial here: http://gaelyk.appspot.com/tutorial/

The Gaelyk website uses that new version of Gaelyk, as well as the latest 1.2.5 SDK for Google App Engine. The Groovy Web Console will also be updated shortly to use that new version.

Have fun with Gaelyk!