Submit Search
Upload
Groovy AST Demyistified - 33degree
•
1 like
•
1,397 views
Andres Almiray
Follow
Groovy AST Demyistified - 33degree
Read less
Read more
Technology
Report
Share
Report
Share
1 of 45
Download now
Download to read offline
Recommended
Groovy AST Demystified
Groovy AST Demystified
Andres Almiray
Rocket Propelled Java - Devoxx12
Rocket Propelled Java - Devoxx12
Andres Almiray
SCM Boot Camp
SCM Boot Camp
bleis tift
JAZOON'13 - Andres Almiray - Rocket Propelled Java
JAZOON'13 - Andres Almiray - Rocket Propelled Java
jazoon13
APIテストあれこれ
APIテストあれこれ
tzm_freedom
A Walkthrough of Groovy AST Transformations
A Walkthrough of Groovy AST Transformations
Andres Almiray
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
C初心者がbyebugにPR出した話
C初心者がbyebugにPR出した話
tzm_freedom
Recommended
Groovy AST Demystified
Groovy AST Demystified
Andres Almiray
Rocket Propelled Java - Devoxx12
Rocket Propelled Java - Devoxx12
Andres Almiray
SCM Boot Camp
SCM Boot Camp
bleis tift
JAZOON'13 - Andres Almiray - Rocket Propelled Java
JAZOON'13 - Andres Almiray - Rocket Propelled Java
jazoon13
APIテストあれこれ
APIテストあれこれ
tzm_freedom
A Walkthrough of Groovy AST Transformations
A Walkthrough of Groovy AST Transformations
Andres Almiray
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
C初心者がbyebugにPR出した話
C初心者がbyebugにPR出した話
tzm_freedom
Groovy AST Demystified
Groovy AST Demystified
Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
ZeroTurnaround
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
Tomoharu ASAMI
Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
Robert Lemke
Groovy AST Transformations
Groovy AST Transformations
hendersk
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Jfokus - Rocket Propelled Java
Jfokus - Rocket Propelled Java
Andres Almiray
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
GWTcon
XML and Web Services with Groovy
XML and Web Services with Groovy
Paul King
Development Principles & Philosophy
Development Principles & Philosophy
François-Guillaume Ribreau
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
Guillaume Laforge
What makes groovy groovy codeurs en seine - 2013 - light size
What makes groovy groovy codeurs en seine - 2013 - light size
Normandy JUG
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
Justin Ryan
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Guillaume Laforge
Dsl로 만나는 groovy
Dsl로 만나는 groovy
Seeyoung Chang
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Cisco DevNet
Groovy Domain Specific Languages - SpringOne2GX 2012
Groovy Domain Specific Languages - SpringOne2GX 2012
Guillaume Laforge
Inside DocBlox
Inside DocBlox
Mike van Riel
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Andres Almiray
Liberando a produccion con confianza
Liberando a produccion con confianza
Andres Almiray
More Related Content
Similar to Groovy AST Demyistified - 33degree
Groovy AST Demystified
Groovy AST Demystified
Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
ZeroTurnaround
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
Tomoharu ASAMI
Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
Robert Lemke
Groovy AST Transformations
Groovy AST Transformations
hendersk
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Simon Ritter
Jfokus - Rocket Propelled Java
Jfokus - Rocket Propelled Java
Andres Almiray
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
GWTcon
XML and Web Services with Groovy
XML and Web Services with Groovy
Paul King
Development Principles & Philosophy
Development Principles & Philosophy
François-Guillaume Ribreau
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
Guillaume Laforge
What makes groovy groovy codeurs en seine - 2013 - light size
What makes groovy groovy codeurs en seine - 2013 - light size
Normandy JUG
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
Ken Collins
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
Justin Ryan
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Guillaume Laforge
Dsl로 만나는 groovy
Dsl로 만나는 groovy
Seeyoung Chang
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Cisco DevNet
Groovy Domain Specific Languages - SpringOne2GX 2012
Groovy Domain Specific Languages - SpringOne2GX 2012
Guillaume Laforge
Inside DocBlox
Inside DocBlox
Mike van Riel
Similar to Groovy AST Demyistified - 33degree
(20)
Groovy AST Demystified
Groovy AST Demystified
AST Transformations: Groovy’s best kept secret by Andres Almiray
AST Transformations: Groovy’s best kept secret by Andres Almiray
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
SimpleModelerによるAndroidアプリ自動生成 with g3/g4
Fluent Development with FLOW3 1.0
Fluent Development with FLOW3 1.0
Groovy AST Transformations
Groovy AST Transformations
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
Jfokus - Rocket Propelled Java
Jfokus - Rocket Propelled Java
"Xapi-lang For declarative code generation" By James Nelson
"Xapi-lang For declarative code generation" By James Nelson
XML and Web Services with Groovy
XML and Web Services with Groovy
Development Principles & Philosophy
Development Principles & Philosophy
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
JavaOne 2008 - TS-5793 - Groovy and Grails, changing the landscape of Java EE...
What makes groovy groovy codeurs en seine - 2013 - light size
What makes groovy groovy codeurs en seine - 2013 - light size
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
SF Gradle Meetup - Netflix OSS
SF Gradle Meetup - Netflix OSS
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Groovy in the Enterprise - Case Studies - TSSJS Prague 2008 - Guillaume Laforge
Dsl로 만나는 groovy
Dsl로 만나는 groovy
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Groovy Domain Specific Languages - SpringOne2GX 2012
Groovy Domain Specific Languages - SpringOne2GX 2012
Inside DocBlox
Inside DocBlox
More from Andres Almiray
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Andres Almiray
Liberando a produccion con confianza
Liberando a produccion con confianza
Andres Almiray
Liberando a produccion con confidencia
Liberando a produccion con confidencia
Andres Almiray
OracleDB Ecosystem for Java Developers
OracleDB Ecosystem for Java Developers
Andres Almiray
Softcon.ph - Maven Puzzlers
Softcon.ph - Maven Puzzlers
Andres Almiray
Maven Puzzlers
Maven Puzzlers
Andres Almiray
Oracle Database Ecosystem for Java Developers
Oracle Database Ecosystem for Java Developers
Andres Almiray
JReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of light
Andres Almiray
Building modular applications with the Java Platform Module System and Layrry
Building modular applications with the Java Platform Module System and Layrry
Andres Almiray
Going Reactive with g rpc
Going Reactive with g rpc
Andres Almiray
Building modular applications with JPMS and Layrry
Building modular applications with JPMS and Layrry
Andres Almiray
Taking Micronaut out for a spin
Taking Micronaut out for a spin
Andres Almiray
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
Andres Almiray
What I wish I knew about Maven years ago
What I wish I knew about Maven years ago
Andres Almiray
What I wish I knew about maven years ago
What I wish I knew about maven years ago
Andres Almiray
The impact of sci fi in tech
The impact of sci fi in tech
Andres Almiray
Gradle Ex Machina - Devoxx 2019
Gradle Ex Machina - Devoxx 2019
Andres Almiray
Creating Better Builds with Gradle
Creating Better Builds with Gradle
Andres Almiray
Interacting with the Oracle Cloud Java SDK with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Andres Almiray
Gradle ex-machina
Gradle ex-machina
Andres Almiray
More from Andres Almiray
(20)
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Creando, creciendo, y manteniendo una comunidad de codigo abierto
Liberando a produccion con confianza
Liberando a produccion con confianza
Liberando a produccion con confidencia
Liberando a produccion con confidencia
OracleDB Ecosystem for Java Developers
OracleDB Ecosystem for Java Developers
Softcon.ph - Maven Puzzlers
Softcon.ph - Maven Puzzlers
Maven Puzzlers
Maven Puzzlers
Oracle Database Ecosystem for Java Developers
Oracle Database Ecosystem for Java Developers
JReleaser - Releasing at the speed of light
JReleaser - Releasing at the speed of light
Building modular applications with the Java Platform Module System and Layrry
Building modular applications with the Java Platform Module System and Layrry
Going Reactive with g rpc
Going Reactive with g rpc
Building modular applications with JPMS and Layrry
Building modular applications with JPMS and Layrry
Taking Micronaut out for a spin
Taking Micronaut out for a spin
Apache Groovy's Metaprogramming Options and You
Apache Groovy's Metaprogramming Options and You
What I wish I knew about Maven years ago
What I wish I knew about Maven years ago
What I wish I knew about maven years ago
What I wish I knew about maven years ago
The impact of sci fi in tech
The impact of sci fi in tech
Gradle Ex Machina - Devoxx 2019
Gradle Ex Machina - Devoxx 2019
Creating Better Builds with Gradle
Creating Better Builds with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Interacting with the Oracle Cloud Java SDK with Gradle
Gradle ex-machina
Gradle ex-machina
Recently uploaded
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j
Slack Application Development 101 Slides
Slack Application Development 101 Slides
praypatel2
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Malak Abu Hammad
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
ThousandEyes
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
OnBoard
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
Sinan KOZAK
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
XfilesPro
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Softradix Technologies
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
BookNet Canada
Recently uploaded
(20)
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Slack Application Development 101 Slides
Slack Application Development 101 Slides
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Groovy AST Demyistified - 33degree
1.
Andres Almiray
@aalmiray Groovy AST Demystified
2.
ABOUT THE SPEAKER Java
developer since the beginning True believer in Open Source Groovy committer since 2007 Project lead of the Griffon framework Currently working for
3.
AGENDA AST, How did
we get here? AST Transformations Building your own AST
4.
AST, HOW DID WE GET HERE?
5.
6.
7.
8.
9.
10.
11.
AST TRANSFOR MATIONS
12.
G E
E V N I I L U S
13.
14.
15.
16.
17.
STANDARD GROOVY DISTRO INCLUDES: *
@EqualsAndHashCode * @AutoClone * @ToString * @AutoExternalize * @TupleConstructor * @Synchronized * @Canonical * @Field * @InheritConstructors * @Grab * @IndexedProperty * @GrabResolver * @Lazy * @CompileStatic * @PackageScope * @TypeChecked * @NotYetImplemented
18.
STANDARD GROOVY DISTRO INCLUDES: *
@Bindable * @Log * @Vetoable * @Slf4j * @ListenerList * @Log4j * @ConditionalInterrupt * @Commons * @ThreadInterrupt * @Singleton * @TimedInterrupt * @Immutable * @WithReadLock * @Delegate * @WithWriteLock * @Category * @Newify * @Mixin
19.
GROOVY ECOSYSTEM BRINGS: * @ByteCode
* Griffon * @Scalify * @EventPublisher * @Threading * GContracts * @PropertyListener * @Invariant * @MVCAware * @Requires * @MessageSourceAware * @Ensures * @ResourceResolverAware * Grails * @ResourcesAware * @Entity * @ThreadingAware * @TestFor
20.
GLOBAL AST TRANSFORMATIONS Groovy –
Grab Grails – GORM API Griffon – Threading injection Spock – the whole shebang
21.
BUILDING YOUR OWN AST
22.
23.
LOCAL AST TRANSFORMATION 1. Define
an @interface • Easy peasy … right? 2. Define AST implementation • huh …… 3. Profit!
24.
GLOBAL AST TRANSFORMATION 1. Add
AST implementation entry to • META-INF/services/ org.codehaus.groovy.transform.ASTTransformation 2. Define AST implementation • ??? !!! ??? !!! 3. Profit!
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
ADDITIONAL TOOLS AST browser AST
Builder
37.
38.
39.
40.
41.
42.
43.
44.
45.
Thank You!
@aalmiray andres.almiray@canoo.com
Download now