blob: 1b849ea38dbef8c3431325de3ab8147890e3cff3 [file]
<?xml version="1.0" encoding="UTF-8"?>
<cocoon version="2.0">
<!-- ================ Apache Cocoon configuration file ================== -->
<!-- For full description of the components and their parameters ...
- Apache Cocoon User Documentation at /userdocs/
- webapp/cocoon.xconf (this file) - describes each core component
- each optional component/.../*.xconf - these describe the parameters
for each component and are automatically included at build-time.
The notes that accompany the settings below are intended to be concise.
-->
<!-- ===================== General Components =========================== -->
<xml-parser class="org.apache.avalon.excalibur.xml.JaxpParser"
logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
<!-- Parser:
The default parser used in Apache Cocoon is
org.apache.avalon.excalibur.xml.JaxpParser. Apache Cocoon requires a
JAXP 1.1 parser.
If you have problems because your servlet environment uses its own
parser not conforming to JAXP 1.1 try using the alternative
XercesParser instead of the JaxpParser. To activate the XercesParser,
change the class attribute to
class="org.apache.avalon.excalibur.xml.XercesParser"
You will also need to add a system property to your JVM,
probably on the startup of your servlet engine like this:
-Dorg.apache.avalon.excalibur.xml.Parser=org.apache.avalon.excalibur.xml.XercesParser
Configuration for the JaxpParser (not the XercesParser!):
- validate (boolean, default = false): This parameter causes the parser
to be a validating parser.
XML validation is only being used for the documentation build.
(If you are going to use it elsewhere, then do so with caution.)
You really should have validated all of your XML documents already,
according to their proper DTD or schema. Do not expect Cocoon to do it.
- namespace-prefixes (boolean, default = false) : do we want
namespaces declarations also as 'xmlns:' attributes ?
Note : setting this to true confuses some XSL processors (e.g. Saxon).
- stop-on-warning (boolean, default = true) : should the parser
stop parsing if a warning occurs ?
- stop-on-recoverable-error (boolean, default = true) : should the parser
stop parsing if a recoverable error occurs ?
- reuse-parsers (boolean, default = true) : do we want to reuse
parsers or create a new parser for each parse ?
Note : even if this parameter is true, parsers are not
recycled in case of parsing errors : some parsers (e.g. Xerces) don't like
to be reused after failure.
- sax-parser-factory (string) : the name of the SAXParserFactory
implementation class to be used instead of using the standard JAXP mechanism
(SAXParserFactory.newInstance()). This allows to choose
unambiguously the JAXP implementation to be used when several of them are
available in the classpath.
- document-builder-factory (string) : the name of the
DocumentBuilderFactory implementation to be used (similar to
sax-parser-factory for DOM).
-->
<parameter name="validate" value="false"/>
<parameter name="namespace-prefixes" value="false"/>
<parameter name="stop-on-warning" value="true"/>
<parameter name="stop-on-recoverable-error" value="true"/>
<parameter name="reuse-parsers" value="false"/>
<!--
<parameter name="sax-parser-factory" value="???"/>
<parameter name="document-builder-factory" value="???"/>
-->
</xml-parser>
<!-- ============================ STORE ============================ -->
<!-- Persistent store for the cache. Two store implementations to choose
from:
* FilesystemStore: Simple. Dependable. Thorougly tested.
* JispFilesystemStore: Scalable. New kid on the block.
Common configuration parameters:
use-cache-directory: Indicates that cache directory specified in
web.xml should be used.
use-work-directory: Indicates that work directory specified in
web.xml should be used.
directory: Specifies directory to use. Absolute or relative to the
work directory.
-->
<persistent-store class="org.apache.cocoon.components.store.JispFilesystemStore"
logger="core.store.persistent">
<parameter name="use-cache-directory" value="true"/>
<parameter name="datafile" value="cocoon-cache.dat"/>
<parameter name="indexfile" value="cocoon-cache.idx"/>
<parameter name="order" value="1701"/>
</persistent-store>
<!-- Memory Storing: -->
<transient-store logger="core.store.transient">
<!-- Indicates how many objects will be hold in the cache.
When the number of maxobjects has been reached. The last object in the
cache will be thrown out. -->
<parameter name="maxobjects" value="100"/>
<!-- Turns the swapping of the objects into persistent cache on
and off. -->
<parameter name="use-persistent-cache" value="true"/>
</transient-store>
<!-- Store Janitor:
Be careful with the heapsize and freememory parameters. Wrong values can
cause high cpu usage. Example configuration:
Jvm settings:
-Xmx200000000
store-janitor settings:
<parameter name="freememory" value="5000000"/>
<parameter name="heapsize" value="150000000"/>
It is recommended to have heapsize equal to -Xmx, especially
on Sun's JVM which are unable to shrink its heap once it grows above minimum.
Freememory should be greater than amount of memory necessary for normal
application operation.
-->
<store-janitor logger="core.store.janitor">
<!-- How much free memory shall be available in the jvm -->
<parameter name="freememory" value="1000000"/>
<!-- Indicates the limit of the jvm memory consumption. The default max
heapsize for Sun's JVM is 64Mb -->
<parameter name="heapsize" value="67108864"/>
<!-- How often shall the cleanup thread check memory -->
<parameter name="cleanupthreadinterval" value="10"/>
<!-- Indicates the thread priority of the cleanup thread -->
<parameter name="threadpriority" value="5"/>
<!-- How much percent of the elements of each registered Store shall
be removed when low on memory. Default 10% -->
<parameter name="percent_to_free" value="10"/>
</store-janitor>
<!-- ============================ STORE END ========================= -->
<!-- XSLT Processor:
For Xalan: Turn 'incremental-processing' to true if you want a continous output
(if set to false the transformer delivers SAX events after all transformations has been done).
-->
<xslt-processor logger="core.xslt-processor">
<parameter name="use-store" value="false"/>
<parameter name="incremental-processing" value="true"/>
</xslt-processor>
<!-- Xpath Processor:
-->
<xpath-processor class="org.apache.avalon.excalibur.xml.xpath.XPathProcessorImpl" logger="core.xpath-processor"/>
<!-- URL Factory:
The url factory adds special url protocols to the system, they are then
available inside Cocoon, e.g. as a source argument for one of the sitemap
components.
THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
-->
<url-factory logger="core.url-factory">
<!-- Allows access to resources available from the ClassLoader,
using getResource() method. -->
<protocol class="org.apache.cocoon.components.url.ResourceURLFactory" name="resource"/>
<!-- Allows access to resources available from the servlet context,
using getResource() method. -->
<protocol class="org.apache.cocoon.components.url.ContextURLFactory" name="context"/>
<!-- Add here protocol factories for your own protocols -->
</url-factory>
<!-- Source Handler:
The source handler adds special url protocols to the system, they are
then available inside Cocoon, e.g. as a source argument for one of the
sitemap components.
THIS COMPONENT IS DEPRECATED AND SHOULD NOT BE USED ANYMORE
-->
<source-handler logger="core.source-handler">
<!-- file protocol : this is a WriteableSource -->
<protocol class="org.apache.cocoon.components.source.FileSourceFactory" name="file"/>
</source-handler>
<!-- Source Factories
Each source factory adds a special uri protocol to the system.
This will replace the source-handler and url-factory components.
-->
<source-factories>
<component-instance class="org.apache.excalibur.source.impl.ResourceSourceFactory" name="resource"/>
<component-instance class="org.apache.cocoon.components.source.impl.ContextSourceFactory" name="context"/>
<component-instance class="org.apache.cocoon.components.source.impl.SitemapSourceFactory" name="cocoon"/>
<!-- file protocol : this is a WriteableSource -->
<component-instance class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"/>
</source-factories>
<!-- The XMLizer converts different mime-types to XML -->
<xmlizer>
<component-instance class="org.apache.excalibur.xmlizer.impl.TextXMLizer" name="text/xml"/>
<component-instance class="org.apache.excalibur.xmlizer.impl.HTMLXMLizer" name="text/html"/>
</xmlizer>
<!-- Program Generator:
The ProgamGenerator builds programs from a XML document written in a
MarkupLanguage.
auto-reload:
root-package: persistent code repository.
preload:
-->
<program-generator logger="core.program-generator">
<parameter name="auto-reload" value="true"/>
<parameter name="root-package" value="org.apache.cocoon.www"/>
<parameter name="preload" value="true"/>
</program-generator>
<!-- Programming Languages: -->
<programming-languages>
<java-language logger="core.language.java" name="java">
<!-- Specifies which formatter to use to format source code.
This parameter is optional.
It is commented out because of bug #5689: Java "code-formatter" incorrectly formats double values
<parameter name="code-formatter" value="org.apache.cocoon.components.language.programming.java.JstyleFormatter"/>
-->
<!-- A singleton-like implementation of a ClassLoader -->
<parameter name="class-loader" value="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl"/>
<!-- Compiler parameter specifies which class to use to compile Java.
Possible variants are:
Javac. Requires javac.jar (included with JDK as lib/toools.jar).
Pizza. Requires pizza.jar (included with Cocoon distribution).
Jikes. Requires IBM jikes compiler to be present in the PATH -->
<parameter name="compiler" value="org.apache.cocoon.components.language.programming.java.Javac"/>
</java-language>
</programming-languages>
<!-- Class loader:
A singleton-like implementation of a ClassLoader.
-->
<classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl" logger="core.classloader"/>
<!-- Markup Languages:
This section defines several builtin logicsheets. A logicsheet is an XML
filter used to translate user-defined, dynamic markup into equivalent
code embedding directives for a given markup language.
-->
<markup-languages>
<xsp-language logger="core.markup.xsp" name="xsp">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
<target-language name="java">
<!-- Defines the XSP Core logicsheet for the Java language -->
<parameter name="core-logicsheet" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl"/>
<!-- The Request logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard request operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-request"/>
<parameter name="uri" value="http://apache.org/xsp/request/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/request.xsl"/>
</builtin-logicsheet>
<!-- The Response logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard response operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-response"/>
<parameter name="uri" value="http://apache.org/xsp/response/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/response.xsl"/>
</builtin-logicsheet>
<!-- The Session logicsheet (taglib) is an XSP logicsheet that wraps XML tags around
standard session operations. Specifically, the Session logicsheet provides an
XML interface to most methods of the HttpSession object (see the Java Servlet API
Specification, version 2.2 ) for more information. -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-session"/>
<parameter name="uri" value="http://apache.org/xsp/session/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/session.xsl"/>
</builtin-logicsheet>
<!-- The Cookie logicsheet (taglib) is an XSP logicsheet that wraps XML tags
around standard cookie operations -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-cookie"/>
<parameter name="uri" value="http://apache.org/xsp/cookie/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/cookie.xsl"/>
</builtin-logicsheet>
<!-- The ESQL logicsheet is an XSP logicsheet that performs sql queries and
serializes their results as XML. This allows you to work with data from a
wide variety of different sources when using Apache Cocoon. -->
<builtin-logicsheet>
<parameter name="prefix" value="esql"/>
<parameter name="uri" value="http://apache.org/cocoon/SQL/v2"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/esql.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="log"/>
<parameter name="uri" value="http://apache.org/xsp/log/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/log.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="util"/>
<parameter name="uri" value="http://apache.org/xsp/util/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/util.xsl"/>
</builtin-logicsheet>
<!-- The xsp-formval taglib serves as interface to retrieve validation results
from a request attribute -->
<builtin-logicsheet>
<parameter name="prefix" value="xsp-formval"/>
<parameter name="uri" value="http://apache.org/xsp/form-validator/2.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/form-validator.xsl"/>
</builtin-logicsheet>
<!-- The sel taglib allows to put multiple pages / view into
one xsp. While in general it is good style to put
different views into different xsp because they're more
easily maintained, this is a useful feature with
e.g. with long forms that are broken into parts -->
<builtin-logicsheet>
<parameter name="prefix" value="sel"/>
<parameter name="uri" value="http://apache.org/xsp/sel/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/sel.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="action"/>
<parameter name="uri" value="http://apache.org/cocoon/action/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/action.xsl"/>
</builtin-logicsheet>
<!-- The capture taglib is for capturing parts of the XSP-generated XML as
XML fragments or DOM nodes -->
<builtin-logicsheet>
<parameter name="prefix" value="capture"/>
<parameter name="uri" value="http://apache.org/cocoon/capture/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/capture.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="xscript"/>
<parameter name="uri" value="http://apache.org/xsp/xscript/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/xscript.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="soap"/>
<parameter name="uri" value="http://apache.org/xsp/soap/3.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/soap.xsl"/>
</builtin-logicsheet>
<builtin-logicsheet>
<parameter name="prefix" value="jpath"/>
<parameter name="uri" value="http://apache.org/xsp/jpath/1.0"/>
<parameter name="href" value="resource://org/apache/cocoon/components/language/markup/xsp/java/jpath.xsl"/>
</builtin-logicsheet>
</target-language>
</xsp-language>
</markup-languages>
<!-- Compiling xml to byte streams.
The xml-serializer "compiles" xml sax events into a byte stream
and the xml-deserializer does the same vice versa.
Make sure, that if you change one of these components, that you
may have to change the other one as well, as they might have
a dependency.
-->
<xml-serializer class="org.apache.cocoon.components.sax.XMLByteStreamCompiler" logger="core.xml-serializer" pool-grow="4" pool-max="32" pool-min="8"/>
<xml-deserializer class="org.apache.cocoon.components.sax.XMLByteStreamInterpreter" logger="core.xml-deserializer" pool-grow="4" pool-max="32" pool-min="8"/>
<!-- ======================== The sitemap ============================== -->
<!--
New implementation of the sitemap. It is interpreted, so load times are super-fast,
and request processing is slightly faster than with the compiled engine thanks to
the HotSpot VM.
Reloading of the sitemap:
The check-reload attribute determines if the sitemap is reloaded on change.
Set to "no", the sitemap is generated once at startup.
Set to "yes", the sitemap is regenerated if it changes.
For development environment, set the check-reload to yes.
For production environment, it is advisable to set the check-reload to no.
-->
<sitemap check-reload="yes" config="resource://org/apache/cocoon/components/treeprocessor/treeprocessor-builtins.xml" file="context://sitemap.xmap" logger="sitemap"/>
<!-- Entity resolution catalogs: *********************************************
catalog:
The default catalog is distributed at /WEB-INF/entities/catalog
This is the contextual pathname for Cocoon resources.
You can override this path, if necessary, using the "catalog" parameter.
<parameter name="catalog" value="/WEB-INF/entities/catalog"/>
However, it is probably desirable to leave this default catalog config
and declare your own local catalogs, which are loaded in addition to
the system catalog.
There are various ways to do local configuration (see "Entity Catalogs"
documentation). One way is via the CatalogManager.properties file.
As an additional method, you can specify the "local-catalog" parameter here.
local-catalog:
The full filesystem pathname to a single local catalog file.
<parameter name="local-catalog" value="/usr/local/sgml/mycatalog"/>
verbosity:
The level of messages for status/debug (messages go to standard output)
The following messages are provided ...
0 = none
1 = ? (... not sure yet)
2 = 1+, Loading catalog, Resolved public, Resolved system
3 = 2+, Catalog does not exist, resolvePublic, resolveSystem
10 = 3+, List all catalog entries when loading a catalog
(Cocoon also logs the "Resolved public" messages.)
TODO: determine all messages at each level
<parameter name="verbosity" value="2"/>
************************************************************************** -->
<entity-resolver class="org.apache.cocoon.components.resolver.ResolverImpl" logger="core.resolver">
<parameter name="catalog" value="/resources/schema/catalog"/>
<parameter name="local-catalog" value="@local-catalog@"/>
<parameter name="verbosity" value="@catalog-verbosity@"/>
</entity-resolver>
<!-- =============== Sitemap In/Out/Database Modules ==================== -->
<input-modules logger="core.modules.input">
<component-instance name="global" class="org.apache.cocoon.components.modules.input.GlobalInputModule"/>
<component-instance name="request" class="org.apache.cocoon.components.modules.input.RequestModule"/>
<component-instance name="session" class="org.apache.cocoon.components.modules.input.SessionModule"/>
<component-instance name="request-param" class="org.apache.cocoon.components.modules.input.RequestParameterModule"/>
<component-instance name="request-attr" class="org.apache.cocoon.components.modules.input.RequestAttributeModule"/>
<component-instance name="request-header" class="org.apache.cocoon.components.modules.input.HeaderAttributeModule"/>
<component-instance name="session-attr" class="org.apache.cocoon.components.modules.input.SessionAttributeModule"/>
<component-instance name="system-property" class="org.apache.cocoon.components.modules.input.SystemPropertyModule"/>
<component-instance name="constant" class="org.apache.cocoon.components.modules.input.StringConstantModule"/>
<component-instance name="random" class="org.apache.cocoon.components.modules.input.RandomNumberModule"/>
<component-instance name="digest" class="org.apache.cocoon.components.modules.input.DigestMetaModule"/>
<component-instance name="date" class="org.apache.cocoon.components.modules.input.DateInputModule"/>
<component-instance name="nullinput" class="org.apache.cocoon.components.modules.input.NullInputModule"/>
<component-instance name="xmlmeta" class="org.apache.cocoon.components.modules.input.XMLMetaModule"/>
<component-instance name="mapmeta" class="org.apache.cocoon.components.modules.input.MapMetaModule"/>
<component-instance name="defaults" class="org.apache.cocoon.components.modules.input.DefaultsMetaModule">
<values>
<skin>@skin@</skin>
<base-url>/forrest</base-url>
</values>
</component-instance>
<component-instance logger="core.modules.input" name="forrest" class="org.apache.cocoon.components.modules.input.ChainMetaModule">
<input-module name="request-param"/>
<input-module name="request-attr"/>
<input-module name="session-attr"/>
<input-module name="defaults"/>
</component-instance>
<!-- For the site: scheme -->
<component-instance
class="org.apache.cocoon.components.modules.input.XMLFileModule"
logger="core.modules.xml" name="linkmap">
<file src="cocoon:/linkmap"/>
<!-- Shouldn't this be the default? -->
<reloadable>true</reloadable>
</component-instance>
<!-- Links to URIs within the site -->
<component-instance
class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"
logger="core.modules.mapper" name="site">
<input-module name="linkmap"/>
<prefix>/site//</prefix>
<suffix>/@href</suffix>
</component-instance>
<!-- Links to external URIs, as distinct from 'site' URIs -->
<component-instance
class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"
logger="core.modules.mapper" name="ext">
<input-module name="linkmap"/>
<prefix>/site/external-refs//</prefix>
<suffix>/@href</suffix>
</component-instance>
<!--
For backwards-compat: interpret {context:context} as
{request:contextPath}
-->
<component-instance
class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule"
logger="core.modules.mapper" name="context">
<input-module name="request"/>
<suffix>Path</suffix>
</component-instance>
</input-modules>
<output-modules>
<component-instance logger="core.modules.output" name="request-attr" class="org.apache.cocoon.components.modules.output.RequestAttributeOutputModule"/>
<component-instance logger="core.modules.output" name="session-attr" class="org.apache.cocoon.components.modules.output.SessionAttributeOutputModule"/>
</output-modules>
</cocoon>