
1. GrailsStarter
1.1. groovy-start.conf
1.2. very small for classloading issues
1.3. GrailsBootLoader
2. GrailsScriptRunner
2.1. Create BuildSettings
2.2. Populate root loader
2.3. Initialise Gant
2.3.1. Pre-populate Gant binding
2.4. Interactive mode
3. GrailsStarter
4. Gant
5. GrailsBuildHelper
6. BuildSettings
6.1. Gets properties for the project structure
6.2. BuildConfig.groovy
6.3. Dependencies
6.3.1. Runtime dependencies
6.3.2. Compile dependencies
7. Grails classloaders
7.1. System loader
7.1.1. Loads JDK stuff
7.2. GrailsRootLoader
7.2.1. "rootLoader"
7.2.2. Script cache
7.2.3. Resources
7.2.4. JARs (application & plugins)
7.3. URLClassLoader
7.3.1. "classLoader"
7.3.2. Script cache
7.3.3. Classes
7.4. GrailsClassLoader
7.4.1. grailsApp.classLoader
7.4.2. Artifacts (*.groovy)
7.5. ContextClassLoader
7.5.1. Thread.getContextClassLoader
8. Grails Scripts
8.1. _GrailsSettings
8.1.1. General settings
8.1.2. Create PluginBuildSettings
8.1.3. Configure environment
8.1.4. getPropertyValue()
8.2. _GrailsClasspath
8.2.1. Dependencies
8.2.1.1. Compile
8.2.1.2. Provided
8.2.1.3. Runtime
8.3. _GrailsEvents
8.3.1. Ant build listener
8.3.2. Load event scripts
8.3.3. Add event() method
8.3.3.1. start and end event
8.4. _GrailsBootstrap
8.4.1. Grails Spring application
8.4.2. GrailsApplication
8.4.3. GrailsPluginManager
8.5. _GrailsRun
8.5.1. Grails app with servlet container
8.5.2. Should use runtime classpath
8.5.3. Plugin change scanner
8.6. _GrailsWar
8.6.1. Package runtime dependencies
8.6.2. Makes the WAR file
9. Plugins
9.1. Plugins in the Build
9.1.1. Scripts
9.1.1.1. _PluginDependencies
9.1.1.2. _GrailsPlugins
9.1.1.3. _GrailsPluginDev
9.1.2. Classes
9.1.2.1. PluginInfo
9.1.2.2. PluginBuildSettings
9.1.2.3. GrailsPluginUtils
9.1.3. Files
9.1.3.1. plugin.xml
9.1.3.2. dependencies.groovy
9.1.3.2.1. has dependency dsl
9.2. Plugins at Runtime
9.2.1. GrailsPluginManager
9.2.1.1. GrailsPlugin
9.2.2. AbstractGrilsPluginManager
9.2.2.1. AbstractGrailsPlugin
9.2.3. DefaultGrailsPluginManager
9.2.3.1. DefaultGrailsPlugin
9.2.3.1.1. Plugin descriptor
9.2.3.1.2. *GrailsPlugin
9.3. However....
9.3.1. _PluginDependencies (loadPlugins target)
9.3.1.1. Called by bootstrap, package app
9.3.1.2. Required to generate web.xml
9.3.1.3. Creates temp GrailsApplication and GrailsPluginManager instances
10. The Application(Petclinic)
10.1. GrailsWebRequestFilter
10.1.1. Creates GrailsWebRequest
10.1.1.1. Stores info about current request in threadlocal
10.2. UrlMappingsFilter
10.3. GrailsDispatcherServlet
10.3.1. GrailsOpenSessionInViewInterceptor