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

## org.codehaus.groovy.grails.commons
[Java] Interface GrailsApplication

    org.codehaus.groovy.grails.commons.GrailsApplication
      org.springframework.beans.factory.Aware

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

    public interface GrailsApplication
    extends org.springframework.context.ApplicationContextAware

The main interface representing a running Grails application. This interface's main purpose is to provide a mechanism for analysing the conventions within a Grails application as well as providing metadata and information about the execution environment.

The GrailsApplication interface interfacts with ArtefactHandler instances which are capable of analysing different artefact types (controllers, domain classes etc.) and introspecting the artefact conventions

Implementors of this inteface should be aware that a GrailsApplication is only initialised when the initialise() method is called. In other words GrailsApplication instances are lazily initialised by the Grails runtime.

Authors:
  Graeme Rocher
  Steven Devijver

See Also:
  initialise()
  ArtefactHandler

Since:
  0.1

Field Summary
`java.lang.String` | `APPLICATION_ID` The id of the grails application within a bean context
`java.lang.String` | `CONFIG_CLASS` The name of the class that provides configuration
`java.lang.String` | `DATA_SOURCE_CLASS`
`java.lang.String` | `ENVIRONMENT` Constant used to resolve the environment via System.getProperty(ENVIRONMENT)
`java.lang.String` | `ENVIRONMENT_DEFAULT` Constants that indicates whether this GrailsApplication is running in the default environment
`java.lang.String` | `ENV_APPLICATION` Constant for the application data source, primarly for backward compatability for those applications that use ApplicationDataSource.groovy
`java.lang.String` | `ENV_DEVELOPMENT` Constant for the development environment
`java.lang.String` | `ENV_PRODUCTION` Constant for the production environment.
`java.lang.String` | `ENV_TEST` Constant for the test environment.
`java.lang.String` | `GLOBAL_PLUGINS_DIR` The path to the global plug-ins directory for the application
`java.lang.String` | `PLUGINS_DIR` The path to the plug-ins directory for the application
`java.lang.String` | `PROJECT_CLASSES_DIR` The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
`java.lang.String` | `PROJECT_META_FILE`
`java.lang.String` | `PROJECT_RESOURCES_DIR` The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
`java.lang.String` | `PROJECT_TEST_CLASSES_DIR` The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
`java.lang.String` | `PROJECT_WORK_DIR` The directory where temporary project resources and plug-ins are kept
`java.lang.String` | `WORK_DIR` The name of the system property whose value contains the location, during development, of the Grails working directory where temporary files are generated to

Method Summary
`GrailsClass` | `addArtefact(java.lang.String artefactType, java.lang.Class artefactClass)`
`GrailsClass` | `addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsClass)`
`void` | `addArtefact(java.lang.Class artefact)` Adds the given artefact, attempting to determine type from
`void` | `addOverridableArtefact(java.lang.Class artefact)` Adds an artefact that can be overriden by user defined classes
`void` | `configChanged()` Fired to inform the application when the Config.groovy file changes.
`java.lang.Class[]` | `getAllArtefacts()` Retrieves all java.lang.Class instances considered Artefacts loaded by the Grails class loader
`java.lang.Class[]` | `getAllClasses()` Retrieves all java.lang.Class instances loaded by the Grails class loader
`GrailsClass` | `getArtefact(java.lang.String artefactType, java.lang.String name)`
`GrailsClass` | `getArtefactByLogicalPropertyName(java.lang.String type, java.lang.String logicalName)` Retrieves an artefact by its logical property name.
`GrailsClass` | `getArtefactForFeature(java.lang.String artefactType, java.lang.Object featureID)`
`ArtefactHandler` | `getArtefactHandler(java.lang.String type)` Returns the ArtefactHandler for the given type
`ArtefactHandler[]` | `getArtefactHandlers()`
`ArtefactInfo` | `getArtefactInfo(java.lang.String artefactType)`
`ArtefactHandler` | `getArtefactType(java.lang.Class theClass)` Returns the ArtefactHandler for the given class or null
`GrailsClass[]` | `getArtefacts(java.lang.String artefactType)`
`java.lang.Class` | `getClassForName(java.lang.String className)` Retrieves a class for the given name within the GrailsApplication or returns null
`java.lang.ClassLoader` | `getClassLoader()` Returns the class loader instance for the Grails application.
`groovy.util.ConfigObject` | `getConfig()` Returns the ConfigObject instance.
`java.util.Map` | `getFlatConfig()` Returns the flatten ConfigObject for use from Java classes.
`org.springframework.context.ApplicationContext` | `getMainContext()` Returns the Spring context for this application.
`Metadata` | `getMetadata()`
`org.springframework.context.ApplicationContext` | `getParentContext()` Returns the Spring application context that contains this application instance.
`Resource` | `getResourceForClass(java.lang.Class theClazz)` Retrieves a Resource instance for the given Grails class or null it doesn't exist.
`boolean` | `hasArtefactHandler(java.lang.String type)`
`void` | `initialise()` Initialise this GrailsApplication.
`boolean` | `isArtefact(java.lang.Class theClazz)`
`boolean` | `isArtefactOfType(java.lang.String artefactType, java.lang.Class theClazz)`
`boolean` | `isArtefactOfType(java.lang.String artefactType, java.lang.String className)`
`boolean` | `isInitialised()` Returns whether this GrailsApplication has been initialised or not.
`boolean` | `isWarDeployed()` Returns true if this application has been deployed as a WAR file
`void` | `rebuild()` Rebuilds this Application throwing away the class loader and re-constructing it from the loaded resources again.
`void` | `refresh()` This method will refresh the entire application
`void` | `refreshConstraints()` Rebuilds the constraint definitions.
`void` | `registerArtefactHandler(ArtefactHandler handler)`
`void` | `setMainContext(org.springframework.context.ApplicationContext context)` Sets the main Spring context for this application.

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

Methods inherited from class java.lang.Object
java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int), 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()

Field Detail

### APPLICATION_ID

    public java.lang.String APPLICATION_ID

  The id of the grails application within a bean context

### CONFIG_CLASS

    public java.lang.String CONFIG_CLASS

  The name of the class that provides configuration

### DATA_SOURCE_CLASS

    public java.lang.String DATA_SOURCE_CLASS

### ENVIRONMENT

    @Deprecated
    public java.lang.String ENVIRONMENT

  Constant used to resolve the environment via System.getProperty(ENVIRONMENT)
  deprecated:
    Use Environment.KEY instead.

### ENVIRONMENT_DEFAULT

    @Deprecated
    public java.lang.String ENVIRONMENT_DEFAULT

  Constants that indicates whether this GrailsApplication is running in the default environment
  deprecated:
    Use Environment.DEFAULT instead.

### ENV_APPLICATION

    @Deprecated
    public java.lang.String ENV_APPLICATION

  Constant for the application data source, primarly for backward compatability for those applications that use ApplicationDataSource.groovy
  deprecated:
    Use Environment.APPLICATION instead.

### ENV_DEVELOPMENT

    @Deprecated
    public java.lang.String ENV_DEVELOPMENT

  Constant for the development environment
  deprecated:
    Use Environment.DEVELOPMENT instead.

### ENV_PRODUCTION

    @Deprecated
    public java.lang.String ENV_PRODUCTION

  Constant for the production environment.
  deprecated:
    Use Environment.PRODUCTION instead.

### ENV_TEST

    @Deprecated
    public java.lang.String ENV_TEST

  Constant for the test environment.
  deprecated:
    Use Environment.TEST instead.

### GLOBAL_PLUGINS_DIR

    @Deprecated
    public java.lang.String GLOBAL_PLUGINS_DIR

  The path to the global plug-ins directory for the application
  deprecated:
    Use BuildSettings.GLOBAL_PLUGINS_DIR instead.

### PLUGINS_DIR

    @Deprecated
    public java.lang.String PLUGINS_DIR

  The path to the plug-ins directory for the application
  deprecated:
    Use BuildSettings.PLUGINS_DIR instead.

### PROJECT_CLASSES_DIR

    @Deprecated
    public java.lang.String PROJECT_CLASSES_DIR

  The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
  deprecated:
    Use BuildSettings.PROJECT_CLASSES_DIR instead.

### PROJECT_META_FILE

    public java.lang.String PROJECT_META_FILE

### PROJECT_RESOURCES_DIR

    @Deprecated
    public java.lang.String PROJECT_RESOURCES_DIR

  The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
  deprecated:
    Use BuildSettings.PROJECT_RESOURCES_DIR instead.

### PROJECT_TEST_CLASSES_DIR

    @Deprecated
    public java.lang.String PROJECT_TEST_CLASSES_DIR

  The name of the system property whose value contains the location, during development, of the current Grails projects resources directory
  deprecated:
    Use BuildSettings.PROJECT_TEST_CLASSES_DIR instead.

### PROJECT_WORK_DIR

    @Deprecated
    public java.lang.String PROJECT_WORK_DIR

  The directory where temporary project resources and plug-ins are kept
  deprecated:
    Use BuildSettings.PROJECT_WORK_DIR instead.

### WORK_DIR

    @Deprecated
    public java.lang.String WORK_DIR

  The name of the system property whose value contains the location, during development, of the Grails working directory where temporary files are generated to
  deprecated:
    Use BuildSettings.WORK_DIR instead.

Method Detail

### addArtefact

    @SuppressWarnings("rawtypes")
    public GrailsClass addArtefact(java.lang.String artefactType, java.lang.Class artefactClass)

  Registers a new artefact

  Parameters:
    `artefactType` - The type ID of the artefact, i.e. "TagLib"
    `artefactClass` - The class of the artefact. A new GrailsClass will be created automatically and added to internal structures, using the appropriate ArtefactHandler
  Returns:
    The new grails class for the artefact class
  Since:
    0.5

### addArtefact

    public GrailsClass addArtefact(java.lang.String artefactType, GrailsClass artefactGrailsClass)

  Registers a new artefact

  Parameters:
    `artefactType` - The type ID of the artefact, i.e. "TagLib"
    `artefactGrailsClass` - The GrailsClass of the artefact.
  Returns:
    The supplied grails class for the artefact class
  Since:
    0.5

### addArtefact

    @SuppressWarnings("rawtypes")
    public void addArtefact(java.lang.Class artefact)

  Adds the given artefact, attempting to determine type from
  Parameters:
    `artefact` - The artefact to add

### addOverridableArtefact

    @SuppressWarnings("rawtypes")
    public void addOverridableArtefact(java.lang.Class artefact)

  Adds an artefact that can be overriden by user defined classes
  Parameters:
    `artefact` - An overridable artefact

### configChanged

    public void configChanged()

  Fired to inform the application when the Config.groovy file changes.

### getAllArtefacts

    @SuppressWarnings("rawtypes")
    public java.lang.Class[] getAllArtefacts()

  Retrieves all java.lang.Class instances considered Artefacts loaded by the Grails class loader
  Returns:
    An array of classes

### getAllClasses

    @SuppressWarnings("rawtypes")
    public java.lang.Class[] getAllClasses()

  Retrieves all java.lang.Class instances loaded by the Grails class loader
  Returns:
    An array of classes

### getArtefact

    public GrailsClass getArtefact(java.lang.String artefactType, java.lang.String name)

  Gets the GrailsClass associated with the named artefact class

  i.e. to get the GrailsClass for controller called "BookController" you pass the name "BookController"

  Parameters:
    `artefactType` - The type of artefact to retrieve, i.e. "Controller"
    `name` - The name of an artefact such as "BookController"
  Returns:
    The associated GrailsClass or null
  Since:
    0.5

### getArtefactByLogicalPropertyName

    public GrailsClass getArtefactByLogicalPropertyName(java.lang.String type, java.lang.String logicalName)

  Retrieves an artefact by its logical property name. For example the logical property name of BookController would be book.
  Parameters:
    `type` - The artefact type
    `logicalName` - The logical name
  Returns:
    The GrailsClass or null if it doesn't exist

### getArtefactForFeature

    public GrailsClass getArtefactForFeature(java.lang.String artefactType, java.lang.Object featureID)

  Get an artefact GrailsClass by a "feature" which depending on the artefact may be a URI or tag name for example

  Parameters:
    `artefactType` - The type ID of the artefact, i.e. "TagLib"
    `featureID` - The "feature" ID, say a URL or tag name
  Returns:
    The grails class or null if none is found
  Since:
    0.5

### getArtefactHandler

    public ArtefactHandler getArtefactHandler(java.lang.String type)

  Returns the ArtefactHandler for the given type
  Parameters:
    `type` - The artefact handler type
  Returns:
    The artefact handler

### getArtefactHandlers

    public ArtefactHandler[] getArtefactHandlers()

  Obtain a list of all the artefact handlers

  Returns:
    The list, possible empty but not null, of all currently registered handlers

### getArtefactInfo

    public ArtefactInfo getArtefactInfo(java.lang.String artefactType)

  Obtain all the class information about the artefactType specified

  Parameters:
    `artefactType` - An artefact type identifier i.e. "Domain"
  Returns:
    The artefact info or null if the artefactType is not recognized
  Since:
    0.5

### getArtefactType

    @SuppressWarnings("rawtypes")
    public ArtefactHandler getArtefactType(java.lang.Class theClass)

  Returns the ArtefactHandler for the given class or null
  Parameters:
    `theClass` - The class
  Returns:
    The ArtefactHandler

### getArtefacts

    public GrailsClass[] getArtefacts(java.lang.String artefactType)

  Get an array of all the GrailsClass instances relating to artefacts of the specified type.

  Parameters:
    `artefactType` - The type of artefact to retrieve, i.e. "Controller"
  Returns:
    An array of GrailsClasses which may empty by not null
  Since:
    0.5

### getClassForName

    @SuppressWarnings("rawtypes")
    public java.lang.Class getClassForName(java.lang.String className)

  Retrieves a class for the given name within the GrailsApplication or returns null
  Parameters:
    `className` - The name of the class
  Returns:
    The class or null

### getClassLoader

    public java.lang.ClassLoader getClassLoader()

  Returns the class loader instance for the Grails application.
  Returns:
    The ClassLoader instance

### getConfig

    public groovy.util.ConfigObject getConfig()

  Returns the ConfigObject instance.
  Returns:
    The ConfigObject instance

### getFlatConfig

    public java.util.Map getFlatConfig()

  Returns the flatten ConfigObject for use from Java classes.
  Returns:
    The flattened config

### getMainContext

    public org.springframework.context.ApplicationContext getMainContext()

  Returns the Spring context for this application. Note that this will return `null` until the application is fully initialised. This context contains all the application artifacts, plugin beans, the works.

### getMetadata

    public Metadata getMetadata()

  Get access to the project's metadata, specified in application.properties

  This provides access to information like required grails version, application name, version etc but NOT general application settings.

  Returns:
    A read-only Map of data about the application, not environment specific

### getParentContext

    public org.springframework.context.ApplicationContext getParentContext()

  Returns the Spring application context that contains this application instance. It is the parent of the context returned by getMainContext().

### getResourceForClass

    @SuppressWarnings("rawtypes")
    public Resource getResourceForClass(java.lang.Class theClazz)

  Retrieves a Resource instance for the given Grails class or null it doesn't exist.
  Parameters:
    `theClazz` - The Grails class
  Returns:
    A Resource or null

### hasArtefactHandler

    public boolean hasArtefactHandler(java.lang.String type)

  Test whether an artefact handler exists for a given type

  Parameters:
    `type` - The type of the handler
  Returns:
    true if it does

### initialise

    public void initialise()

  Initialise this GrailsApplication.

### isArtefact

    @SuppressWarnings("rawtypes")
    public boolean isArtefact(java.lang.Class theClazz)

  Call this to find out if the class you have is an artefact loaded by grails.

  Parameters:
    `theClazz` - A class to test
  Returns:
    true if and only if the class was loaded from grails-app/
  Since:
    0.5

### isArtefactOfType

    @SuppressWarnings("rawtypes")
    public boolean isArtefactOfType(java.lang.String artefactType, java.lang.Class theClazz)

  Check if the specified artefact Class has been loaded by Grails already AND is of the type expected

  Parameters:
    `artefactType` - A string identifying the artefact type to check for
    `theClazz` - The class to check
  Returns:
    true if Grails considers the class to be managed as an artefact of the type specified.
  Since:
    0.5

### isArtefactOfType

    public boolean isArtefactOfType(java.lang.String artefactType, java.lang.String className)

  Check if the artefact Class with the name specified is of the type expected

  Parameters:
    `artefactType` - A string identifying the artefact type to check for
    `className` - The name of a class to check
  Returns:
    true if Grails considers the class to be managed as an artefact of the type specified.
  Since:
    0.5

### isInitialised

    public boolean isInitialised()

  Returns whether this GrailsApplication has been initialised or not.
  Returns:
    true if it has been initialised

### isWarDeployed

    public boolean isWarDeployed()

  Returns true if this application has been deployed as a WAR file
  Returns:
    true if the application is WAR deployed

### rebuild

    public void rebuild()

  Rebuilds this Application throwing away the class loader and re-constructing it from the loaded resources again. Can only be called in development mode and an error will be thrown if called in a different enivronment

### refresh

    public void refresh()

  This method will refresh the entire application

### refreshConstraints

    public void refreshConstraints()

  Rebuilds the constraint definitions. TODO move this out? Why ORM dependencies in here?

### registerArtefactHandler

    public void registerArtefactHandler(ArtefactHandler handler)

  Register a new artefact handler

  Parameters:
    `handler` - The new handler to add

### setMainContext

    public void setMainContext(org.springframework.context.ApplicationContext context)

  Sets the main Spring context for this application.

Groovy Documentation