org.apache.struts.plugins
Class DigestingPlugIn

java.lang.Object
  extended by org.apache.struts.plugins.DigestingPlugIn
All Implemented Interfaces:
org.apache.struts.action.PlugIn

public class DigestingPlugIn
extends java.lang.Object
implements org.apache.struts.action.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: 471754 $
See Also:
PlugIn

Field Summary
protected  java.lang.String configPath
           
protected  java.lang.String configSource
           
protected  java.lang.String digesterPath
           
protected  java.lang.String digesterSource
           
protected  java.lang.String key
           
protected  org.apache.struts.config.ModuleConfig moduleConfig
           
protected  boolean push
           
protected  java.lang.String rulesets
           
protected  org.apache.struts.action.ActionServlet servlet
           
protected static java.lang.String SOURCE_CLASSPATH
           
protected static java.lang.String SOURCE_FILE
           
protected static java.lang.String SOURCE_SERVLET
           
 
Constructor Summary
DigestingPlugIn()
          Constructor for DigestingPlugIn.
 
Method Summary
protected  void applyRuleSets(org.apache.commons.digester.Digester digester)
          Instantiate any RuleSet classes defined in the rulesets property and use them to add rules to our Digester.
 void destroy()
          Receive notification that our owning module is being shut down.
protected  org.apache.commons.digester.Digester digesterFromXml(java.lang.String path, java.lang.String source)
          Instantiate a Digester from an XML input stream using the Commons DigesterLoader.
protected  java.net.URL getClassPathURL(java.lang.String path)
          Given a string, return a URL to a classpath resource of that name.
 java.lang.String getConfigPath()
           
 java.lang.String getConfigSource()
           
protected  java.net.URL getConfigURL(java.lang.String path, java.lang.String source)
          Look up a resource path using one of a set of known path resolution mechanisms and return a URL to the resource.
 java.lang.String getDigesterPath()
           
 java.lang.String getDigesterSource()
           
protected  java.net.URL getFileURL(java.lang.String path)
          Given a string, return a URL to a Filesystem resource of that name.
 java.lang.String getKey()
           
 boolean getPush()
           
 java.lang.String getRulesets()
           
protected  java.net.URL getServletContextURL(java.lang.String path)
          Given a string, return a URL to a Servlet Context resource of that name.
 void init(org.apache.struts.action.ActionServlet servlet, org.apache.struts.config.ModuleConfig config)
          Initialize a Digester and use it to parse a configuration file, resulting in a root object which will be placed into the ServletContext.
protected  org.apache.commons.digester.Digester initializeDigester()
          Initialize the Digester which will be used to process the main configuration.
protected  org.apache.commons.digester.Digester newDigesterInstance()
          Instantiate a Digester.
 void setConfigPath(java.lang.String configPath)
           
 void setConfigSource(java.lang.String configSource)
          Set the source of the config file.
 void setDigesterPath(java.lang.String digesterPath)
          The path to a Digester XML configuration file, relative to the digesterSource property.
 void setDigesterSource(java.lang.String digesterSource)
          The lookup mechanism to be used to resolve digesterPath (optional).
 void setKey(java.lang.String key)
           
 void setPush(boolean push)
          If set to true, this PlugIn will be pushed onto the Digester stack before the digester parse method is called.
 void setRulesets(java.lang.String ruleSets)
          A comma-delimited list of one or more classes which implement org.apache.commons.digester.RuleSet.
protected  void storeGeneratedObject(java.lang.Object obj)
          This method is called after the Digester runs to store the generated object somewhere.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SOURCE_CLASSPATH

protected static final java.lang.String SOURCE_CLASSPATH
See Also:
Constant Field Values

SOURCE_FILE

protected static final java.lang.String SOURCE_FILE
See Also:
Constant Field Values

SOURCE_SERVLET

protected static final java.lang.String SOURCE_SERVLET
See Also:
Constant Field Values

configPath

protected java.lang.String configPath

configSource

protected java.lang.String configSource

digesterPath

protected java.lang.String digesterPath

digesterSource

protected java.lang.String digesterSource

key

protected java.lang.String key

moduleConfig

protected org.apache.struts.config.ModuleConfig moduleConfig

rulesets

protected java.lang.String rulesets

servlet

protected org.apache.struts.action.ActionServlet servlet

push

protected boolean push
Constructor Detail

DigestingPlugIn

public DigestingPlugIn()
Constructor for DigestingPlugIn.

Method Detail

destroy

public void destroy()
Receive notification that our owning module is being shut down.

Specified by:
destroy in interface org.apache.struts.action.PlugIn

init

public void init(org.apache.struts.action.ActionServlet servlet,
                 org.apache.struts.config.ModuleConfig config)
          throws javax.servlet.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 org.apache.struts.action.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:
javax.servlet.ServletException - if this PlugIn cannot be successfully initialized

initializeDigester

protected org.apache.commons.digester.Digester initializeDigester()
                                                           throws javax.servlet.ServletException
Initialize the Digester which will be used to process the main configuration.

Returns:
a Digester, ready to use.
Throws:
javax.servlet.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(java.lang.String path,
                                                               java.lang.String source)
                                                        throws java.io.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
java.io.IOException
See Also:
getConfigURL(String, String)

applyRuleSets

protected void applyRuleSets(org.apache.commons.digester.Digester digester)
                      throws javax.servlet.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:
javax.servlet.ServletException

getConfigURL

protected java.net.URL getConfigURL(java.lang.String path,
                                    java.lang.String source)
                             throws java.io.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:
java.io.FileNotFoundException
java.net.MalformedURLException
java.io.IOException

getClassPathURL

protected java.net.URL getClassPathURL(java.lang.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 java.net.URL getServletContextURL(java.lang.String path)
                                     throws java.io.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
java.io.IOException

getFileURL

protected java.net.URL getFileURL(java.lang.String path)
                           throws java.io.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
java.io.IOException

setConfigPath

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

getConfigPath

public java.lang.String getConfigPath()
Returns:
the configPath property
See Also:
configSource

setConfigSource

public void setConfigSource(java.lang.String configSource)
Set the source of the config file. Should be one of the following:

Parameters:
configSource - the source (lookup method) for the config file.
See Also:
configPath

getConfigSource

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

storeGeneratedObject

protected void storeGeneratedObject(java.lang.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(java.lang.String key)
Parameters:
key - The ServletContext attribute name to store the generated object under.

getKey

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

setRulesets

public void setRulesets(java.lang.String ruleSets)

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


getRulesets

public java.lang.String getRulesets()
Returns:
The configured list of RuleSet classes.

setDigesterPath

public void setDigesterPath(java.lang.String digesterPath)

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

See Also:
digesterSource, getConfigURL(String, String)

getDigesterPath

public java.lang.String getDigesterPath()
Returns:
the configured path to a Digester XML config file, or null.
See Also:
digesterSource, getConfigURL(String, String)

setDigesterSource

public void setDigesterSource(java.lang.String digesterSource)

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

Parameters:
digesterSource -
See Also:
getConfigURL(String, String)

getDigesterSource

public java.lang.String getDigesterSource()
Returns:
the configured lookup mechanism for resolving digesterPath.
See Also:
getConfigURL(String, String)

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.


Copyright © 2000-2007 Apache Software Foundation. All Rights Reserved.