Suche senden
Hochladen
Groovy AST Demyistified - 33degree
•
1 gefällt mir
•
1,397 views
Andres Almiray
Folgen
Groovy AST Demyistified - 33degree
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 45
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
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
Weitere ähnliche Inhalte
Ähnlich wie 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
Ähnlich wie 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
Mehr von 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
Mehr von 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
Kürzlich hochgeladen
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
Jamie (Taka) Wang
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
Udaiappa Ramachandran
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
GDSC PJATK
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
Christian Posta
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
David Newbury
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
Eric D. Schabell
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
Bachir Benyammi
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
DianaGray10
201610817 - edge part1
201610817 - edge part1
Jamie (Taka) Wang
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
Aggregage
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
Matt Ray
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
Brian Pichman
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
Precisely
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Daniel Santiago Silva Capera
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
YounusS2
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
DianaGray10
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
Jamie (Taka) Wang
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
infogdgmi
20230104 - machine vision
20230104 - machine vision
Jamie (Taka) Wang
Kürzlich hochgeladen
(20)
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
201610817 - edge part1
201610817 - edge part1
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
KubeConEU24-Monitoring Kubernetes and Cloud Spend with OpenCost
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
20230104 - machine vision
20230104 - machine vision
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?
11.
AST TRANSFOR MATIONS
12.
G E
E V N I I L U S
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
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!
36.
ADDITIONAL TOOLS AST browser AST
Builder
45.
Thank You!
@aalmiray andres.almiray@canoo.com
Jetzt herunterladen