Powerful Metaprogramming Techniques With Groovy by Jeff Brown
The dynamic runtime nature of Groovy is one of the things that sets it apart from standard Java and makes it a fantastic language for building dynamic applications for the Java Platform. The metaprogramming capabilities offered by the language provide everything that an application development team needs to build systems that are far more capable than their all Java counterparts. In addition to the runtime metaprogramming capabilities supported by the language there are a number of mechanisms that Groovy provides which allow you write code which participates in the compilation of Groovy code. This session will be a deep dive into much of Groovy's dynamic runtime and compile time metaprogramming capabilities including learning how Groovy's dynamic dispatch mechanism works and how to write code which participates in that, dynamically modifying class behavior at runtime, AST transformations for modifying class behavior at compile time, traits and other compile time techniques which open up a lot of powerful possibilities to application and library development teams.