org.apache.velocity.tools.config

## Class ConfigurationUtils

- java.lang.Object
- - org.apache.velocity.tools.config.ConfigurationUtils

    public class ConfigurationUtils
    extends Object

Utility methods for handling tool configurations.

Version:
  $Id: ConfigurationUtils.java 511959 2007-02-26 19:24:39Z nbubna $
Author:
  Nathan Bubna

### Property Summary

All Methods Static Methods Concrete Methods
`static FactoryConfiguration` `findFromSystem` Returns a `FactoryConfiguration` loaded from the path specified in the "org.apache.velocity.tools" system property (if any).

### Field Summary

Fields
`static String` `AUTOLOADED_PROPS_PATH`
`static String` `AUTOLOADED_XML_PATH`
`static String` `CONFIG_FACTORY_METHOD`
`static String` `GENERIC_DEFAULTS_PATH`
`static ConfigurationUtils` `INSTANCE`
`static String` `SYSTEM_PROPERTY_KEY`
`static String` `VIEW_DEFAULTS_PATH`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static void` `clean(Configuration config)` Convenience method that automatically creates a new `ConfigurationCleaner` and applies it to the specified `Configuration`.
`static ToolboxFactory` `createFactory()` Returns a new, standard `ToolboxFactory` configured with the results of `findFromSystemProperty()`.
`static FactoryConfiguration` `find(String path)` Searches for a configuration file at the specified path and returns it in the form of a `FactoryConfiguration`.
`static FactoryConfiguration` `findFromSystemProperty()` Returns a `FactoryConfiguration` loaded from the path specified in the "org.apache.velocity.tools" system property (if any).
`static FactoryConfiguration` `findInClasspath(String path)`
`static FactoryConfiguration` `findInClasspath(String path, Object caller)` Searches the classpath for a configuration file matching the specified path.
`static FactoryConfiguration` `findInFileSystem(String path)` Searches the file system for a configuration file matching the specified path.
`static FactoryConfiguration` `getDefaultTools()` Returns the "default" `FactoryConfiguration`.
`static FactoryConfiguration` `getFromClass(Class factory)`
`static FactoryConfiguration` `getFromClass(String classname)` Get a specific `FactoryConfiguration` class
`static FactoryConfiguration` `getGenericTools()` Returns a `FactoryConfiguration` including all default "GenericTools" available and no others.
`ConfigurationUtils` `getInstance()`
`static org.slf4j.Logger` `getLog(org.apache.velocity.app.VelocityEngine engine, String childNamespace)`
`static FactoryConfiguration` `getVelocityView()` Returns a `FactoryConfiguration` including all default "velocity-tools-view" tools available as well as the default "GenericTools".
`static FactoryConfiguration` `load(String path)` Returns a `FactoryConfiguration` loaded from a configuration file at the specified path.
`static FactoryConfiguration` `read(URL url)` Returns a `FactoryConfiguration` read from a known configuration file type at the specified `URL`.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Property Detail

#### findFromSystem

    public static FactoryConfiguration findFromSystemProperty

Returns a `FactoryConfiguration` loaded from the path specified in the "org.apache.velocity.tools" system property (if any). If no such property has been set `null` will be returned.

### Field Detail

#### GENERIC_DEFAULTS_PATH

    public static final String GENERIC_DEFAULTS_PATH

See Also:
  Constant Field Values

#### VIEW_DEFAULTS_PATH

    public static final String VIEW_DEFAULTS_PATH

See Also:
  Constant Field Values

#### AUTOLOADED_XML_PATH

    public static final String AUTOLOADED_XML_PATH

See Also:
  Constant Field Values

#### AUTOLOADED_PROPS_PATH

    public static final String AUTOLOADED_PROPS_PATH

See Also:
  Constant Field Values

#### SYSTEM_PROPERTY_KEY

    public static final String SYSTEM_PROPERTY_KEY

See Also:
  Constant Field Values

#### INSTANCE

    public static final ConfigurationUtils INSTANCE

#### CONFIG_FACTORY_METHOD

    public static final String CONFIG_FACTORY_METHOD

See Also:
  Constant Field Values

### Method Detail

#### getInstance

    public ConfigurationUtils getInstance()

#### getDefaultTools

    public static FactoryConfiguration getDefaultTools()

Returns the "default" `FactoryConfiguration`. This includes all the standard tools developed by this project and available in the jar being used. In other words, if the velocity-tools-generic-2.x.jar is being used, then only the generic tools will be included. If the velocity-tools-struts-2.x.jar is being used, then all VelocityTools will be available. This also means that subclasses in the larger jars will override their superclasses. So, if you are using the VelocityStruts jar, then your $link reference will be a StrutsLinkTool. If you are using the VelocityView jar, it will be a standard LinkTool.

Returns:
  the default `FactoryConfiguration`

#### getGenericTools

    public static FactoryConfiguration getGenericTools()

Returns a `FactoryConfiguration` including all default "GenericTools" available and no others.

Returns:
  the generic tools default `FactoryConfiguration`

#### getVelocityView

    public static FactoryConfiguration getVelocityView()

Returns a `FactoryConfiguration` including all default "velocity-tools-view" tools available as well as the default "GenericTools".

Returns:
  all default tools `FactoryConfiguration`
Throws:
  `ConfigurationException` - if a tools.xml is not found at the `VIEW_DEFAULTS_PATH`.

#### findFromSystemProperty

    public static FactoryConfiguration findFromSystemProperty()

Returns a `FactoryConfiguration` loaded from the path specified in the "org.apache.velocity.tools" system property (if any). If no such property has been set `null` will be returned.

#### createFactory

    public static ToolboxFactory createFactory()

Returns a new, standard `ToolboxFactory` configured with the results of `findFromSystemProperty()`.

Returns:
  new `ToolboxFactory`

#### clean

    public static void clean(Configuration config)

Convenience method that automatically creates a new `ConfigurationCleaner` and applies it to the specified `Configuration`.

Parameters:
  `config` - `Configuration`

#### load

    public static FactoryConfiguration load(String path)

Returns a `FactoryConfiguration` loaded from a configuration file at the specified path. If no such file is found at that path, this will throw a `ResourceNotFoundException`.

Parameters:
  `path` - configuration path
Returns:
  new `FactoryConfiguration`
See Also:
  `find(String path)`

#### find

    public static FactoryConfiguration find(String path)

Searches for a configuration file at the specified path and returns it in the form of a `FactoryConfiguration`. This method will look for a matching file in both the classpath and the file system. If perchance a match is found in both, then both are loaded and the configuration loaded from the file system is given precedence (i.e. it is added onto the other). If no match is found in either, then this will return `null`.

Parameters:
  `path` - configuration classpath or filesystem path
Returns:
  new `FactoryConfiguration` for the given path

#### findInFileSystem

    public static FactoryConfiguration findInFileSystem(String path)

Searches the file system for a configuration file matching the specified path. If found, it will read and return it as a `FactoryConfiguration`. If not found, this will return `null`.

Parameters:
  `path` - filesystem path
Returns:
  new `FactoryConfiguration` for the given path
Throws:
  `IllegalStateException` - if the file exists, but its path could not be converted to a URL for reading.

#### findInClasspath

    public static FactoryConfiguration findInClasspath(String path)

Parameters:
  `path` - configuration classpath
Returns:
  new `FactoryConfiguration` for the given classpath
See Also:
  `findInClasspath(String path, Object caller)`

#### findInClasspath

    public static FactoryConfiguration findInClasspath(String path,
                                                       Object caller)

Searches the classpath for a configuration file matching the specified path. If found, it will read and return it as a `FactoryConfiguration`. If not found, this will return `null`. If there are multiple matching resources in the classpath, then they will be added together in the order found (i.e. the last one will have precedence).

Parameters:
  `path` - configuration classpath
  `caller` - classloader context
Returns:
  new `FactoryConfiguration` for the given classpath
See Also:
  `ClassUtils.getResources(String path, Object caller)`

#### read

    public static FactoryConfiguration read(URL url)

Returns a `FactoryConfiguration` read from a known configuration file type at the specified `URL`. If the file is missing or unreadable, this will simply return `null` (i.e. if an IOException is thrown).

Parameters:
  `url` - configuration URL
Returns:
  new `FactoryConfiguration` for the given URL
Throws:
  `UnsupportedOperationException` - if the file type (identified via suffix) is neither ".xml" or ".properties"

#### getFromClass

    public static FactoryConfiguration getFromClass(String classname)

Get a specific `FactoryConfiguration` class

Parameters:
  `classname` - FacotyConfiguration class
Returns:
  new FactoryConfiguration instance

#### getFromClass

    public static FactoryConfiguration getFromClass(Class factory)

#### getLog

    public static org.slf4j.Logger getLog(org.apache.velocity.app.VelocityEngine engine,
                                          String childNamespace)