Grails Internals Ggug Dec 2009
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • 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,499
On Slideshare
1,497
From Embeds
2
Number of Embeds
1

Actions

Shares
Downloads
26
Comments
0
Likes
1

Embeds 2

http://www.slideshare.net 2

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!