Handles the loading and management of plug-ins in the Grails system. A plugin a just like a normal Grails application except that it contains a file ending in *Plugin.groovy in the root of the directory.
A Plugin class is a Groovy class that has a version and optionally closures called doWithSpring, doWithContext and doWithWebDescriptor
The doWithSpring closure uses the BeanBuilder syntax (
Modifiers | Name | Description |
---|---|---|
java.lang.String |
BEAN_NAME |
Type | Name and description |
---|---|
void |
checkForChanges() Checks all the plugins to see whether they have any changes |
void |
doArtefactConfiguration() Called prior to the initialisation of the GrailsApplication object to allow registration of additional ArtefactHandler objects |
void |
doDynamicMethods() Called on all plugins so that they can add new methods/properties/constructors etc. |
void |
doPostProcessing(org.springframework.context.ApplicationContext applicationContext) Performs post initialization configuration for each plug-in, passing the built application context |
void |
doRuntimeConfiguration(RuntimeSpringConfiguration springConfig) Executes the runtime configuration phase of plug-ins |
void |
doRuntimeConfiguration(java.lang.String pluginName, RuntimeSpringConfiguration springConfig) Executes the runtime configuration for a specific plugin AND all its dependencies |
void |
doWebDescriptor(org.springframework.core.io.Resource descriptor, java.io.Writer target) Takes the specified web descriptor reference and configures it with all the plugins outputting the result to the target Writer instance |
void |
doWebDescriptor(java.io.File descriptor, java.io.Writer target) @see #doWebDescriptor(Resource, Writer) |
GrailsPlugin[] |
getAllPlugins() Returns an array of all the loaded plug-ins |
GrailsPlugin[] |
getFailedLoadPlugins() @return An array of plugins that failed to load due to dependency resolution errors |
GrailsPlugin |
getFailedPlugin(java.lang.String name) Retrieves a plug-in that failed to load, or null if it doesn't exist |
GrailsPlugin |
getGrailsPlugin(java.lang.String name) Retrieves a name Grails plugin instance |
GrailsPlugin |
getGrailsPlugin(java.lang.String name, java.lang.Object version) Retrieves a plug-in for its name and version |
GrailsPlugin |
getGrailsPluginForClassName(java.lang.String name) Obtains a GrailsPlugin for the given classname |
GrailsPlugin |
getPluginForClass(java.lang.Class<?> theClass) Obtains the GrailsPlugin for the given class |
GrailsPlugin |
getPluginForInstance(java.lang.Object instance) Looks up the plugin that defined the given instance. |
java.util.Collection |
getPluginObservers(GrailsPlugin plugin) Retrieves a collection of plugins that are observing the specified plugin |
java.lang.String |
getPluginPath(java.lang.String name) Returns the pluginContextPath for the given plugin |
java.lang.String |
getPluginPathForClass(java.lang.Class<? extends java.lang.Object> theClass) Returns the plugin path for the given class |
java.lang.String |
getPluginPathForInstance(java.lang.Object instance) Returns the pluginContextPath for the given instance |
java.lang.String |
getPluginViewsPathForClass(java.lang.Class<? extends java.lang.Object> theClass) Returns the plugin views directory path for the given class |
java.lang.String |
getPluginViewsPathForInstance(java.lang.Object instance) Returns the plugin views directory for the given instance |
java.util.List<org.springframework.core.type.filter.TypeFilter> |
getTypeFilters() Get all of the TypeFilter definitions defined by the plugins |
GrailsPlugin[] |
getUserPlugins() Gets plugin installed by the user and not provided by the framework |
boolean |
hasGrailsPlugin(java.lang.String name) @param name The name of the plugin |
void |
informObservers(java.lang.String pluginName, java.util.Map event) inform the specified plugins observers of the event specified by the passed Map instance |
void |
informOfClassChange(java.lang.Class<?> aClass) Method for handling changes to a class and triggering on change events etc. |
void |
informOfClassChange(java.io.File file, java.lang.Class cls) |
void |
informOfFileChange(java.io.File file) Fire to inform the PluginManager that a particular file changes |
boolean |
isInitialised() @return the initialised |
boolean |
isShutdown() Indicates whether the manager has been shutdown or not |
void |
loadPlugins() Performs the initial load of plug-ins throwing an exception if any dependencies don't resolve |
void |
refreshPlugin(java.lang.String name) Refreshes the specified plugin. |
void |
registerProvidedArtefacts(GrailsApplication application) Registers pre-compiled artefacts with the GrailsApplication instance, only overriding if the application doesn't already provide an artefact of the same name. |
void |
setApplication(GrailsApplication application) Sets the GrailsApplication used be this plugin manager |
void |
setLoadCorePlugins(boolean shouldLoadCorePlugins) Set whether the core plugins should be loaded |
void |
shutdown() Shuts down the PluginManager |
boolean |
supportsCurrentBuildScope(java.lang.String pluginName) Returns true if the given plugin supports the current BuildScope |
Methods inherited from class | Name |
---|---|
interface org.springframework.context.ApplicationContextAware |
org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) |
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
Checks all the plugins to see whether they have any changes
Called prior to the initialisation of the GrailsApplication object to allow registration of additional ArtefactHandler objects
Called on all plugins so that they can add new methods/properties/constructors etc.
Performs post initialization configuration for each plug-in, passing the built application context
applicationContext
- The ApplicationContext instanceExecutes the runtime configuration phase of plug-ins
springConfig
- The RuntimeSpringConfiguration instanceExecutes the runtime configuration for a specific plugin AND all its dependencies
pluginName
- The name of he pluginspringConfig
- The runtime spring config instanceTakes the specified web descriptor reference and configures it with all the plugins outputting the result to the target Writer instance
descriptor
- The Resource of the descriptortarget
- The Writer to write the result to
descriptor
- The File of the descriptortarget
- The target to write the changes toReturns an array of all the loaded plug-ins
Retrieves a plug-in that failed to load, or null if it doesn't exist
name
- The name of the pluginRetrieves a name Grails plugin instance
name
- The name of the pluginRetrieves a plug-in for its name and version
name
- The name of the pluginversion
- The version of the pluginObtains a GrailsPlugin for the given classname
name
- The name of the pluginObtains the GrailsPlugin for the given class
theClass
- The classLooks up the plugin that defined the given instance. If no plugin defined the instance then null is returned.
instance
- The instanceRetrieves a collection of plugins that are observing the specified plugin
plugin
- The plugin to retrieve observers forReturns the pluginContextPath for the given plugin
name
- The plugin nameReturns the plugin path for the given class
theClass
- The classReturns the pluginContextPath for the given instance
instance
- The instanceReturns the plugin views directory path for the given class
theClass
- The classReturns the plugin views directory for the given instance
instance
- The instanceGet all of the TypeFilter definitions defined by the plugins
Gets plugin installed by the user and not provided by the framework
name
- The name of the plugininform the specified plugins observers of the event specified by the passed Map instance
pluginName
- The name of the pluginevent
- The eventMethod for handling changes to a class and triggering on change events etc.
aClass
- The classFire to inform the PluginManager that a particular file changes
file
- The file that changed
Indicates whether the manager has been shutdown or not
Performs the initial load of plug-ins throwing an exception if any dependencies don't resolve
Refreshes the specified plugin. A refresh will force to plugin to "touch" each of its watched resources and fire modified events for each
name
- The name of the plugin to refreshRegisters pre-compiled artefacts with the GrailsApplication instance, only overriding if the application doesn't already provide an artefact of the same name.
application
- The GrailsApplication objectSets the GrailsApplication used be this plugin manager
application
- The GrailsApplication instanceSet whether the core plugins should be loaded
shouldLoadCorePlugins
- True if they shouldShuts down the PluginManager
Returns true if the given plugin supports the current BuildScope
pluginName
- The name of the plugin