• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Grails Internals Ggug Dec 2009
 

Grails Internals Ggug Dec 2009

on

  • 1,357 views

 

Statistics

Views

Total Views
1,357
Views on SlideShare
1,355
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 Grails Internals Ggug Dec 2009 Presentation Transcript

    • Inside Grails: The Build System & Plugin Management by Peter Ledbrook
    • Starting The Grails Build System
    • Starting The Grails Build System
      • Shell scripts
      • startGrails launches VM
        • Adds groovy-all & grails-bootstrap to system classpath
    • Starting The Grails Build System
      • Create GrailsRootLoader
      • Load classpath from groovy-starter.conf
      • Load GrailsScriptRunner in GRL and execute
        • Class loader isolation
    • Starting The Grails Build System
      • Create BuildSettings if it doesn't exist
      • Populate root loader
      • Initialise Gant
        • Pre-populate Gant binding
      • Interactive mode
    • Starting The Grails Build System
      • Parse & run Grails scripts
    • Starting The Grails Build System
      • Load Grails using given class loader
      • Isolate Grails from parent class loader
    • Starting The Grails Build System
      • Project structure
      • BuildConfig.groovy & settings.groovy
      • Dependencies
    • Class loader hell?
    • Context Class Loader
      • Starts as root loader ( GrailsStarter )
      • Becomes ”classLoader” ( GrailsScriptRunner )
        • ”classes” directory
      • Ends as Grails application class loader ( DefaultGrailsApplication )
    • Grails Scripts
    • Grails Scripts
      • General settings
      • Create PluginBuildSettings
      • Configure environment
      • getPropertyValue()
    • Grails Scripts
      • Set up common/compile/test/runtime classpaths
      • Target classpath
        • grails.*.classpath Ant paths
    • Grails Scripts
      • Install Ant build listener
      • Load event scripts ( _Events.groovy )
      • Add event() method
    • Grails Scripts
      • Grails app without servlet container
      • Create application context, with
        • GrailsApplication
        • GrailsPluginManager
      • Used by integration tests, generate scripts, and others
    • Grails Scripts
      • Grails app with servlet container
      • Should use runtime classpath
      • Plugin change scanner
    • Grails Scripts
      • Create WAR
      • Package runtime dependencies
    • Plugins
      • Build
      • Manage plugin installations
        • Plugin dependencies
        • Scripts
        • Lib dependencies
        • Repositories
      • Runtime
      • Load plugins
        • Add Spring beans
        • Add dynamic methods
        • Web descriptor
    • Plugins in the Build
    • Plugins at Runtime
    • Overlap
      • _PluginDependencies: target ”loadPlugins”
        • Called by bootstrap, package app
        • Required to generate web.xml
        • Creates temporary GrailsApplication and GrailsPluginManager instances
        • Plugins may be loaded twice or more!