Your SlideShare is downloading. ×
0
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
Grails Internals Ggug Dec 2009
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

Grails Internals Ggug Dec 2009

899

Published on

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

No Downloads
Views
Total Views
899
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
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. Inside Grails: The Build System & Plugin Management by Peter Ledbrook
  • 2. Starting The Grails Build System
  • 3. Starting The Grails Build System
    • Shell scripts
    • 4. startGrails launches VM
      • Adds groovy-all & grails-bootstrap to system classpath
  • 5. Starting The Grails Build System
    • Create GrailsRootLoader
    • 6. Load classpath from groovy-starter.conf
    • 7. Load GrailsScriptRunner in GRL and execute
      • Class loader isolation
  • 8. Starting The Grails Build System
    • Create BuildSettings if it doesn't exist
    • 9. Populate root loader
    • 10. Initialise Gant
      • Pre-populate Gant binding
    • Interactive mode
  • 11. Starting The Grails Build System
    • Parse & run Grails scripts
  • 12. Starting The Grails Build System
    • Load Grails using given class loader
    • 13. Isolate Grails from parent class loader
  • 14. Starting The Grails Build System
    • Project structure
    • 15. BuildConfig.groovy & settings.groovy
    • 16. Dependencies
  • 17. Class loader hell?
  • 18. Context Class Loader
    • Starts as root loader ( GrailsStarter )
    • 19. Becomes ”classLoader” ( GrailsScriptRunner )
      • ”classes” directory
    • Ends as Grails application class loader ( DefaultGrailsApplication )
  • 20. Grails Scripts
  • 21. Grails Scripts
    • General settings
    • 22. Create PluginBuildSettings
    • 23. Configure environment
    • 24. getPropertyValue()
  • 25. Grails Scripts
    • Set up common/compile/test/runtime classpaths
    • 26. Target classpath
      • grails.*.classpath Ant paths
  • 27. Grails Scripts
    • Install Ant build listener
    • 28. Load event scripts ( _Events.groovy )
    • 29. Add event() method
  • 30. Grails Scripts
    • Grails app without servlet container
    • 31. Create application context, with
      • GrailsApplication
      • 32. GrailsPluginManager
    • Used by integration tests, generate scripts, and others
  • 33. Grails Scripts
    • Grails app with servlet container
    • 34. Should use runtime classpath
    • 35. Plugin change scanner
  • 36. Grails Scripts
    • Create WAR
    • 37. Package runtime dependencies
  • 38. Plugins
    • Build
    • Manage plugin installations
    • Runtime
    • Load plugins
      • Add Spring beans
      • 42. Add dynamic methods
      • 43. Web descriptor
  • 44. Plugins in the Build
  • 45. Plugins at Runtime
  • 46. Overlap
    • _PluginDependencies: target ”loadPlugins”
      • Called by bootstrap, package app
      • 47. Required to generate web.xml
      • 48. Creates temporary GrailsApplication and GrailsPluginManager instances
      • 49. Plugins may be loaded twice or more!

×