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

Like this? Share it with your network

Share

Grails Internals Ggug Dec 2009

on

  • 1,471 views

 

Statistics

Views

Total Views
1,471
Views on SlideShare
1,469
Embed Views
2

Actions

Likes
1
Downloads
26
Comments
0

1 Embed 2

http://www.slideshare.net 2

Accessibility

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Grails Internals Ggug Dec 2009 Presentation 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
      • Plugin dependencies
      • 39. Scripts
      • 40. Lib dependencies
      • 41. Repositories
    • 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!