Class XPathXMLFileModule

  extended byorg.apache.cocoon.util.AbstractLogEnabled
      extended byorg.apache.cocoon.components.modules.input.AbstractInputModule
          extended byorg.apache.cocoon.components.modules.input.XPathXMLFileModule
All Implemented Interfaces:
Configurable, Disposable, org.apache.cocoon.components.modules.input.InputModule, Serviceable, ThreadSafe

public class XPathXMLFileModule
extends org.apache.cocoon.components.modules.input.AbstractInputModule
implements Serviceable, ThreadSafe

This module provides an Input Module interface to any XML document, by using XPath expressions as attribute keys. The XML can be obtained from any Cocoon Source (e.g., cocoon:/..., context://.., and regular URLs). Sources can be cached in memory for better performance and reloaded if changed. The source can also contain references to other input modules to allow the source file name to be determined dynamically.

Caching and reloading can be turned on / off (default: caching on, reloading off) through <reloadable>false</reloadable> and <cacheable>false</cacheable>. The file (source) to use is specified through <file src="protocol:path/to/file.xml" reloadable="true" cacheable="true"/> optionally overriding the defaults for caching and/or reloading. When specfied as attributes to the file element the values for cacheable and reloadable may be input module references which will be resolved on every call. These must resolve to 'true' or 'false'. The XML documents will be cached using the Store configured via the cache-role configuration element. If not specified the default Store as specified in this classes ROLE attribute will be used.

In addition, xpath expressions can be cached for higher performance. Thus, if an expression has been evaluated for a file, the result is cached and will be reused, the expression is not evaluated a second time. This can be turned off using the cache-expressions configuration option.

$Id: XPathXMLFileModule.html 1304280 2012-03-23 11:18:01Z ilgrosso $

Field Summary
protected  org.apache.cocoon.components.modules.input.JXPathHelperConfiguration configuration
          Contains all globally registered extension classes and packages.
protected  ServiceManager manager
protected  String parameter
          Overrides attribute name
protected  SourceResolver resolver
static String ROLE
Fields inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule
Constructor Summary
Method Summary
 void configure(Configuration config)
          Static (cocoon.xconf) configuration.
 void dispose()
          Dispose this component
 Object getAttribute(String name, Configuration modeConf, Map objectModel)
 Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
 void service(ServiceManager manager)
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule
Methods inherited from class org.apache.cocoon.util.AbstractLogEnabled
getLogger, setLogger
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


public static final String ROLE


protected org.apache.cocoon.components.modules.input.JXPathHelperConfiguration configuration
Contains all globally registered extension classes and packages. Thus the lookup and loading of globally registered extensions is done only once.


protected String parameter
Overrides attribute name


protected SourceResolver resolver


protected ServiceManager manager
Constructor Detail


public XPathXMLFileModule()
Method Detail


public void service(ServiceManager manager)
             throws ServiceException
Specified by:
service in interface Serviceable


public void configure(Configuration config)
               throws ConfigurationException
Static (cocoon.xconf) configuration. Configuration is expected to be of the form: <...> <reloadable>true|false</reloadable> <cacheable>true|false</cacheable> <cache-role></cache-role> <file src="src"/> ... </...>

The <file/> element specifies a file pattern. Only one <file> can be specified, however it can contain references to input modules which will be resolved each time the module is used. The configured src is used if not overridden via a file parameter in the sitemap.

Specified by:
configure in interface Configurable
config - a Configuration value, as described above.
ConfigurationException - if an error occurs


public void dispose()
Dispose this component

Specified by:
dispose in interface Disposable


public Object getAttribute(String name,
                           Configuration modeConf,
                           Map objectModel)
                    throws ConfigurationException
Specified by:
getAttribute in interface org.apache.cocoon.components.modules.input.InputModule


public Object[] getAttributeValues(String name,
                                   Configuration modeConf,
                                   Map objectModel)
                            throws ConfigurationException
Specified by:
getAttributeValues in interface org.apache.cocoon.components.modules.input.InputModule

Copyright 1999-2008 The Apache Software Foundation. All Rights Reserved.