Your SlideShare is downloading. ×
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Groovy AST Demyistified - 33degree
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Groovy AST Demyistified - 33degree

860

Published on

Groovy AST Demyistified - 33degree

Groovy AST Demyistified - 33degree

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
860
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Andres  Almiray   @aalmiray  Groovy ASTDemystified
  • 2. ABOUT THE SPEAKERJava developer since the beginningTrue believer in Open SourceGroovy committer since 2007Project lead of the Griffon frameworkCurrently working for
  • 3. AGENDAAST, How did we get here?AST TransformationsBuilding your own AST
  • 4. AST,HOW DIDWE GETHERE?
  • 5. ASTTRANSFORMATIONS
  • 6. G E E V N I I L U S
  • 7. STANDARD GROOVYDISTRO INCLUDES:*  @EqualsAndHashCode *  @AutoClone*  @ToString *  @AutoExternalize*  @TupleConstructor *  @Synchronized*  @Canonical *  @Field*  @InheritConstructors *  @Grab*  @IndexedProperty *  @GrabResolver*  @Lazy *  @CompileStatic*  @PackageScope *  @TypeChecked*  @NotYetImplemented
  • 8. STANDARD GROOVYDISTRO INCLUDES:*  @Bindable *  @Log*  @Vetoable *  @Slf4j*  @ListenerList *  @Log4j*  @ConditionalInterrupt *  @Commons*  @ThreadInterrupt *  @Singleton*  @TimedInterrupt *  @Immutable*  @WithReadLock *  @Delegate*  @WithWriteLock *  @Category*  @Newify *  @Mixin
  • 9. GROOVY ECOSYSTEMBRINGS:*  @ByteCode *  Griffon*  @Scalify *  @EventPublisher *  @Threading*  GContracts *  @PropertyListener *  @Invariant *  @MVCAware *  @Requires *  @MessageSourceAware *  @Ensures *  @ResourceResolverAware*  Grails *  @ResourcesAware *  @Entity *  @ThreadingAware *  @TestFor
  • 10. GLOBAL ASTTRANSFORMATIONSGroovy – GrabGrails – GORM APIGriffon – Threading injectionSpock – the whole shebang
  • 11. BUILDINGYOUR OWNAST
  • 12. LOCAL ASTTRANSFORMATION1.  Define an @interface •  Easy peasy … right?2.  Define AST implementation •  huh ……3.  Profit!
  • 13. GLOBAL ASTTRANSFORMATION1.  Add AST implementation entry to •  META-INF/services/ org.codehaus.groovy.transform.ASTTransformation2.  Define AST implementation •  ??? !!! ??? !!!3.  Profit!
  • 14. ADDITIONAL TOOLSAST browserAST Builder
  • 15. Thank You! @aalmirayandres.almiray@canoo.com

×