Groovy Recipes: Greasing the Wheels of Java (Pragmatic Programmers)