org.apache.cocoon.components.modules.input
Class XPathXMLFileModule

java.lang.Object
  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.

Version:
$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
settings
 
Constructor Summary
XPathXMLFileModule()
           
 
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
getAttributeNames
 
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

ROLE

public static final String ROLE

configuration

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.


parameter

protected String parameter
Overrides attribute name


resolver

protected SourceResolver resolver

manager

protected ServiceManager manager
Constructor Detail

XPathXMLFileModule

public XPathXMLFileModule()
Method Detail

service

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

configure

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>org.apache.excalibur.store.Store/TransientStore</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
Parameters:
config - a Configuration value, as described above.
Throws:
ConfigurationException - if an error occurs

dispose

public void dispose()
Dispose this component

Specified by:
dispose in interface Disposable

getAttribute

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

getAttributeValues

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


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