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 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  String configPath
           
protected  String configSource
           
protected  String digesterPath
           
protected  String digesterSource
           
protected  String key
           
protected  org.apache.struts.config.ModuleConfig moduleConfig
           
protected  boolean push
           
protected  String rulesets
           
protected  org.apache.struts.action.ActionServlet servlet
           
protected static String SOURCE_CLASSPATH
           
protected static String SOURCE_FILE
           
protected static 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(String path, String source)
          Instantiate a Digester from an XML input stream using the Commons DigesterLoader.
protected  URL getClassPathURL(String path)
          Given a string, return a URL to a classpath resource of that name.
 String getConfigPath()
           
 String getConfigSource()
           
protected  URL getConfigURL(String path, String source)
          Look up a resource path using one of a set of known path resolution mechanisms and return a URL to the resource.
 String getDigesterPath()
           
 String getDigesterSource()
           
protected  URL getFileURL(String path)
          Given a string, return a URL to a Filesystem resource of that name.
 String getKey()
           
 boolean getPush()
           
 String getRulesets()
           
protected  URL getServletContextURL(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(String configPath)
           
 void setConfigSource(String configSource)
          Set the source of the config file.
 void setDigesterPath(String digesterPath)
          The path to a Digester XML configuration file, relative to the digesterSource property.
 void setDigesterSource(String digesterSource)
          The lookup mechanism to be used to resolve digesterPath (optional).
 void setKey(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(String ruleSets)
          A comma-delimited list of one or more classes which implement org.apache.commons.digester.RuleSet.
protected  void storeGeneratedObject(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 String SOURCE_CLASSPATH
See Also:
Constant Field Values

SOURCE_FILE

protected static final String SOURCE_FILE
See Also:
Constant Field Values

SOURCE_SERVLET

protected static final String SOURCE_SERVLET
See Also:
Constant Field Values

configPath

protected String configPath

configSource

protected String configSource

digesterPath

protected String digesterPath

digesterSource

protected String digesterSource

key

protected String key

moduleConfig

protected org.apache.struts.config.ModuleConfig moduleConfig

rulesets

protected 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 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:
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:
getConfigURL(String, String)

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:
configSource

getConfigPath

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

setConfigSource

public void setConfigSource(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 String getConfigSource()
Returns:
the string describing which access method should be used to resolve configPath.
See Also:
configPath

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:
digesterSource, getConfigURL(String, String)

getDigesterPath

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

setDigesterSource

public void setDigesterSource(String digesterSource)

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

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

getDigesterSource

public 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-2008 Apache Software Foundation. All Rights Reserved.