Applications have the option to let particular artifacts abort the shutdown sequence and/or perform a task while the shutdown sequence is in process. Artifacts that desire to be part of the shutdown sequence should implement the griffon.core.ShutdownHandler interface and register themselves with the application instance.

The contract of a ShutdownHandler is very simple

There are no default ShutdownHandlers registered with an application.