blob: 625a6d5961a1e2b931fe5699ec6622f6360278e0 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright 1999-2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- $Id: global-sitemap.xmap,v 1.64 2004/04/28 16:20:40 andreas Exp $ -->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!--+
| This is the 'heart' of Cocoon. The sitemap maps URI space to
| resources. It consists basicaly of two parts: components and
| pipelines. Pipelines are made out of components. There is such a
| vast number of components available that it would be impossible to
| describe them here, please refer to the accompanying
| documentation. For specific components, have a look also at the
| javadocs for them. Most pipelines are present to demonstrate some
| feature or technique, often they are explained in more detail in
| the accompanying documentation.
+-->
<!-- =========================== Components ================================ -->
<map:components>
<!--+
| All pipelines consist at least of two components: a generator, that
| produces the content, and a serialiser, that delivers the content to
| the client.
|
| More precisely: a generator generates SAX events and a serializer
| consumes these events and produces a byte stream.
|
| Some things to note here: each generator has a unique name, this
| name is mapped to a java class, one name is declared as default
| generator. In addition each generator may have additional
| configurations as child elements.
|
| Additional attributes are targeted at the component manager. The optional
| "label" attribute is relevant for the view concept below. The optional
| "logger" attribute defines the logging category where messages produced
| by a component should go. If there's no "logger" attribute, the category
| used is the one defined for the "sitemap" component in cocoon.xconf.
|
| We have chosen in this sitemap to use a different logging category
| for each component, which allows fine-grained classification of log
| messages. But you are free to use any category you want.
|
| It is possible to have the same java class declared as different
| generators by using different names. No configuration options are
| shared between these instances, however.
|
| All components follow this schema.
+-->
<map:generators default="file">
<map:generator name="file" label="content,data" logger="sitemap.generator.file" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.generation.FileGenerator"/>
<map:generator name="file-nolabel" label="content,data" logger="sitemap.generator.file-nolabel" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.generation.FileGenerator"/>
<map:generator name="serverpages" label="content,data" logger="sitemap.generator.serverpages" pool-grow="2" pool-max="32" pool-min="4" src="org.apache.cocoon.generation.ServerPagesGenerator"/>
<map:generator name="directory" label="content,data" logger="sitemap.generator.directory" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.DirectoryGenerator"/>
<map:generator name="xpathdirectory" label="content" logger="sitemap.generator.xpathdirectory" src="org.apache.cocoon.generation.XPathDirectoryGenerator"/>
<map:generator name="imagedirectory" label="content,data" logger="sitemap.generator.imagedirectory" src="org.apache.cocoon.generation.ImageDirectoryGenerator"/>
<map:generator name="request" label="data" logger="sitemap.generator.request" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.RequestGenerator"/>
<map:generator name="stream" label="content,data" logger="sitemap.generator.stream" pool-grow="2" pool-max="16" pool-min="1" src="org.apache.cocoon.generation.StreamGenerator"/>
<map:generator name="status" label="data" logger="sitemap.generator.status" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.generation.StatusGenerator"/>
<map:generator name="extractor" label="data" logger="sitemap.generator.extractor" src="org.apache.cocoon.generation.FragmentExtractorGenerator"/>
<map:generator name="html" label="content,data" src="org.apache.cocoon.generation.HTMLGenerator"/>
<map:generator name="proxy" label="content,data" logger="sitemap.generator.proxy" src="org.apache.cocoon.generation.HttpProxyGenerator"/>
<map:generator name="notifying" src="org.apache.cocoon.sitemap.NotifyingGenerator"/>
<map:generator name="servletproxy" src="org.apache.lenya.cms.cocoon.generation.ProxyGenerator"/>
</map:generators>
<!--+
| Transformers can be placed inside the pipeline between the generator
| and the serializer. You may have as many transformers as you
| like. Transformers consume SAX events and emmit SAX events.
|
| The "xslt" transformer is an example of a component with additional
| configuration.
+-->
<map:transformers default="xslt">
<map:transformer name="xlink" src="org.apache.lenya.cms.cocoon.transformation.IncludeTransformer">
<publication type=""/>
</map:transformer>
<!-- NOTE: XSLTC is now the default processor. If you use Xalan extensions, use the "xalan" transformer. -->
<map:transformer name="xslt" logger="sitemap.transformer.xslt" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer">
<use-request-parameters>false</use-request-parameters>
<use-session-parameters>false</use-session-parameters>
<use-cookie-parameters>false</use-cookie-parameters>
<transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory>
</map:transformer>
<map:transformer name="deli" logger="sitemap.transformer.deli" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.DeliTransformer">
<use-request-parameters>false</use-request-parameters>
<use-session-parameters>false</use-session-parameters>
<use-cookie-parameters>false</use-cookie-parameters>
<xslt-processor-role>xalan</xslt-processor-role>
</map:transformer>
<!-- NOTE: This used to be the default XSLT processor. The default now is XSLTC -->
<map:transformer name="xalan" logger="sitemap.transformer.xalan" pool-grow="2" pool-max="32" pool-min="8" src="org.apache.cocoon.transformation.TraxTransformer">
<use-request-parameters>false</use-request-parameters>
<use-session-parameters>false</use-session-parameters>
<use-cookie-parameters>false</use-cookie-parameters>
<transformer-factory>org.apache.xalan.processor.TransformerFactoryImpl</transformer-factory>
</map:transformer>
<map:transformer name="cinclude" logger="sitemap.transformer.cinclude" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.transformation.CIncludeTransformer"/>
<map:transformer name="encodeURL" logger="sitemap.transformer.encodeURL" src="org.apache.cocoon.transformation.EncodeURLTransformer"/>
<map:transformer name="write-source" logger="sitemap.transformer.write-source" src="org.apache.cocoon.transformation.SourceWritingTransformer"/>
<map:transformer name="jpath" logger="sitemap.transformer.jpath" src="org.apache.cocoon.transformation.JPathTransformer"/>
<map:transformer name="filter" logger="sitemap.transformer.filter" src="org.apache.cocoon.transformation.FilterTransformer"/>
<map:transformer name="writeDOMsession" logger="sitemap.transformer.writeDOMsession" src="org.apache.cocoon.transformation.WriteDOMSessionTransformer"/>
<map:transformer name="readDOMsession" logger="sitemap.transformer.readDOMsession" src="org.apache.cocoon.transformation.ReadDOMSessionTransformer"/>
<map:transformer name="log" logger="sitemap.transformer.log" pool-grow="2" pool-max="16" pool-min="2" src="org.apache.cocoon.transformation.LogTransformer"/>
<map:transformer name="extractor" logger="sitemap.transformer.extractor" src="org.apache.cocoon.transformation.FragmentExtractorTransformer"/>
<map:transformer name="lexer" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.LexicalTransformer"/>
<map:transformer name="parser" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.ParserTransformer"/>
<map:transformer name="pattern" logger="sitemap.transformer.lexer" src="org.apache.cocoon.transformation.PatternTransformer"/>
<map:transformer name="session" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionTransformer"/>
<map:transformer name="session-pre" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionPreTransformer"/>
<map:transformer name="session-post" pool-grow="4" pool-max="32" pool-min="8" src="org.apache.cocoon.webapps.session.transformation.SessionPostTransformer"/>
<map:transformer name="workflowmenu" logger="lenya.sitemap.transformer.workflowmenu" src="org.apache.lenya.cms.cocoon.transformation.WorkflowMenuTransformer"/>
<map:transformer name="usecasemenu" logger="lenya.sitemap.transformer.usecasemenu" src="org.apache.lenya.cms.cocoon.transformation.UsecaseMenuTransformer"/>
<map:transformer name="access-control-sitetree" logger="lenya.sitemap.transformer.accesscontrolsitetree" src="org.apache.lenya.cms.cocoon.transformation.AccessControlSitetreeTransformer"/>
<map:transformer name="index" logger="lenya.sitemap.transformer.index" src="org.apache.lenya.cms.cocoon.transformation.DocumentIndexTransformer"/>
<map:transformer name="link-rewrite" logger="lenya.sitemap.transformer.link-rewrite" src="org.apache.lenya.cms.cocoon.transformation.SimpleLinkRewritingTransformer"/>
<map:transformer name="sql" logger="sitemap.transformer.sql" src="org.apache.cocoon.transformation.SQLTransformer"/>
<map:transformer name="ldap" src="org.apache.cocoon.transformation.LDAPTransformer"/>
</map:transformers>
<!--+
| Serializers consume SAX events and produce a character stream. Every
| pipeline needs to be terminated by a serializer.
+-->
<map:serializers default="html">
<map:serializer name="links" logger="sitemap.serializer.links" src="org.apache.cocoon.serialization.LinkSerializer"/>
<map:serializer name="xml" logger="sitemap.serializer.xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer"/>
<map:serializer name="html" logger="sitemap.serializer.html" mime-type="text/html" pool-grow="4" pool-max="32" pool-min="4" src="org.apache.cocoon.serialization.HTMLSerializer">
<doctype-public>-//W3C//DTD HTML 4.01 Transitional//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/html4/loose.dtd</doctype-system>
<encoding>UTF-8</encoding>
<buffer-size>1024</buffer-size>
</map:serializer>
<map:serializer name="wml" logger="sitemap.serializer.wml" mime-type="text/vnd.wap.wml" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
<doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
<encoding>ASCII</encoding>
<omit-xml-declaration>yes</omit-xml-declaration>
</map:serializer>
<map:serializer name="svgxml" logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
</map:serializer>
<map:serializer name="xhtml" logger="sitemap.serializer.xhtml" mime-type="text/html" pool-grow="2" pool-max="64" pool-min="2" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD XHTML 1.0 Strict//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</doctype-system>
<encoding>UTF-8</encoding>
</map:serializer>
<map:serializer name="text" logger="sitemap.serializer.text" mime-type="text/plain" src="org.apache.cocoon.serialization.TextSerializer"/>
<map:serializer name="fo2pdf" logger="sitemap.serializer.fo2pdf" mime-type="application/pdf" src="org.apache.cocoon.serialization.FOPSerializer">
<!-- This element specifies URL to FOP user configuration file.
It can be absolute file URL or relative to the servlet context.
Examples:
<user-config>file:/C:/cocoon/fop-config.xml</user-config>
<user-config>WEB-INF/fop-config.xml</user-config>
-->
<!-- Should serializer set content length header or not?
Default is true.
<set-content-length>true</set-content-length>
-->
</map:serializer>
<map:serializer name="fo2ps" logger="sitemap.serializer.fo2ps" mime-type="application/postscript" src="org.apache.cocoon.serialization.FOPSerializer"/>
<map:serializer name="fo2pcl" logger="sitemap.serializer.fo2pcl" mime-type="vnd.hp-PCL" src="org.apache.cocoon.serialization.FOPSerializer"/>
<map:serializer name="svgxml" logger="sitemap.serializer.svgxml" mime-type="image/svg-xml" src="org.apache.cocoon.serialization.XMLSerializer">
<doctype-public>-//W3C//DTD SVG 20000303 Stylable//EN</doctype-public>
<doctype-system>http://www.w3.org/TR/2000/03/WD-SVG-20000303/</doctype-system>
</map:serializer>
<map:serializer name="svg2jpeg" logger="sitemap.serializer.svg2png" mime-type="image/jpeg" src="org.apache.cocoon.serialization.SVGSerializer">
<parameter name="quality" type="float" value="0.9"/>
</map:serializer>
<map:serializer name="svg2png" logger="sitemap.serializer.svg2png" mime-type="image/png" src="org.apache.cocoon.serialization.SVGSerializer"/>
</map:serializers>
<!--+
| Readers circumvent the XML oriented SAX pipeline model, think of a reader
| being a generator and a serializer at once thus a pipeline may not
| contain any generator, transformer or serializer in addition to a
| reader. They are useful for delivering binary content like images.
+-->
<map:readers default="resource">
<map:reader name="resource" logger="sitemap.reader.resource" pool-max="32" src="org.apache.cocoon.reading.ResourceReader"/>
</map:readers>
<!--+
| Matchers are executed during pipeline setup. They decide if a
| pipeline fragment is used within a pipeline. Usually, the decision
| is based on a match on the requested URI but matchers exist, that
| match different things as well. Most often the fragment contained in
| a matcher has a generator as well as a serializer. This is not a
| necessity, matchers can be nested while chaining does not work.
+-->
<map:matchers default="wildcard">
<map:matcher name="wildcard" logger="sitemap.matcher.wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"/>
<map:matcher name="regexp" logger="sitemap.matcher.regexp" src="org.apache.cocoon.matching.RegexpURIMatcher"/>
<map:matcher name="request-parameter" logger="sitemap.matcher.request-parameter" src="org.apache.cocoon.matching.RequestParameterMatcher"/>
<map:matcher name="cookie" logger="sitemap.matcher.cookie" src="org.apache.cocoon.matching.CookieMatcher"/>
<map:matcher name="header" logger="sitemap.matcher.header" src="org.apache.cocoon.matching.HeaderMatcher"/>
<map:matcher name="parameter" logger="sitemap.matcher.parameter" src="org.apache.cocoon.matching.ParameterMatcher"/>
<map:matcher name="sessionstate" logger="sitemap.matcher.sessionstate" src="org.apache.cocoon.matching.WildcardSessionAttributeMatcher">
<attribute-name>org.apache.cocoon.SessionState</attribute-name>
</map:matcher>
<map:matcher name="referer-match" logger="sitemap.matcher.referer-match" src="org.apache.cocoon.matching.WildcardHeaderMatcher">
<header-name>referer</header-name>
</map:matcher>
<map:matcher name="usecase" logger="sitemap.matcher.usecase" src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
<parameter-name>lenya.usecase</parameter-name>
</map:matcher>
<map:matcher name="step" logger="sitemap.matcher.step" src="org.apache.cocoon.matching.WildcardRequestParameterMatcher">
<parameter-name>lenya.step</parameter-name>
</map:matcher>
</map:matchers>
<!--+
| Selectors are executed during pipeline setup. They can be used to
| determine which pipeline fragments should be combined. They are best
| compared with a java switch statement.
+-->
<map:selectors default="browser">
<map:selector name="browser" logger="sitemap.selector.browser" src="org.apache.cocoon.selection.BrowserSelector">
<!--+
| NOTE: The appearance indicates the search order. This is very important since
| some words may be found in more than one browser description. (MSIE is
| presented as "Mozilla/4.0 (Compatible; MSIE 4.01; ...")
+-->
<browser name="explorer" useragent="MSIE"/>
<browser name="pocketexplorer" useragent="MSPIE"/>
<browser name="handweb" useragent="HandHTTP"/>
<browser name="avantgo" useragent="AvantGo"/>
<browser name="imode" useragent="DoCoMo"/>
<browser name="opera" useragent="Opera"/>
<browser name="lynx" useragent="Lynx"/>
<browser name="java" useragent="Java"/>
<browser name="wap" useragent="Nokia"/>
<browser name="wap" useragent="UP"/>
<browser name="wap" useragent="Wapalizer"/>
<browser name="mozilla5" useragent="Mozilla/5"/>
<browser name="mozilla5" useragent="Netscape6/"/>
<browser name="netscape" useragent="Mozilla"/>
</map:selector>
<map:selector name="request-parameter" logger="sitemap.selector.request-parameter" src="org.apache.cocoon.selection.RequestParameterSelector">
<!-- Define now which request parameter to use; or do it later,
when using this selector, via "parameter-name" parameter.
<parameter-name>myparam</parameter-name>
-->
</map:selector>
<map:selector name="request-attribute" logger="sitemap.selector.request-attribute" src="org.apache.cocoon.selection.RequestAttributeSelector">
<!-- <attribute-name>myparam</attribute-name> -->
</map:selector>
<map:selector name="session-attribute" logger="sitemap.selector.session-attribute" src="org.apache.cocoon.selection.SessionAttributeSelector">
<!-- <attribute-name>myparam</attribute-name> -->
</map:selector>
<map:selector name="parameter" logger="sitemap.selector.parameter" src="org.apache.cocoon.selection.ParameterSelector"/>
<map:selector name="header" logger="sitemap.selector.header" src="org.apache.cocoon.selection.HeaderSelector">
<!-- <header-name>myparam</header-name> -->
</map:selector>
<map:selector name="host" logger="sitemap.selector.host" src="org.apache.cocoon.selection.HostSelector"/>
<map:selector name="resource-exists" logger="sitemap.selector.resource-exists" src="org.apache.cocoon.selection.ResourceExistsSelector"/>
<map:selector name="exception" logger="sitemap.selector.exception" src="org.apache.cocoon.selection.ExceptionSelector">
<exception name="sax" class="org.xml.sax.SAXException" unroll="true"/>
<exception name="resourcenotfound" class="org.apache.cocoon.ResourceNotFoundException" unroll="true"/>
<exception name="document-does-not-exist" class="org.apache.lenya.cms.publication.DocumentDoesNotExistException"/>
<exception name="invalid-continuation" class="org.apache.cocoon.components.flow.InvalidContinuationException"/>
<exception class="org.apache.cocoon.ProcessingException" unroll="true"/>
<!-- The statement below tells the selector to unroll as much exceptions as possible -->
<exception class="java.lang.Throwable" unroll="true"/>
</map:selector>
</map:selectors>
<!--+
| Actions are executed during pipeline setup. Their purpose is to
| execute some code that doesn't involve touching the stream of
| pipeline events. Example usage is to update databases, check external
| resources, etc.. The execution may fail or complete successfully. Only
| if the execution of the action was successful, the pipeline fragment
| nested inside the action element is executed, otherwise, it's skipped
| entirely and execution proceeds from the element right below the action.
+-->
<map:actions>
<map:action name="request" logger="sitemap.action.request" src="org.apache.cocoon.acting.RequestParamAction"/>
<map:action name="form-validator" logger="sitemap.action.form-validator" src="org.apache.cocoon.acting.FormValidatorAction"/>
<map:action name="session-state" logger="sitemap.action.session-state" src="org.apache.cocoon.acting.SessionStateAction"/>
<map:action name="session-propagator" logger="sitemap.action.session-propagator" src="org.apache.cocoon.acting.SessionPropagatorAction"/>
<map:action name="session-isvalid" logger="sitemap.action.session-isvalid" src="org.apache.cocoon.acting.SessionIsValidAction"/>
<map:action name="resource-exists" logger="sitemap.action.resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"/>
<map:action name="set-header" logger="sitemap.action.set-header" src="org.apache.cocoon.acting.HttpHeaderAction"/>
<map:action name="clear-cache" logger="sitemap.action.clear-cache" src="org.apache.cocoon.acting.ClearCacheAction"/>
<map:action name="clear-persistent-store" logger="sitemap.action.clear-persistent-store" src="org.apache.cocoon.acting.ClearPersistentStoreAction"/>
<map:action name="session" src="org.apache.cocoon.webapps.session.acting.SessionAction"/>
<map:action name="session-form" src="org.apache.cocoon.webapps.session.acting.SessionFormAction"/>
<map:action name="parent-child" logger="sitemap.action.parent-child" src="org.apache.lenya.cms.cocoon.acting.ParentChildCreatorAction">
<tree-authoring href="content/authoring/tree.xml"/>
<docs href="content/authoring"/>
<doctypes href="config/doctypes/"/>
</map:action>
<map:action name="xopushandler" logger="sitemap.action.xopus" src="org.apache.lenya.cms.cocoon.acting.XopusHandlerAction">
<xml href="content/authoring/"/>
<xsl href="xslt"/>
<xsd href="config/doctypes/schemas"/>
<temp href="temp"/>
<rcmlDirectory href="content/rcml"/>
<backupDirectory href="content/rcbak"/>
</map:action>
<map:action name="reserved-checkout" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutAction" logger="sitemap.action.reserved-checkout"/>
<map:action name="reserved-checkout-test" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckoutTestAction" logger="sitemap.action.reserved-checkout-test"/>
<map:action name="reserved-checkin" src="org.apache.lenya.cms.cocoon.acting.ReservedCheckinAction" logger="sitemap.action.reserved-checkin"/>
<map:action name="rollback" src="org.apache.lenya.cms.cocoon.acting.RollbackAction"/>
<map:action name="upload" logger="sitemap.action.upload" src="org.apache.lenya.cms.cocoon.acting.UploadAction">
<resources-root href="resources/images/live"/>
<docs-root href="content/authoring"/>
<meta-root href="content/authoring/"/>
<insert-image-before value="false"/>
</map:action>
<map:action name="task" logger="sitemap.action.task" src="org.apache.lenya.cms.cocoon.acting.TaskAction"/>
<map:action name="workflow" logger="sitemap.action.workflow" src="org.apache.lenya.cms.cocoon.acting.WorkflowInvokerAction"/>
<map:action name="uriparametrizer" src="org.apache.lenya.cms.cocoon.acting.URIParametrizerAction" logger="sitemap.action.uriparametrizer"/>
<map:action name="default-create" src="org.apache.lenya.cms.cocoon.acting.DefaultCreatorAction" logger="sitemap.action.default-create">
<tree-authoring href="content/authoring/sitetree.xml"/>
<docs href="content/authoring"/>
<doctypes href="config/doctypes/"/>
</map:action>
<map:action name="resource-exists-enhanced" logger="sitemap.action.resource-exists-enhanced" src="org.apache.lenya.cms.cocoon.acting.ResourceExistsAction"/>
<map:action name="authorizer" src="org.apache.lenya.cms.cocoon.acting.DelegatingAuthorizerAction" logger="lenya.sitemap.action.authorizer"/>
<map:action name="authenticator" src="org.apache.lenya.cms.cocoon.acting.DelegatingAuthenticatorAction" logger="lenya.sitemap.action.authenticator"/>
<map:action name="language-exists" logger="lenya.sitemap.action.language-exists" src="org.apache.lenya.cms.cocoon.acting.LanguageExistsAction"/>
</map:actions>
<!--+
| The different pipe implementations
|
| NON-CACHING:
| The non caching implementation of cocoon pipelines.
|
| CACHING:
| Traditional longest cachable key caching.
|
| CACHING-POINT:
| The caching-point pipeline implements an extended
| caching algorithm which is of particular benefit for use with
| those pipelines that utilise cocoon-views and/or provide
| drill-down functionality.
|
| The autoCachingPoint algorithim (if enabled) will automatically
| cache common elements of the pipeline currently being processed - as well
| as the entire cachable pipeline according to the "longest cachable key"
| algorithm.
|
| Consider the following simple pipeline, where generator G is labelled with
| a cocoon-view enabling the pipeline to serialize data to either html or pdf
| depending on the value of cocoon-view (as provided by the request):
| G - T - S(html)
| |__ T - S(pdf)
|
| If cocoon-view=html, then the caching-point algorithm will not only cache
| the longest cachable path, which would be GTS(html) but also the
| *common element* which in this case would be the results from G. If the
| next request to this pipeline was cocoon-view=pdf, then there would be no
| need to invoke the generator a second time, as it's value has already been
| cached (provided G generates the same cache key)
|
| Also note: One can switch "Off" autoCachingPoint and use "pipeline-hints" to
| manually indicate that certain pipeline-components should be considered as
| cache points.
+-->
<map:pipes default="caching">
<map:pipe name="caching" src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline"/>
<map:pipe name="caching-point" src="org.apache.cocoon.components.pipeline.impl.CachingPointProcessingPipeline">
<autoCachingPoint>On</autoCachingPoint>
</map:pipe>
<map:pipe name="noncaching" src="org.apache.cocoon.components.pipeline.impl.NonCachingProcessingPipeline"/>
<!-- The following two can be used for profiling:-->
<map:pipe name="profile-caching" src="org.apache.cocoon.components.profiler.ProfilingCachingProcessingPipeline"/>
<map:pipe name="profile-noncaching" src="org.apache.cocoon.components.profiler.ProfilingNonCachingProcessingPipeline"/>
</map:pipes>
</map:components>
<!-- =========================== Views =================================== -->
<!--+
| Views provide diffent, well, views to resources. Views are
| orthogonal to pipelines. Please refer to the docs.
+-->
<map:views>
<map:view name="first" from-position="first">
<map:serialize type="xml"/>
</map:view>
<map:view name="last" from-position="last">
<map:serialize type="xml"/>
</map:view>
<map:view from-label="content" name="content">
<map:serialize type="xml"/>
</map:view>
<map:view from-label="data" name="pretty-content">
<map:transform src="stylesheets/simple-xml2html.xsl"/>
<map:serialize type="html"/>
</map:view>
<map:view from-position="last" name="links">
<map:serialize type="links"/>
</map:view>
<map:view from-label="aggregate" name="aggregate">
<map:serialize type="xml"/>
</map:view>
</map:views>
<!-- =========================== Resources ================================= -->
<!--+
| Resources are pipeline fragments that may be used from different
| pipeline fragments. For our needs, they behave exactly like
| pipelines, only that they are not accessible from outside.
| Hence I will explain what's inside below for pipelines.
+-->
<map:resources>
<map:resource name="navigation">
<map:generate src="lenya/pubs/{pub_id}/content/live/sitetree.xml" />
<map:transform src="lenya/xslt/util/sitetree2navigation.xsl">
<map:parameter name="nav_id" value="{nav_id}"/>
</map:transform>
</map:resource>
<map:resource name="style-cms-page">
<!-- FIXME: due to resolver issues, i18n can currently not be used outside
of a publication IF you do not make a hit into a publication context first.
<map:transform type="i18n">
<map:parameter name="locale" value="{request:locale}"/>
</map:transform>
--> <map:transform src="lenya/xslt/util/page2xhtml.xsl">
<map:parameter name="contextprefix" value="{request:contextPath}"/>
</map:transform>
<map:transform src="lenya/xslt/util/strip_namespaces.xsl"/>
<map:serialize/>
</map:resource>
<map:resource name="i18n">
<map:transform type="i18n">
<map:parameter name="locale" value="{request:locale}"/>
</map:transform>
</map:resource>
</map:resources>
<!-- ========================== Action sets ================================ -->
<!--+
| Action sets group actions together. If some actions are often used
| together in pipeline fragments, it's easier to group them and refer
| to the group. For more info, please see the docs.
+-->
<map:action-sets>
</map:action-sets>
<!-- =========================== Pipelines ================================= -->
<!--+
| Pipelines. The beef. Pipelines specify how the processing of your
| content is done. Usually, a pipeline consists of several fragments
| that specify the generation, transformation, and serialization of
| SAX events.
|
| Processing is done in two steps:
|
| 1) The top level elements are executed in order of appearance until
| one signals success. These top level elements are usually
| matchers.
|
| Other components are called depth-first to determine what
| fragments make up the processing pipeline. When a component
| fails, no nested components are called but the next component on
| the same level.
|
| 2) Once it is determined which generator, which transformers and
| wich serializer is used, these components are executed. During
| this, the pipeline may not be changed.
|
| You may have as many pipelines in your sitemap as you like.
+-->
<map:pipelines>
<map:component-configurations>
<global-variables>
<!--+
| Define global parameters here:
| <skin>my_skin</skin>
| ...
| You can access them by {global:*name*}, e.g. {global:skin}.
| These values are inherited into sub-sitemaps and can
| be extended there.
+-->
</global-variables>
</map:component-configurations>
<!-- =========================== Lenya CMS ================================= -->
<!-- =========================== Pipelines ================================= -->
<map:pipeline>
<map:match pattern="publications.xml">
<map:generate type="directory" src="lenya/pubs"/>
<map:transform src="lenya/xslt/util/xinclude.xsl"/>
<map:transform type="xlink">
<map:parameter name="href" value="lenya/pubs/dummy.xml"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
</map:pipeline>
<map:pipeline>
<map:match pattern="">
<map:redirect-to uri="index.html"/>
</map:match>
<map:match pattern="index.html">
<map:aggregate element="lenya" ns="http://apache.org/cocoon/lenya/publication/1.0" prefix="lenya" label="aggregate">
<map:part src="cocoon:/publications.xml"/>
<map:part src="lenya/content/introduction.xml"/>
</map:aggregate>
<map:transform src="lenya/xslt/util/welcome.xsl"/>
<map:call resource="style-cms-page"/>
</map:match>
<map:match pattern="about.html">
<map:generate src="lenya/content/about.xml"/>
<map:call resource="style-cms-page"/>
</map:match>
<map:handle-errors>
<map:select type="exception">
<map:when test="resourcenotfound">
<map:generate src="lenya/content/util/empty.xml" />
<map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/>
<map:call resource="style-cms-page">
<map:parameter name="statusCode" value="404"/>
</map:call>
</map:when>
<map:otherwise>
<map:generate type="notifying"/>
<map:transform src="stylesheets/system/error2html.xslt">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:transform>
</map:otherwise>
</map:select>
<map:serialize type="html"/>
</map:handle-errors>
</map:pipeline>
<!-- Search with Lucene -->
<map:pipeline>
<map:match pattern="*/search-*/lucene*">
<map:mount uri-prefix="" src="lenya/{fallback:lucene.xmap}" check-reload="true" reload-method="synchron"/>
</map:match>
<map:handle-errors>
<map:select type="exception">
<map:when test="resourcenotfound">
<map:generate src="lenya/content/util/empty.xml" />
<map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/>
<map:call resource="style-cms-page">
<map:parameter name="statusCode" value="404"/>
</map:call>
</map:when>
<map:otherwise>
<map:generate type="notifying"/>
<map:transform src="stylesheets/system/error2html.xslt">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:transform>
</map:otherwise>
</map:select>
<map:serialize type="html"/>
</map:handle-errors>
</map:pipeline>
<!-- /Search with Lucene -->
<!-- Editor Xopus -->
<map:pipeline>
<map:match pattern="xopus/**">
<map:mount uri-prefix="xopus" src="lenya/xopus.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
</map:pipeline>
<!-- Editor BXE -->
<map:pipeline>
<map:match pattern="bxeng/**">
<map:read src="lenya/resources/bxeng/{1}"/>
</map:match>
</map:pipeline>
<!-- Editor Epoz -->
<map:pipeline>
<map:match pattern="kupu/**">
<map:read src="lenya/resources/kupu/{1}"/>
</map:match>
</map:pipeline>
<map:pipeline>
<!-- Lenya GUI -->
<map:match pattern="lenya/**">
<map:mount uri-prefix="lenya" src="lenya/lenya.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Lenya page transformation -->
<!-- lenya-page/{publication-id}/{complete-area}/... -->
<map:match pattern="lenya-page/*/*/**">
<map:generate src="cocoon:/menu-xml/{1}/{2}/{3}"/>
<map:call resource="i18n"/>
<map:act type="resource-exists" src="lenya/pubs/{1}/config/workflow/">
<map:transform type="workflowmenu"/>
</map:act>
<map:act type="resource-exists" src="lenya/pubs/{1}/config/ac/usecase-policies.xml">
<map:transform type="usecasemenu"/>
</map:act>
<map:transform src="lenya/xslt/menu/menu2xhtml.xsl">
<map:parameter name="contextprefix" value="{request:contextPath}"/>
<map:parameter name="publicationid" value="{1}"/>
<map:parameter name="completearea" value="{2}"/>
<map:parameter name="documentarea" value="{page-envelope:area}"/>
<map:parameter name="documenturl" value="{page-envelope:document-url}"/>
<map:parameter name="documentid" value="{page-envelope:document-id}"/>
<map:parameter name="userid" value="{access-control:user-id}"/>
<map:parameter name="servertime" value="{date-i18n:currentDate}"/>
<map:parameter name="workflowstate" value="{workflow:state}"/>
<map:parameter name="islive" value="{workflow:variable.is_live}"/>
</map:transform>
<map:call resource="i18n"/>
<map:transform src="lenya/xslt/menu/menu2xslt.xsl">
<map:parameter name="contextprefix" value="{request:contextPath}"/>
<map:parameter name="publicationid" value="{1}"/>
<map:parameter name="area" value="{2}"/>
<map:parameter name="documenturl" value="{page-envelope:document-url}"/>
</map:transform>
<map:serialize type="xml"/>
</map:match>
<!-- menus -->
<!-- menu-xml/{publication-id}/admin/... -->
<map:match pattern="menu-xml/*/admin/**" internal-only="true">
<map:generate type="serverpages" src="lenya/content/menus/admin.xsp"/>
<map:serialize type="xml"/>
</map:match>
<!-- menu-xml/{publication-id}/... -->
<map:match pattern="menu-xml/*/**" internal-only="true">
<map:mount uri-prefix="menu-xml/{1}/" src="lenya/pubs/{1}/menus.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- navigation -->
<map:match pattern="navigation/**">
<map:mount uri-prefix="navigation" src="lenya/navigation.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- uri-parameter/{publication-id}/{parameter}/{area}/{uri} -->
<map:match pattern="uri-parameter/*/*/*/**">
<map:mount uri-prefix="uri-parameter/{1}/{2}/" src="lenya/pubs/{1}/parameter-{2}.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Access Control Policies -->
<map:match pattern="*/policies/**">
<map:mount uri-prefix="{1}/policies" src="lenya/pubs/{1}/policies-sitemap.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Admin Area -->
<map:match pattern="*/admin/**">
<map:mount uri-prefix="{1}/admin" src="lenya/admin.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Scheduler -->
<map:match pattern="scheduler/**">
<map:mount uri-prefix="scheduler/" src="lenya/scheduler.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Info usecases -->
<map:match type="usecase" pattern="info-*">
<map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Internal usecases -->
<map:pipeline internal-only="true">
<map:match type="usecase" pattern="*">
<map:match pattern="*/**">
<map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
</map:match>
</map:pipeline>
<!-- Usecases -->
<map:match type="usecase" pattern="*">
<map:mount uri-prefix="" src="lenya/usecase.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Info area -->
<map:match pattern="*/*/info-sitetree/**">
<map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<map:match pattern="*/info-*/**">
<map:mount uri-prefix="" src="lenya/info.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Publications -->
<map:match pattern="*/">
<map:redirect-to uri="introduction.html"/>
</map:match>
<map:match pattern="*/index.html">
<map:redirect-to uri="introduction.html"/>
</map:match>
<!-- About Publication -->
<map:match pattern="*/introduction.html">
<map:generate src="lenya/pubs/{1}/publication.xml" />
<map:transform src="lenya/xslt/util/publication.xsl"/>
<map:call resource="style-cms-page"/>
</map:match>
<!-- Publication Tests-->
<map:match pattern="*/tests.html">
<map:generate src="lenya/pubs/{1}/publication-tests.xml" />
<map:transform src="lenya/xslt/util/publication.xsl"/>
<map:call resource="style-cms-page"/>
</map:match>
<!-- Enter the actual publication (url = "") -->
<map:match pattern="*/">
<map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<!-- Resources -->
<!-- {publication-id}/{area}/{file} -->
<map:match pattern="*/*/**">
<map:act type="resource-exists-enhanced">
<map:parameter name="url" value="lenya/pubs/{1}/resources/{2}/{3}"/>
<map:parameter name="type" value="file"/>
<map:mount uri-prefix="" src="lenya/resources.xmap" check-reload="true" reload-method="synchron"/>
</map:act>
<map:act type="resource-exists-enhanced">
<map:parameter name="url" value="lenya/pubs/{1}/resources/shared/{3}"/>
<map:parameter name="type" value="file"/>
<map:mount uri-prefix="" src="lenya/resources-shared.xmap" check-reload="true" reload-method="synchron"/>
</map:act>
</map:match>
<!-- Enter the actual publication -->
<map:match pattern="*/**">
<map:mount uri-prefix="{1}" src="lenya/pubs/{1}/sitemap.xmap" check-reload="true" reload-method="synchron"/>
</map:match>
<map:handle-errors>
<map:select type="exception">
<map:when test="resourcenotfound">
<map:generate src="lenya/content/util/empty.xml" />
<map:transform src="lenya/xslt/exception/document-does-not-exist.xsl"/>
<map:call resource="style-cms-page">
<map:parameter name="statusCode" value="404"/>
</map:call>
</map:when>
<map:otherwise>
<map:generate type="notifying"/>
<map:transform src="stylesheets/system/error2html.xslt">
<map:parameter name="contextPath" value="{request:contextPath}"/>
</map:transform>
</map:otherwise>
</map:select>
<map:serialize type="html"/>
</map:handle-errors>
</map:pipeline>
</map:pipelines>
</map:sitemap>