Real Life Groovy

  • 1,306 views
Uploaded on

Presentation about using Groovy in real Java projects.

Presentation about using Groovy in real Java projects.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,306
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
21
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. Real Life Groovy Paul Bakker
  • 2. Introduction What I wish this talk is about
  • 3. Introduction What this talk actually is about
  • 4. About me Paul Bakker EJB 3 • Trainer Info Support JSF • Java Magazine author Seam • Big time Groovy fan ;-) JavaFX Spring Hibernate Flex
  • 5. Outline • Freshing up your Groovy knowledge • Real life Groovy examples –Test Data –Database conversion –Unit Testing • A leap of faith –A Groovy web service client –Generating XML –A Groovy session bean
  • 6. So what was Groovy again? • A dynamic language • Compiles to byte code • Running in the JVM • Completely compatible with Java
  • 7. Lists
  • 8. Maps
  • 9. The Groovy 101 Closures
  • 10. Meta Programming: The Expando
  • 11. Meta Programming: Changing behavior at runtime
  • 12. Groovy’s strong points • Working with collections • Changing behavior at runtime • The builder pattern • It’s all just Java
  • 13. Generating test data • Populate a database with test data • Automated & Repeatable • You might use DBUnit –That’s a lot of XML...
  • 14. Generating test data
  • 15. The problem: Database conversion Old legacy schema Redesigned schema for new application • Reuse most of the data • Don’t loose references • But don’t limit new mappings
  • 16. The schema MESSAGE ATTACHMENT 1 MESSAGE message_id message_id * subject file_id message_id body subject * * user_id body 1 firstname lastname FILE username USER attachment file_id user_id 1 filename username data firstname lastname email
  • 17. A Groovy SQL script
  • 18. Running the script • Compile the script • Jar the class files • Add Groovy.jar dependency • java -jar GroovyDBScript.jar
  • 19. Unit Testing • Mocking is really useful –But it’s quite a lot of work • Groovy’s dynamic nature and Meta Programming helps
  • 20. The Java class to test
  • 21. The Java Unit Test
  • 22. The Groovy Unit Test
  • 23. Making untestable code testable • Replace Java code at joint points –Replace direct service calls with a Groovy proxy Groovy Java Service Java Class Proxy delegate
  • 24. A Groovy Service Proxy
  • 25. Building Uses Implements
  • 26. Groovy Joint compiler groovyc
*.groovy
*.java
‐j
‐Jsource=1.4
‐Jtarget=1.4
  • 27. A leap of faith • Replace some Java code by more readable Groovy code • XML Converters • A Groovy web service client • A Groovy EJB3 Session bean
  • 28. A Groovy web service client
  • 29. Using the Groovy Service getTitles(“Java”) [“Effective Java”, ...]
  • 30. A Groovy Session Bean Replace any Java code
  • 31. A warning about domain classes Don’t forget about the metaClass property Serialize Groovy ActionScript domain class class Must
have
 metaClass
 property!
  • 32. GANT • ANT without XML • More natural build definition • Use control structures • Works in every build environment
  • 33. Just get the Groove • Groovy makes a lot of tasks easier • Fits in most environments • Use Groovy where it really adds value
  • 34. Should we ever write Java code? • More readable code • Better unit testing • Advanced frameworks • Not everybody knows Groovy • No static code analysis