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

java.lang.Object
  extended by org.apache.avalon.framework.logger.AbstractLogEnabled
      extended by org.apache.cocoon.components.modules.input.AbstractInputModule
          extended by org.apache.cocoon.components.modules.input.XPathXMLFileModule
All Implemented Interfaces:
Disposable, Component, Configurable, LogEnabled, Serviceable, ThreadSafe, InputModule

public class XPathXMLFileModule
extends 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 1304258 2012-03-23 10:09:27Z ilgrosso $

Field Summary
protected  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)
          Standard access to an attribute's value.
 Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
          Returns an array of String objects containing all of the values the given attribute has, or null if the attribute does not exist.
 void service(ServiceManager manager)
           
 
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule
getAttributeNames
 
Methods inherited from class org.apache.avalon.framework.logger.AbstractLogEnabled
enableLogging, getLogger, setupLogger, setupLogger, setupLogger
 
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 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
Overrides:
configure in class AbstractInputModule
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
Overrides:
dispose in class AbstractInputModule

getAttribute

public Object getAttribute(String name,
                           Configuration modeConf,
                           Map objectModel)
                    throws ConfigurationException
Description copied from interface: InputModule
Standard access to an attribute's value. If more than one value exists, the first is returned. If the value does not exist, null is returned. To get all values, use InputModule.getAttributeValues(String, Configuration, Map) or InputModule.getAttributeNames(Configuration, Map) and InputModule.getAttribute(String, Configuration, Map) to get them one by one.

Specified by:
getAttribute in interface InputModule
Overrides:
getAttribute in class AbstractInputModule
Parameters:
name - a String that specifies what the caller thinks would identify an attribute. This is mainly a fallback if no modeConf is present.
modeConf - column's mode configuration from resource description. This argument is optional.
Throws:
ConfigurationException

getAttributeValues

public Object[] getAttributeValues(String name,
                                   Configuration modeConf,
                                   Map objectModel)
                            throws ConfigurationException
Description copied from interface: InputModule
Returns an array of String objects containing all of the values the given attribute has, or null if the attribute does not exist. As an alternative, InputModule.getAttributeNames(Configuration, Map) together with InputModule.getAttribute(String, Configuration, Map) can be used to get the values one by one.

Specified by:
getAttributeValues in interface InputModule
Overrides:
getAttributeValues in class AbstractInputModule
Parameters:
name - a String that specifies what the caller thinks would identify an attributes. This is mainly a fallback if no modeConf is present.
modeConf - column's mode configuration from resource description. This argument is optional.
Throws:
ConfigurationException


Copyright © 1999-2010 The Apache Software Foundation. All Rights Reserved.