Class ConfigLoader

java.lang.Object
com.opensymphony.module.sitemesh.mapper.ConfigLoader

public class ConfigLoader extends Object
The ConfigLoader reads a configuration XML file that contains Decorator definitions (name, url, init-params) and path-mappings (pattern, name).

These can then be accessed by the getDecoratorByName() methods and getMappedName() methods respectively.

The DTD for the configuration file in old (deprecated) format is located at http://www.opensymphony.com/dtds/sitemesh_1_0_decorators.dtd .

The DTD for the configuration file in new format is located at http://www.opensymphony.com/dtds/sitemesh_1_5_decorators.dtd .

Editing the config file will cause it to be auto-reloaded.

This class is used by ConfigDecoratorMapper, and uses PathMapper for pattern matching.

Version:
$Revision: 1.8 $
Author:
Joe Walnes, Mathias Bogaert
See Also:
  • Field Details

    • state

      private volatile ConfigLoader.State state
      Mark volatile so that the installation of new versions is guaranteed to be visible across threads.
    • configFile

      private File configFile
    • configFileName

      private String configFileName
    • config

      private Config config
  • Constructor Details

    • ConfigLoader

      public ConfigLoader(File configFile) throws javax.servlet.ServletException
      Create new ConfigLoader using supplied File.
      Throws:
      javax.servlet.ServletException
    • ConfigLoader

      public ConfigLoader(String configFileName, Config config) throws javax.servlet.ServletException
      Create new ConfigLoader using supplied filename and config.
      Throws:
      javax.servlet.ServletException
  • Method Details

    • getDecoratorByName

      public Decorator getDecoratorByName(String name) throws javax.servlet.ServletException
      Retrieve Decorator based on name specified in configuration file.
      Throws:
      javax.servlet.ServletException
    • getMappedName

      public String getMappedName(String path) throws javax.servlet.ServletException
      Get name of Decorator mapped to given path.
      Throws:
      javax.servlet.ServletException
    • loadConfig

      private ConfigLoader.State loadConfig() throws javax.servlet.ServletException
      Load configuration from file.
      Throws:
      javax.servlet.ServletException
    • parseConfig

      private void parseConfig(ConfigLoader.State newState, Document document)
    • populatePathMapper

      private void populatePathMapper(ConfigLoader.State newState, NodeList patternNodes, String role, String name)
    • getAttribute

      private static String getAttribute(Element element, String name)
    • getContainedText

      private static String getContainedText(Node parent, String childTagName)
    • storeDecorator

      private void storeDecorator(ConfigLoader.State newState, Decorator d)
    • refresh

      private ConfigLoader.State refresh() throws javax.servlet.ServletException
      Check if configuration file has been updated, and if so, reload.
      Throws:
      javax.servlet.ServletException