public interface GrailsPluginManager extends ApplicationContextAware
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 (
Type Params | Return Type | Name and description |
---|---|---|
|
public void |
doArtefactConfiguration() Called prior to the initialisation of the GrailsApplication object to allow registration of additional ArtefactHandler objects |
|
public void |
doDynamicMethods() Called on all plugins so that they can add new methods/properties/constructors etc. |
|
public void |
doPostProcessing(ApplicationContext applicationContext) Performs post initialization configuration for each plug-in, passing the built application context |
|
public void |
doRuntimeConfiguration(RuntimeSpringConfiguration springConfig) Executes the runtime configuration phase of plug-ins |
|
public void |
doRuntimeConfiguration(java.lang.String pluginName, RuntimeSpringConfiguration springConfig) Executes the runtime configuration for a specific plugin AND all its dependencies |
|
public GrailsPlugin[] |
getAllPlugins() Returns an array of all the loaded plug-ins |
|
public GrailsPlugin[] |
getFailedLoadPlugins()
|
|
public GrailsPlugin |
getFailedPlugin(java.lang.String name) Retrieves a plug-in that failed to load, or null if it doesn't exist |
|
public GrailsPlugin |
getGrailsPlugin(java.lang.String name) Retrieves a name Grails plugin instance |
|
public GrailsPlugin |
getGrailsPlugin(java.lang.String name, java.lang.Object version) Retrieves a plug-in for its name and version |
|
public GrailsPlugin |
getGrailsPluginForClassName(java.lang.String name) Obtains a GrailsPlugin for the given classname |
|
public GrailsPlugin |
getPluginForClass(java.lang.Class<?> theClass) Obtains the GrailsPlugin for the given class |
|
public GrailsPlugin |
getPluginForInstance(java.lang.Object instance) Looks up the plugin that defined the given instance. |
|
public java.util.Collection |
getPluginObservers(GrailsPlugin plugin) Retrieves a collection of plugins that are observing the specified plugin |
|
public java.lang.String |
getPluginPath(java.lang.String name) Returns the pluginContextPath for the given plugin |
|
public java.lang.String |
getPluginPath(java.lang.String name, boolean forceCamelCase) Returns the pluginContextPath for the given plugin and will force name to camel case instead of '-' lower case |
|
public java.lang.String |
getPluginPathForClass(java.lang.Class<? extends java.lang.Object> theClass) Returns the plugin path for the given class |
|
public java.lang.String |
getPluginPathForInstance(java.lang.Object instance) Returns the pluginContextPath for the given instance |
|
public java.lang.String |
getPluginViewsPathForClass(java.lang.Class<? extends java.lang.Object> theClass) Returns the plugin views directory path for the given class |
|
public java.lang.String |
getPluginViewsPathForInstance(java.lang.Object instance) Returns the plugin views directory for the given instance |
|
public java.util.List<TypeFilter> |
getTypeFilters() Get all of the TypeFilter definitions defined by the plugins |
|
public GrailsPlugin[] |
getUserPlugins() Gets plugin installed by the user and not provided by the framework |
|
public boolean |
hasGrailsPlugin(java.lang.String name)
|
|
public void |
informObservers(java.lang.String pluginName, java.util.Map event) inform the specified plugins observers of the event specified by the passed Map instance |
|
public void |
informOfClassChange(java.lang.Class<?> aClass) Method for handling changes to a class and triggering on change events etc. |
|
public void |
informOfClassChange(java.io.File file, java.lang.Class cls) |
|
public void |
informOfFileChange(java.io.File file) Fire to inform the PluginManager that a particular file changes |
|
public void |
informPluginsOfConfigChange() Inform of a change in configuration |
|
public boolean |
isInitialised()
|
|
public boolean |
isShutdown() Indicates whether the manager has been shutdown or not |
|
public void |
loadPlugins() Performs the initial load of plug-ins throwing an exception if any dependencies don't resolve |
|
public void |
onStartup(java.util.Map<java.lang.String, java.lang.Object> event) Executes the Plugin.onStartup hook for all plugins |
|
public void |
refreshPlugin(java.lang.String name) Refreshes the specified plugin. |
|
public 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. |
|
public void |
setApplication(GrailsApplication application) Sets the GrailsApplication used be this plugin manager |
|
public void |
setLoadCorePlugins(boolean shouldLoadCorePlugins) Set whether the core plugins should be loaded |
|
public void |
setPluginFilter(PluginFilter pluginFilter) Sets the filter to use to filter for plugins |
|
public void |
shutdown() Shuts down the PluginManager |
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 instanceReturns 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 pluginContextPath for the given plugin and will force name to camel case instead of '-' lower case my-plug-web would resolve to myPlugWeb if forceCamelCase is true.
name
- The plugin nameforceCamelCase
- Force camel case for 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 changedInform of a change in configuration
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
Executes the Plugin.onStartup hook for all plugins
event
- the EventRefreshes 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 shouldSets the filter to use to filter for plugins
pluginFilter
- The plugin filterShuts down the PluginManager