Table of Contents

1. Introduction
2. Getting Started
2.1 Downloading and Installing
2.2 Creating an Application
2.3 A Groovy Console Example
2.4 Getting Set-up in an IDE
2.5 Convention over Configuration
2.6 Running an Application
2.7 Testing an Application
2.8 Creating Artefacts
3. Configuration
3.1 Basic Configuration
3.1.1 Logging
3.2 Environments
3.3 Versioning
3.4 Dependency Resolution
3.4.1 Configurations and Dependencies
3.4.2 Dependency Repositories
3.4.3 Debugging Resolution
3.4.4 Inherited Dependencies
3.4.5 Dependency Reports
3.4.6 Plugin JAR Dependencies
3.4.7 Plugin Dependencies
3.5 Project Documentation
4. The Command Line
4.1 Creating Gant Scripts
4.2 Re-using Griffon scripts
4.3 Hooking into Events
4.4 Customising the build
4.5 Command Tools Integration
4.6 The Griffon Wrapper
4.7 Command Line Options
4.7.1 Verbose Output
4.7.2 Disable AST Injection
4.7.3 Disable Default Imports
4.7.4 Disable Conditional Logging Injection
4.7.5 Disable Threading Injection
4.7.6 Default Answer in Non Interactive Mode
4.7.7 Plugin Install Failure Strategies
4.7.8 Default Artifact Repository for Searching
4.7.9 Default Artifact Repository for Caching
4.7.10 Disable Automatic Local Repository Synchronization
4.8 The Griffon Shell
5. Application Overview
5.1 Directory Structure
5.2 The MVC Pattern
5.2.1 MVCGroupManager
5.2.2 MVCGroups and Configuration
5.2.3 Configuration Options
5.3 Application Lifecycle
5.3.1 Initialize
5.3.2 Startup
5.3.3 Ready
5.3.4 Shutdown
5.3.5 Stop
5.4 Application Events
5.4.1 Life Cycle Events
5.4.2 Artifact Events
5.4.3 Miscellaneous Events
5.4.4 Custom Events
5.4.5 Event Handlers
5.4.6 Custom Event Publishers
5.5 Application Features
5.5.1 Runtime Configuration
5.5.2 Metadata
5.5.3 Environment
5.5.4 Running Mode
5.5.5 Shutdown Handlers
5.5.6 Application Phase
5.5.7 Application Locale
5.5.8 Default Imports
5.5.9 Startup Arguments
5.5.10 Locating Resources
5.5.10 Uncaught Exceptions
5.6 Swing specific
5.6.1 WindowManager
5.7 Artifact API
5.7.1 Evaluating Conventions
5.7.2 Adding Dynamic Methods at Runtime
5.7.3 Artifact Types
5.8 Archetypes
5.8.1 A Fancy Example
5.9 Platform Specific
5.9.1 Tweaks for a Particular Platform
5.9.2 MacOSX
6. Models and Binding
6.1 Models
6.2 Binding
6.2.1 Syntax
6.2.2 Additional Properties
7. Views
7.1 Views and Swing
7.2 Special Nodes
7.2.1 Application
7.2.2 Container
7.2.3 Widget
7.2.4 Bean
7.2.5 Noparent
7.2.6 Root
8. Controllers and Services
8.1 Controllers
8.1.1 Threads and Actions
8.2 Services
9. Threading
9.1 Swing Threading
9.1.1 Synchronous Calls
9.1.2 Asynchronous Calls
9.1.3 Outside Calls
9.2 Toolkit-agnostic Threading
9.2.1 Synchronous Calls
9.2.2 Asynchronous Calls
9.2.3 Outside Calls
9.2.4 Additional Methods
9.3 Annotation Based Threading
10. Testing
10.1 Unit Testing
10.2 Integration Testing
10.3 Mocking
10.3.1 MockGriffonApplication
11. Packaging and Deployment
11.1 Zip
11.2 Jar
11.3 Webstart
11.4 Applet
11.5 Additional modes
11.6 Custom Manifest Entries
12. Plug-ins
12.1 Creating and Installing Plug-ins
12.2 Artifact Repositories
12.3 Understanding a Plugins Structure
12.4 Providing Basic Artefacts
12.5 Hooking into Build Events
12.6 Addons
12.7 Understanding Plugin Order
12.8 CLI Dependencies
13. Tips and Tricks
13.1 Using Artifact Conventions to your Advantage
13.2 Dealing with Non-Groovy Artifacts
13.3 Externalizing Views
13.3.1 NetBeans Matisse
13.3.2 Abeille Forms Designer
13.3.3 XML
13.4 Creating Bindings in Java