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
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Delhi Call girls
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
The Digital Insurer
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
wesley chun
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
RTylerCroy
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
debabhi2
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
The Digital Insurer
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Katpro Technologies
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Enterprise Knowledge
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
apidays
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
Khem
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Igalia
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
Maria Levchenko
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
Recently uploaded
(20)
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
🐬 The future of MySQL is Postgres 🐘
🐬 The future of MySQL is Postgres 🐘
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
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