Groovy AOP: a dynamic AOP system for a JVM-based language

Groovy AOP is a general-purpose AOP system for Groovy, a JVM-based dynamic language. Groovy AOP provides a hybrid dynamic AOP implementation based on both meta-programming and bytecode transformation. It implements the pointcut-advice model of AspectJ. Based on Groovy syntax, Groovy AOP introduces a domain-specific language for declaration of aspects, pointcut expressions, and advice. At runtime, it utilises the dynamic compilation capability of the JVM to convert advice codes woven by meta-programming into bytecodes. Preliminary results show that this dynamic weaving technique preserves the nature of a dynamic language, while reducing runtime overheads.