Class ChainListener
- All Implemented Interfaces:
EventListener
,javax.servlet.ServletContextListener
ServletContextListener
that automatically
scans chain configuration files in the current web application at
startup time, and exposes the result in a Catalog
under a
specified servlet context attribute. The following context init
parameters are utilized:
- org.apache.commons.chain.CONFIG_CLASS_RESOURCE -
comma-delimited list of chain configuration resources to be loaded
via
ClassLoader.getResource()
calls. If not specified, no class loader resources will be loaded. - org.apache.commons.chain.CONFIG_WEB_RESOURCE - comma-delimited list of chain configuration webapp resources to be loaded. If not specified, no web application resources will be loaded.
- org.apache.commons.chain.CONFIG_ATTR -
Name of the servlet context attribute under which the
resulting
Catalog
will be created or updated. If not specified, it is expected that parsed resources will contain<catalog>
elements (which will cause registration of the createdCatalog
s into theCatalogFactory
for this application, and no servet context attribute will be created. NOTE - This parameter is deprecated. - org.apache.commons.chain.RULE_SET -
Fully qualified class name of a Digester
RuleSet
implementation to use for parsing configuration resources (this class must have a public zero-args constructor). If not defined, the standardRuleSet
implementation will be used.
When a web application that has configured this listener is
started, it will acquire the Catalog
under the specified servlet
context attribute key, creating a new one if there is none already there.
This Catalog
will then be populated by scanning configuration
resources from the following sources (loaded in this order):
- Resources loaded from any
META-INF/chain-config.xml
resource found in a JAR file in/WEB-INF/lib
. - Resources loaded from specified resource paths from the
webapp's class loader (via
ClassLoader.getResource()
). - Resources loaded from specified resource paths in the web application
archive (via
ServetContext.getResource()
).
If no attribute key is specified, on the other hand, parsed configuration
resources are expected to contain <catalog>
elements,
and the catalogs will be registered with the CatalogFactory
for this web application.
This class requires Servlet 2.3 or later. If you are running on
Servlet 2.2 system, consider using ChainServlet
instead.
Note that ChainServlet
uses parameters of the
same names, but they are servlet init parameters instead
of context init parameters. Because of this, you can use
both facilities in the same application, if desired.
- Version:
- $Revision: 658426 $ $Date: 2008-05-20 21:55:38 +0100 (Tue, 20 May 2008) $
- Author:
- Craig R. McClanahan, Ted Husted
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
The name of the context init parameter containing the name of the servlet context attribute under which our resultingCatalog
will be stored.static final String
The name of the context init parameter containing a comma-delimited list of class loader resources to be scanned.static final String
The name of the context init parameter containing a comma-delimited list of web applicaton resources to be scanned.static final String
The name of the context init parameter containing the fully qualified class name of theRuleSet
implementation for configuring ourConfigParser
. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
contextDestroyed
(javax.servlet.ServletContextEvent event) Remove the configuredCatalog
from the servlet context attributes for this web application.void
contextInitialized
(javax.servlet.ServletContextEvent event) Scan the required chain configuration resources, assemble the configured chains into aCatalog
, and expose it as a servlet context attribute under the specified key.private void
parseJarResources
(javax.servlet.ServletContext context, ConfigParser parser, org.apache.commons.logging.Log log) Parse resources found in JAR files in the/WEB-INF/lib
subdirectory (if any).private void
parseJarResources
(Catalog catalog, javax.servlet.ServletContext context, ConfigParser parser, org.apache.commons.logging.Log log) Deprecated.Use the variant that does not take a catalog, on a configuration resource containing "catalog" element(s)private String
Translate space character into&pct;20
to avoid problems with paths that contain spaces on some JVMs.
-
Field Details
-
CONFIG_ATTR
The name of the context init parameter containing the name of the servlet context attribute under which our resulting
Catalog
will be stored.- See Also:
-
CONFIG_CLASS_RESOURCE
The name of the context init parameter containing a comma-delimited list of class loader resources to be scanned.
- See Also:
-
CONFIG_WEB_RESOURCE
The name of the context init parameter containing a comma-delimited list of web applicaton resources to be scanned.
- See Also:
-
RULE_SET
The name of the context init parameter containing the fully qualified class name of the
RuleSet
implementation for configuring ourConfigParser
.- See Also:
-
-
Constructor Details
-
ChainListener
public ChainListener()
-
-
Method Details
-
contextDestroyed
public void contextDestroyed(javax.servlet.ServletContextEvent event) Remove the configured
Catalog
from the servlet context attributes for this web application.- Specified by:
contextDestroyed
in interfacejavax.servlet.ServletContextListener
- Parameters:
event
-ServletContextEvent
to be processed
-
contextInitialized
public void contextInitialized(javax.servlet.ServletContextEvent event) Scan the required chain configuration resources, assemble the configured chains into a
Catalog
, and expose it as a servlet context attribute under the specified key.- Specified by:
contextInitialized
in interfacejavax.servlet.ServletContextListener
- Parameters:
event
-ServletContextEvent
to be processed
-
parseJarResources
private void parseJarResources(javax.servlet.ServletContext context, ConfigParser parser, org.apache.commons.logging.Log log) Parse resources found in JAR files in the
/WEB-INF/lib
subdirectory (if any).- Parameters:
context
-ServletContext
for this web applicationparser
-ConfigParser
to use for parsing
-
parseJarResources
private void parseJarResources(Catalog catalog, javax.servlet.ServletContext context, ConfigParser parser, org.apache.commons.logging.Log log) Deprecated.Use the variant that does not take a catalog, on a configuration resource containing "catalog" element(s)Parse resources found in JAR files in the
/WEB-INF/lib
subdirectory (if any).- Parameters:
catalog
-Catalog
we are populatingcontext
-ServletContext
for this web applicationparser
-ConfigParser
to use for parsing
-
translate
Translate space character into
&pct;20
to avoid problems with paths that contain spaces on some JVMs.- Parameters:
value
- Value to translate
-