Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD

## org.codehaus.groovy.grails.plugins
[Java] Interface GrailsPlugin

    org.codehaus.groovy.grails.plugins.GrailsPluginInfo
      org.springframework.beans.factory.Aware
          org.codehaus.groovy.grails.plugins.GrailsPlugin

All Superinterfaces:
  GrailsPluginInfo, org.springframework.beans.factory.Aware

    @java.lang.SuppressWarnings("rawtypes")
    public interface GrailsPlugin
    extends org.springframework.context.ApplicationContextAware, java.lang.Comparable, GrailsPluginInfo

Plugin interface that adds Spring org.springframework.beans.factory.config.BeanDefinitions to a registry based on a GrailsApplication object. After all `GrailsPlugin` classes have been processed the org.springframework.beans.factory.config.BeanDefinitions in the registry are loaded in a Spring org.springframework.context.ApplicationContext that's the singular configuration unit of Grails applications.

It's up to implementation classes to determine where `GrailsPlugin` instances are loaded from.

Authors:
  Steven Devijver
  Graeme Rocher

See Also:
  org.springframework.beans.factory.support.BeanDefinitionRegistry

Since:
  0.2

Field Summary
`java.lang.String` | `ARTEFACTS` Define the list of ArtefactHandlers supporting by the plugin
`java.lang.String` | `DEPENDS_ON` Defines the name of the property that specifies which plugins this plugin depends on
`java.lang.String` | `DO_WITH_APPLICATION_CONTEXT` Defines the name of the property that defines a closure that will be invoked after intialisation and when the application context has been built
`java.lang.String` | `DO_WITH_DYNAMIC_METHODS`
`java.lang.String` | `DO_WITH_SPRING` Defines the name of the property that defines the closure that will be invoked during runtime spring configuration
`java.lang.String` | `DO_WITH_WEB_DESCRIPTOR` Defines the name of the property that defines the closure that will be invoked when the web.xml is being generated
`java.lang.String` | `ENVIRONMENTS` The environments to which this plugin applies
`int` | `EVENT_ON_CHANGE`
`int` | `EVENT_ON_CONFIG_CHANGE`
`int` | `EVENT_ON_SHUTDOWN`
`java.lang.String` | `EVICT` Defines the name of the property that specifies a List or plugins that this plugin evicts Eviction occurs when the PluginManager loads
`java.lang.String` | `OBSERVE` The field that represents the plugin names that this plugin is observing for changes.
`java.lang.String` | `ON_CHANGE` Defines the name of the property that defines the closure that will be invoked when a watched resource changes
`java.lang.String` | `ON_CONFIG_CHANGE` Defines the name of the property that defines the closure that will be invoked when a the Grails configuration object changes
`java.lang.String` | `ON_SHUTDOWN` Defines the name of the property that holds a closure to be invoked when shutdown is called
`java.lang.String` | `PLUGINS_PATH` The prefix used in plug-ins paths
`java.lang.String` | `PLUGIN_EXCLUDES` The field that represents the list of resources to exclude from plugin packaging
`java.lang.String` | `PLUGIN_LOAD_AFTER_NAMES` The name of the property that provides a list of plugins this plugin should after before
`java.lang.String` | `PLUGIN_LOAD_BEFORE_NAMES` The name of the property that provides a list of plugins this plugin should load before
`java.lang.String` | `PROVIDED_ARTEFACTS` The name of the property that provides a list of shipped, but overridable artefacts
`java.lang.String` | `SCOPES` The scopes to which this plugin applies
`java.lang.String` | `STATUS` The status of the plugin.
`java.lang.String` | `STATUS_DISABLED` When a plugin is "disabled" it will not be loaded
`java.lang.String` | `STATUS_ENABLED` When a plugin is "enabled" it will be loaded as usual.
`java.lang.String` | `TYPE_FILTERS` The field that represents the list of type filters a plugin provides
`java.lang.String` | `WATCHED_RESOURCES` Defines the name of the property that specifies resources which this plugin monitors for changes in the format a Ant-style path

Fields inherited from interface GrailsPluginInfo
NAME, TRAILING_NAME, VERSION

Method Summary
`void` | `addExclude(BuildScope buildScope)` Makes the plugin excluded for a particular BuildScope
`void` | `addExclude(Environment env)` Makes the plugin excluded for a particular Environment
`boolean` | `checkForChanges()` When called this method checks for any changes to the plug-ins watched resources and reloads appropriately
`void` | `doArtefactConfiguration()` Called prior to the initialisation of the GrailsApplication instance to allow the registration of additonal ArtefactHandlers
`void` | `doWithApplicationContext(org.springframework.context.ApplicationContext applicationContext)`
`void` | `doWithDynamicMethods(org.springframework.context.ApplicationContext applicationContext)` Calls a "doWithDynamicMethods" closure that allows a plugin to register dynamic methods at runtime
`void` | `doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig)` Executes the plugin code that performs runtime configuration as defined in the doWithSpring closure
`void` | `doWithWebDescriptor(org.w3c.dom.Element webXml)` Handles processing of web.xml.
`void` | `doc(java.lang.String text)` Write some documentation to the DocumentationContext
`java.lang.String[]` | `getDependencyNames()` @return The names of the plugins this plugin is dependant on
`java.lang.String` | `getDependentVersion(java.lang.String name)` The version of the specified dependency
`java.lang.String[]` | `getEvictionNames()` @return The names of the plugins this plugin should evict onload
`java.lang.String` | `getFileSystemName()` Returns the name of the plugin as represented in the file system including the version.
`java.lang.String` | `getFileSystemShortName()` Returns the name of the plugin as represented on the file system without the version.
`groovy.lang.GroovyObject` | `getInstance()` Retrieves the wrapped plugin instance for this plugin
`java.lang.String[]` | `getLoadAfterNames()` Retrieves the names of plugins that this plugin should be loaded after.
`java.lang.String[]` | `getLoadBeforeNames()` Retrieves the names of plugins that this plugin should be loaded before.
`GrailsPluginManager` | `getManager()` Retrieves the plugin manager if known, otherwise returns null
`java.lang.String[]` | `getObservedPluginNames()` Retrieve the plugin names that this plugin is observing for changes
`java.lang.Class` | `getPluginClass()` Returns the underlying class that represents this plugin
`java.util.List` | `getPluginExcludes()` A list of resources that the plugin should exclude from the packaged distribution
`java.lang.String` | `getPluginPath()` Returns the path of the plug-in
`java.lang.Class[]` | `getProvidedArtefacts()` Retrieves an array of provided Artefacts that are pre-compiled additions to the GrailsApplication object but are overridable by the end-user
`java.util.Collection` | `getTypeFilters()` Plugin can provide a list of Spring TypeFilters so that annotated components can be scanned into the ApplicationContext
`java.util.List` | `getWatchedResourcePatterns()` Resources that this plugin watches
`boolean` | `hasInterestInChange(java.lang.String path)` Whether the plugin is interested in a particular change
`boolean` | `isBasePlugin()` Returns whether this plugin is loaded from the current plugin.
`boolean` | `isEnabled()` @return Whether the plugin is enabled or not
`void` | `notifyOfEvent(java.util.Map event)` Notifies this plugin of the specified Event calling the onChange listener
`java.util.Map` | `notifyOfEvent(int eventKind, java.lang.Object source)` Notifies the plugin of a specific event for the given event id, which is one of ON_CHANGE, ON_CONFIG_CHANGE
`void` | `refresh()` Refreshes this Grails plugin reloading any watched resources as necessary
`void` | `setApplication(GrailsApplication application)`
`void` | `setBasePlugin(boolean isBase)` Sets whether this plugin is the base plugin
`void` | `setDescriptor(org.springframework.core.io.Resource descriptor)` Sets the plugin descriptor for this plugin
`void` | `setManager(GrailsPluginManager manager)` Sets the plugin manager for this plugin
`boolean` | `supportsCurrentScopeAndEnvironment()` @return true if the current plugin supports the current BuildScope and Environment
`boolean` | `supportsEnvironment(Environment environment)` Returns whether this plugin supports the given environment name
`boolean` | `supportsScope(BuildScope buildScope)` Return whether this plugin supports the given PluginScope

Methods inherited from interface GrailsPluginInfo
getDescriptor, getFullName, getName, getPluginDir, getProperties, getVersion

Methods inherited from interface java.lang.Comparable
java.lang.Comparable#compareTo(java.lang.Object)

Methods inherited from interface org.springframework.context.ApplicationContextAware
org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext)

Field Detail

### ARTEFACTS

    public java.lang.String ARTEFACTS

  Define the list of ArtefactHandlers supporting by the plugin

### DEPENDS_ON

    public java.lang.String DEPENDS_ON

  Defines the name of the property that specifies which plugins this plugin depends on

### DO_WITH_APPLICATION_CONTEXT

    public java.lang.String DO_WITH_APPLICATION_CONTEXT

  Defines the name of the property that defines a closure that will be invoked after intialisation and when the application context has been built

### DO_WITH_DYNAMIC_METHODS

    public java.lang.String DO_WITH_DYNAMIC_METHODS

### DO_WITH_SPRING

    public java.lang.String DO_WITH_SPRING

  Defines the name of the property that defines the closure that will be invoked during runtime spring configuration

### DO_WITH_WEB_DESCRIPTOR

    public java.lang.String DO_WITH_WEB_DESCRIPTOR

  Defines the name of the property that defines the closure that will be invoked when the web.xml is being generated

### ENVIRONMENTS

    public java.lang.String ENVIRONMENTS

  The environments to which this plugin applies

### EVENT_ON_CHANGE

    public int EVENT_ON_CHANGE

### EVENT_ON_CONFIG_CHANGE

    public int EVENT_ON_CONFIG_CHANGE

### EVENT_ON_SHUTDOWN

    public int EVENT_ON_SHUTDOWN

### EVICT

    public java.lang.String EVICT

  Defines the name of the property that specifies a List or plugins that this plugin evicts Eviction occurs when the PluginManager loads

### OBSERVE

    public java.lang.String OBSERVE

  The field that represents the plugin names that this plugin is observing for changes.

### ON_CHANGE

    public java.lang.String ON_CHANGE

  Defines the name of the property that defines the closure that will be invoked when a watched resource changes

### ON_CONFIG_CHANGE

    public java.lang.String ON_CONFIG_CHANGE

  Defines the name of the property that defines the closure that will be invoked when a the Grails configuration object changes

### ON_SHUTDOWN

    public java.lang.String ON_SHUTDOWN

  Defines the name of the property that holds a closure to be invoked when shutdown is called

### PLUGINS_PATH

    public java.lang.String PLUGINS_PATH

  The prefix used in plug-ins paths

### PLUGIN_EXCLUDES

    public java.lang.String PLUGIN_EXCLUDES

  The field that represents the list of resources to exclude from plugin packaging

### PLUGIN_LOAD_AFTER_NAMES

    public java.lang.String PLUGIN_LOAD_AFTER_NAMES

  The name of the property that provides a list of plugins this plugin should after before

### PLUGIN_LOAD_BEFORE_NAMES

    public java.lang.String PLUGIN_LOAD_BEFORE_NAMES

  The name of the property that provides a list of plugins this plugin should load before

### PROVIDED_ARTEFACTS

    public java.lang.String PROVIDED_ARTEFACTS

  The name of the property that provides a list of shipped, but overridable artefacts

### SCOPES

    public java.lang.String SCOPES

  The scopes to which this plugin applies

### STATUS

    public java.lang.String STATUS

  The status of the plugin.

### STATUS_DISABLED

    public java.lang.String STATUS_DISABLED

  When a plugin is "disabled" it will not be loaded

### STATUS_ENABLED

    public java.lang.String STATUS_ENABLED

  When a plugin is "enabled" it will be loaded as usual.

### TYPE_FILTERS

    public java.lang.String TYPE_FILTERS

  The field that represents the list of type filters a plugin provides

### WATCHED_RESOURCES

    public java.lang.String WATCHED_RESOURCES

  Defines the name of the property that specifies resources which this plugin monitors for changes in the format a Ant-style path

Method Detail

### addExclude

    public void addExclude(BuildScope buildScope)

  Makes the plugin excluded for a particular BuildScope
  Parameters:
    `buildScope` - The BuildScope

### addExclude

    public void addExclude(Environment env)

  Makes the plugin excluded for a particular Environment
  Parameters:
    `env` - The Environment

### checkForChanges

    @java.lang.Deprecated
    public boolean checkForChanges()

  When called this method checks for any changes to the plug-ins watched resources and reloads appropriately
  deprecated:
    Plugins themselves no longer check for changes
  Returns:
    Returns true when the plug-in itself changes in some way, as oppose to plug-in resources

### doArtefactConfiguration

    public void doArtefactConfiguration()

  Called prior to the initialisation of the GrailsApplication instance to allow the registration of additonal ArtefactHandlers
  See Also:
    ArtefactHandler

### doWithApplicationContext

    public void doWithApplicationContext(org.springframework.context.ApplicationContext applicationContext)

  This method is called to allow the plugin to add org.springframework.beans.factory.config.BeanDefinitions to the org.springframework.beans.factory.support.BeanDefinitionRegistry.

  Parameters:
    `applicationContext` - The Spring ApplicationContext instance

### doWithDynamicMethods

    public void doWithDynamicMethods(org.springframework.context.ApplicationContext applicationContext)

  Calls a "doWithDynamicMethods" closure that allows a plugin to register dynamic methods at runtime
  Parameters:
    `applicationContext` - The Spring ApplicationContext instance

### doWithRuntimeConfiguration

    public void doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig)

  Executes the plugin code that performs runtime configuration as defined in the doWithSpring closure
  Parameters:
    `springConfig` - The RuntimeSpringConfiguration instance

### doWithWebDescriptor

    public void doWithWebDescriptor(org.w3c.dom.Element webXml)

  Handles processing of web.xml. The method is passed a GPathResult which is parsed by groovy.util.XmlSlurper. A plug-in can then manipulate the in-memory XML however it chooses Once all plug-ins have been processed the web.xml is then written to disk based on its in-memory form
  Parameters:
    `webXml` - The GPathResult representing web.xml

### doc

    public void doc(java.lang.String text)

  Write some documentation to the DocumentationContext

### getDependencyNames

    public java.lang.String[] getDependencyNames()

  Returns:
    The names of the plugins this plugin is dependant on

### getDependentVersion

    public java.lang.String getDependentVersion(java.lang.String name)

  The version of the specified dependency
  Parameters:
    `name` - the name of the dependency
  Returns:
    The version

### getEvictionNames

    public java.lang.String[] getEvictionNames()

  Returns:
    The names of the plugins this plugin should evict onload

### getFileSystemName

    public java.lang.String getFileSystemName()

  Returns the name of the plugin as represented in the file system including the version. For example TagLibGrailsPlugin would result in "tag-lib-0.1"
  Returns:
    The file system representation of the plugin name

### getFileSystemShortName

    public java.lang.String getFileSystemShortName()

  Returns the name of the plugin as represented on the file system without the version. For example TagLibGrailsPlugin would result in "tag-lib"
  Returns:
    The file system name

### getInstance

    public groovy.lang.GroovyObject getInstance()

  Retrieves the wrapped plugin instance for this plugin
  Returns:
    The plugin instance

### getLoadAfterNames

    public java.lang.String[] getLoadAfterNames()

  Retrieves the names of plugins that this plugin should be loaded after. This differs from dependencies in that if that plugin doesn't exist this plugin will still be loaded. It is a way of enforcing plugins are loaded before, but not necessarily needed
  Returns:
    The names of the plugins that this plugin should be loaded after

### getLoadBeforeNames

    public java.lang.String[] getLoadBeforeNames()

  Retrieves the names of plugins that this plugin should be loaded before. As with getLoadAfterNames() it is not a requirement that the specified plugins exist
  Returns:
    The names of the plugins that this plugin should load before

### getManager

    public GrailsPluginManager getManager()

  Retrieves the plugin manager if known, otherwise returns null
  Returns:
    The PluginManager or null

### getObservedPluginNames

    public java.lang.String[] getObservedPluginNames()

  Retrieve the plugin names that this plugin is observing for changes
  Returns:
    The names of the observed plugins

### getPluginClass

    public java.lang.Class getPluginClass()

  Returns the underlying class that represents this plugin
  Returns:
    The plugin class

### getPluginExcludes

    public java.util.List getPluginExcludes()

  A list of resources that the plugin should exclude from the packaged distribution
  Returns:
    a List of resources

### getPluginPath

    public java.lang.String getPluginPath()

  Returns the path of the plug-in
  Returns:
    A String that makes up the path to the plug-in in the format /plugins/PLUGIN_NAME-PLUGIN_VERSION

### getProvidedArtefacts

    public java.lang.Class[] getProvidedArtefacts()

  Retrieves an array of provided Artefacts that are pre-compiled additions to the GrailsApplication object but are overridable by the end-user
  Returns:
    A list of provided artefacts

### getTypeFilters

    public java.util.Collection getTypeFilters()

  Plugin can provide a list of Spring TypeFilters so that annotated components can be scanned into the ApplicationContext
  Returns:
    A collection of TypeFilter instance

### getWatchedResourcePatterns

    public java.util.List getWatchedResourcePatterns()

  Resources that this plugin watches
  Returns:
    The watch resource patterns

### hasInterestInChange

    public boolean hasInterestInChange(java.lang.String path)

  Whether the plugin is interested in a particular change
  Parameters:
    `path` - The path to the resource that changed
  Returns:
    true if it is

### isBasePlugin

    public boolean isBasePlugin()

  Returns whether this plugin is loaded from the current plugin. In other words when you execute grails run-app from a plugin project the plugin project's *GrailsPlugin.groovy file represents the base plugin and this method will return true for this plugin
  Returns:
    true if it is the base plugin

### isEnabled

    public boolean isEnabled()

  Returns:
    Whether the plugin is enabled or not

### notifyOfEvent

    public void notifyOfEvent(java.util.Map event)

  Notifies this plugin of the specified Event calling the onChange listener
  Parameters:
    `event` - The event to listen for

### notifyOfEvent

    public java.util.Map notifyOfEvent(int eventKind, java.lang.Object source)

  Notifies the plugin of a specific event for the given event id, which is one of ON_CHANGE, ON_CONFIG_CHANGE
  Parameters:
    `eventKind` - The event kind
    `source` - The source of the event
  Returns:
    a Map that represents the event

### refresh

    public void refresh()

  Refreshes this Grails plugin reloading any watched resources as necessary

### setApplication

    public void setApplication(GrailsApplication application)

### setBasePlugin

    public void setBasePlugin(boolean isBase)

  Sets whether this plugin is the base plugin
  Parameters:
    `isBase` - True if is
  See Also:
    isBasePlugin()

### setDescriptor

    public void setDescriptor(org.springframework.core.io.Resource descriptor)

  Sets the plugin descriptor for this plugin
  Parameters:
    `descriptor` - The descriptor

### setManager

    public void setManager(GrailsPluginManager manager)

  Sets the plugin manager for this plugin
  Parameters:
    `manager` - A GrailsPluginManager instance

### supportsCurrentScopeAndEnvironment

    public boolean supportsCurrentScopeAndEnvironment()

  Returns:
    true if the current plugin supports the current BuildScope and Environment

### supportsEnvironment

    public boolean supportsEnvironment(Environment environment)

  Returns whether this plugin supports the given environment name
  Parameters:
    `environment` - The environment name
  Returns:
    true if it does

### supportsScope

    public boolean supportsScope(BuildScope buildScope)

  Return whether this plugin supports the given PluginScope
  Parameters:
    `buildScope` - The PluginScope
  Returns:
    true if it does

Groovy Documentation