Class DigestingPlugIn

java.lang.Object
org.apache.struts.extras.plugins.DigestingPlugIn
All Implemented Interfaces:
PlugIn

public class DigestingPlugIn extends Object implements PlugIn

An implementation of PlugIn which can be configured to instantiate a graph of objects using the Commons Digester and place the root object of that graph into the Application context.

Since:
Struts 1.2
Version:
$Rev$
See Also:
  • Field Details

  • Constructor Details

    • DigestingPlugIn

      public DigestingPlugIn()
      Constructor for DigestingPlugIn.
  • Method Details

    • destroy

      public void destroy()
      Receive notification that our owning module is being shut down.
      Specified by:
      destroy in interface PlugIn
    • init

      public void init(ActionServlet servlet, ModuleConfig config) throws ServletException

      Initialize a Digester and use it to parse a configuration file, resulting in a root object which will be placed into the ServletContext.

      Specified by:
      init in interface PlugIn
      Parameters:
      servlet - ActionServlet that is managing all the modules in this web application
      config - ModuleConfig for the module with which this plug-in is associated
      Throws:
      ServletException - if this PlugIn cannot be successfully initialized
    • initializeDigester

      protected org.apache.commons.digester.Digester initializeDigester() throws ServletException
      Initialize the Digester which will be used to process the main configuration.
      Returns:
      a Digester, ready to use.
      Throws:
      ServletException
    • newDigesterInstance

      protected org.apache.commons.digester.Digester newDigesterInstance()

      Instantiate a Digester.

      Subclasses may wish to override this to provide a subclass of Digester, or to configure the Digester using object methods.

      Returns:
      a basic instance of org.apache.commons.digester.Digester
    • digesterFromXml

      protected org.apache.commons.digester.Digester digesterFromXml(String path, String source) throws IOException

      Instantiate a Digester from an XML input stream using the Commons DigesterLoader.

      Parameters:
      path - the path to the digester rules XML to be found using source
      source - a string indicating the lookup method to be used with path
      Returns:
      a configured Digester
      Throws:
      FileNotFoundException
      MalformedURLException
      IOException
      See Also:
    • applyRuleSets

      protected void applyRuleSets(org.apache.commons.digester.Digester digester) throws ServletException
      Instantiate any RuleSet classes defined in the rulesets property and use them to add rules to our Digester.
      Parameters:
      digester - the Digester instance to add RuleSet objects to.
      Throws:
      ServletException
    • getConfigURL

      protected URL getConfigURL(String path, String source) throws IOException

      Look up a resource path using one of a set of known path resolution mechanisms and return a URL to the resource.

      Parameters:
      path - a String which is meaningful to one of the known resolution mechanisms.
      source - one of the known path resolution mechanisms:
      • file - the path is a fully-qualified filesystem path.
      • servlet - the path is a servlet-context relative path.
      • classpath - the path is a classpath-relative path.
      Returns:
      a URL pointing to the given path in the given mechanism.
      Throws:
      FileNotFoundException
      MalformedURLException
      IOException
    • getClassPathURL

      protected URL getClassPathURL(String path)
      Given a string, return a URL to a classpath resource of that name.
      Parameters:
      path - a Classpath-relative string identifying a resource.
      Returns:
      a URL identifying the resource on the classpath. TODO Do we need to be smarter about ClassLoaders?
    • getServletContextURL

      protected URL getServletContextURL(String path) throws IOException
      Given a string, return a URL to a Servlet Context resource of that name.
      Parameters:
      path - a Classpath-relative string identifying a resource.
      Returns:
      a URL identifying the resource in the Servlet Context
      Throws:
      MalformedURLException
      IOException
    • getFileURL

      protected URL getFileURL(String path) throws IOException
      Given a string, return a URL to a Filesystem resource of that name.
      Parameters:
      path - a path to a file.
      Returns:
      a URL identifying the resource in the in the file system.
      Throws:
      MalformedURLException
      FileNotFoundException
      IOException
    • setConfigPath

      public void setConfigPath(String configPath)
      Parameters:
      configPath - the path to configuration information for this PlugIn.
      See Also:
    • getConfigPath

      public String getConfigPath()
      Returns:
      the configPath property
      See Also:
    • setConfigSource

      public void setConfigSource(String configSource)
      Set the source of the config file. Should be one of the following:
      • "classpath" - indicates that the configPath will be resolved by the ClassLoader.
      • "file" - indicates that the configPath is a fully-qualified filesystem path.
      • "servlet" - indicates that the configPath will be found by the ServletContext.
      Parameters:
      configSource - the source (lookup method) for the config file.
      See Also:
    • getConfigSource

      public String getConfigSource()
      Returns:
      the string describing which access method should be used to resolve configPath.
      See Also:
    • storeGeneratedObject

      protected void storeGeneratedObject(Object obj)
      This method is called after the Digester runs to store the generated object somewhere. This implementation places the given object into the ServletContext under the attribute name as defined in key.
      Parameters:
      obj - The object to save.
    • setKey

      public void setKey(String key)
      Parameters:
      key - The ServletContext attribute name to store the generated object under.
    • getKey

      public String getKey()
      Returns:
      The ServletContext attribute name the generated object is stored under.
    • setRulesets

      public void setRulesets(String ruleSets)

      A comma-delimited list of one or more classes which implement org.apache.commons.digester.RuleSet. (Optional)

    • getRulesets

      public String getRulesets()
      Returns:
      The configured list of RuleSet classes.
    • setDigesterPath

      public void setDigesterPath(String digesterPath)

      The path to a Digester XML configuration file, relative to the digesterSource property. (Optional)

      See Also:
    • getDigesterPath

      public String getDigesterPath()
      Returns:
      the configured path to a Digester XML config file, or null.
      See Also:
    • setDigesterSource

      public void setDigesterSource(String digesterSource)

      The lookup mechanism to be used to resolve digesterPath (optional).

      Parameters:
      digesterSource -
      See Also:
    • getDigesterSource

      public String getDigesterSource()
      Returns:
      the configured lookup mechanism for resolving digesterPath.
      See Also:
    • setPush

      public void setPush(boolean push)

      If set to true, this PlugIn will be pushed onto the Digester stack before the digester parse method is called.

      Defaults to false

      Parameters:
      push -
    • getPush

      public boolean getPush()
      Returns:
      Whether or not this PlugIn instance will be pushed onto the Digester stack before digester.parse() is called.