org.apache.cocoon.components.modules.input
Class ContextPathModule
java.lang.Object
org.apache.cocoon.util.AbstractLogEnabled
org.apache.cocoon.components.modules.input.AbstractInputModule
org.apache.cocoon.components.modules.input.ContextPathModule
- All Implemented Interfaces:
- Configurable, Disposable, org.apache.cocoon.components.modules.input.InputModule, Serviceable, ThreadSafe
- public class ContextPathModule
- extends org.apache.cocoon.components.modules.input.AbstractInputModule
- implements Serviceable, ThreadSafe
ContextPathModule provides a real filesystem path for a virtual
context-relative path. If this mapping cannot be performed (e.g. Cocoon is
running in a .war file), null
will be returned. Compared to
the RealPathModule
this module is able to provide the "real" absolute
path even if the application is mounted outside the webapp tree of Cocoon.
Note: the primary use for this is to support external code that wants a
filesystem path. For example, The FOP 0.20.x serializer doesn't like
relative image paths, and doesn't understand Cocoon URLs (context:, cocoon:
etc). So we pass the *2fo.xsl stylesheet a real filesystem path to where we
keep our images:
A absolute path argument like {contextpath:/resources} will be resolved
from the root context path (ie. COCOON_HOME/build/webapp) whereas a relative
path attribute like {contextpath:./resources} will be resolved from the
location of the sitemap that uses it. If that sitemap is mounted outside the
usual COCOON_HOME/build/webapp the path resolved with this modules points to
the correct location.
<map:transform src="skins/{forrest:skin}/xslt/fo/document2fo.xsl">
<map:parameter name="basedir" value="{contextpath:resources}/"/>
</map:transform>
And then prepend this to all image paths:
...
<xsl:param name="basedir" select="''"/>
...
<xsl:template match="img">
<xsl:variable name="imgpath" select="concat($basedir, @src)"/>
<fo:external-graphic src="{$imgpath}" ...
...
</xsl:template>
- Version:
- $Id: ContextPathModule.html 1304280 2012-03-23 11:18:01Z ilgrosso $
Fields inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule |
settings |
Fields inherited from interface org.apache.cocoon.components.modules.input.InputModule |
ROLE |
Methods inherited from class org.apache.cocoon.components.modules.input.AbstractInputModule |
configure |
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 |
ContextPathModule
public ContextPathModule()
service
public void service(ServiceManager manager)
throws ServiceException
- (non-Javadoc)
* @see Serviceable#service(ServiceManager)
- Specified by:
service
in interface Serviceable
- Throws:
ServiceException
dispose
public void dispose()
- (non-Javadoc)
- Specified by:
dispose
in interface Disposable
- See Also:
Disposable.dispose()
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
getAttributeNames
public Iterator getAttributeNames(Configuration modeConf,
Map objectModel)
throws ConfigurationException
- Specified by:
getAttributeNames
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.