1. GrailsScriptRunner
1.1. Create BuildSettings
1.2. Populate root loader
1.3. Initialise Gant
1.3.1. Pre-populate Gant binding
1.4. Interactive mode
2. Gant
3. BuildSettings
3.1. Gets properties for the project structure
3.2. BuildConfig.groovy
3.3. Dependencies
3.3.1. Runtime dependencies
3.3.2. Compile dependencies
4. Grails Scripts
4.1. _GrailsSettings
4.1.1. General settings
4.1.2. Create PluginBuildSettings
4.1.3. Configure environment
4.1.4. getPropertyValue()
4.2. _GrailsClasspath
4.2.1. Dependencies
4.2.1.1. Compile
4.2.1.2. Provided
4.2.1.3. Runtime
4.3. _GrailsEvents
4.3.1. Ant build listener
4.3.2. Load event scripts
4.3.3. Add event() method
4.3.3.1. start and end event
4.4. _GrailsBootstrap
4.4.1. Grails Spring application
4.4.2. GrailsApplication
4.4.3. GrailsPluginManager
4.5. _GrailsRun
4.5.1. Grails app with servlet container
4.5.2. Should use runtime classpath
4.5.3. Plugin change scanner
4.6. _GrailsWar
4.6.1. Package runtime dependencies
4.6.2. Makes the WAR file
5. The Application(Petclinic)
5.1. GrailsWebRequestFilter
5.1.1. Creates GrailsWebRequest
5.1.1.1. Stores info about current request in threadlocal
5.2. UrlMappingsFilter
5.3. GrailsDispatcherServlet
5.3.1. GrailsOpenSessionInViewInterceptor
6. GrailsStarter
6.1. groovy-start.conf
6.2. very small for classloading issues
6.3. GrailsBootLoader
7. GrailsStarter
8. GrailsBuildHelper
9. Grails classloaders
9.1. System loader
9.1.1. Loads JDK stuff
9.2. GrailsRootLoader
9.2.1. "rootLoader"
9.2.2. Script cache
9.2.3. Resources
9.2.4. JARs (application & plugins)
9.3. URLClassLoader
9.3.1. "classLoader"
9.3.2. Script cache
9.3.3. Classes
9.4. GrailsClassLoader
9.4.1. grailsApp.classLoader
9.4.2. Artifacts (*.groovy)
9.5. ContextClassLoader
9.5.1. Thread.getContextClassLoader
10. Plugins
10.1. Plugins in the Build
10.1.1. Scripts
10.1.1.1. _PluginDependencies
10.1.1.2. _GrailsPlugins
10.1.1.3. _GrailsPluginDev
10.1.2. Classes
10.1.2.1. PluginInfo
10.1.2.2. PluginBuildSettings
10.1.2.3. GrailsPluginUtils
10.1.3. Files
10.1.3.1. plugin.xml
10.1.3.2. dependencies.groovy
10.1.3.2.1. has dependency dsl
10.2. Plugins at Runtime
10.2.1. GrailsPluginManager
10.2.1.1. GrailsPlugin
10.2.2. AbstractGrilsPluginManager
10.2.2.1. AbstractGrailsPlugin
10.2.3. DefaultGrailsPluginManager
10.2.3.1. DefaultGrailsPlugin
10.2.3.1.1. Plugin descriptor
10.2.3.1.2. *GrailsPlugin
10.3. However....
10.3.1. _PluginDependencies (loadPlugins target)
10.3.1.1. Called by bootstrap, package app
10.3.1.2. Required to generate web.xml
10.3.1.3. Creates temp GrailsApplication and GrailsPluginManager instances