blob: d43577fa634533f2929cab391579a6c6dcd6cdd5 [file] [log] [blame]
<?xml version="1.0"?>
<!--
Version <![CDATA[ $Id: sitemap.xmap,v 1.1 2003/03/09 00:04:39 pier Exp $ ]]>
Cocoon Webmail sitemap definition
-->
<map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
<!-- =========================== Components ================================ -->
<map:components>
<!-- ===== generators =====
-->
<map:generators default="file">
<map:generator name="file" src="org.apache.cocoon.generation.FileGenerator"
label="content"
logger="sitemap.generator.file"
pool-max="32" pool-min="1" pool-grow="4"
/>
<map:generator name="html" src="org.apache.cocoon.generation.HTMLGenerator"
label="content"
logger="sitemap.generator.file"
pool-max="32" pool-min="1" pool-grow="4"
/>
<map:generator name="asciiart-svg" src="org.apache.cocoon.generation.asciiart.AsciiArtSVGGenerator"
label="content"
logger="sitemap.generator.asciiart-svg"
/>
</map:generators>
<!-- ===== transformers =====
-->
<map:transformers default="xslt">
<map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer"
logger="sitemap.transformer.xslt" pool-max="32" pool-min="1" pool-grow="2">
<use-request-parameters>false</use-request-parameters>
<use-browser-capabilities-db>false</use-browser-capabilities-db>
<use-deli>false</use-deli>
</map:transformer>
<!--map:transformer name="tofile" src="org.apache.cocoon.transformation.SourceWritingTransformer">
<map:parameter name="serializer" value="xml"/>
</map:transformer-->
<map:transformer name="paginate" src="org.apache.cocoon.transformation.pagination.Paginator"/>
</map:transformers>
<!-- ===== readers =====
-->
<map:readers default="resource">
<map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader" logger="sitemap.reader.resource" pool-max="32" pool-min="1" pool-grow="4"/>
</map:readers>
<!-- ===== serializers =====
-->
<map:serializers default="html">
<map:serializer name="html" src="org.apache.cocoon.serialization.HTMLSerializer"
mime-type="text/html">
<encoding>iso8859-1</encoding>
</map:serializer>
<map:serializer name="wml" src="org.apache.cocoon.serialization.XMLSerializer"
mime-type="text/vnd.wap.wml"
logger="sitemap.serializer.wml">
<doctype-public>-//WAPFORUM//DTD WML 1.1//EN</doctype-public>
<doctype-system>http://www.wapforum.org/DTD/wml_1.1.xml</doctype-system>
<encoding>iso8859-1</encoding>
<omit-xml-declaration>no</omit-xml-declaration>
</map:serializer>
<map:serializer name="xml" src="org.apache.cocoon.serialization.XMLSerializer"
mime-type="text/xml">
<indent>yes</indent>
</map:serializer>
<map:serializer name="links" src="org.apache.cocoon.serialization.LinkSerializer"
/>
<map:serializer name="svg2jpeg" src="org.apache.cocoon.serialization.SVGSerializer"
mime-type="image/jpeg">
<parameter name="quality" type="float" value="0.75"/>
</map:serializer>
</map:serializers>
<!-- ===== matchers =====
-->
<map:matchers default="wildcard">
<map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher"
logger="sitemap.matcher.wildcard"/>
<map:matcher name="regexp" src="org.apache.cocoon.matching.RegexpURIMatcher"
logger="sitemap.matcher.regexp"/>
<map:matcher name="regexp-defaults" src="org.apache.cocoon.matching.RegexpURIDefaultsMatcher"
logger="sitemap.matcher.regexp"/>
</map:matchers>
<!-- ===== selectors =====
-->
<map:selectors default="parameter">
<map:selector name="parameter" src="org.apache.cocoon.selection.ParameterSelector"
logger="sitemap.selector.parameter"/>
<map:selector name="request-parameter" src="org.apache.cocoon.selection.RequestParameterSelector"
logger="sitemap.selector.request-parameter">
<parameter-name>cmd</parameter-name>
</map:selector>
<map:selector name="request-attribute" src="org.apache.cocoon.selection.RequestAttributeSelector"
logger="sitemap.selector.request-attribute">
<parameter-name>cmd</parameter-name>
</map:selector>
</map:selectors>
<!-- ===== actions =====
-->
<map:actions>
<map:action name="simple-resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction"
logger="sitemap.action.simple-resource-exists"/>
<map:action name="resource-exists" src="org.apache.cocoon.acting.ExtendedResourceExistsAction"
logger="sitemap.action.resource-exists"/>
<map:action name="link-translator-map" src="org.apache.cocoon.acting.LinkTranslatorMapAction"
logger="sitemap.action.link-translator-map"/>
<map:action name="mail" src="org.apache.cocoon.mail.MailAction"
logger="sitemap.action.mail"/>
</map:actions>
</map:components>
<!-- =========================== Views =================================== -->
<map:views>
<map:view name="content" from-label="content">
<map:serialize type="xml"/>
</map:view>
<map:view name="links" from-position="last">
<map:transform src="stylesheets/filterlinks.xsl"/>
<map:serialize type="links"/>
</map:view>
</map:views>
<!-- =========================== Resources =============================== -->
<map:resources>
<!-- generate a page by merging all parts making up a page
-->
<map:resource name="show-page">
<map:aggregate element="site">
<map:part src="cocoon:/page-{page}-top-col-1" element="top-col-1" strip-root="true"/>
<map:part src="cocoon:/page-{page}-head-col-1" element="head-col-1" strip-root="true"/>
<map:part src="cocoon:/page-{page}-mid-col-1" element="mid-col-1" strip-root="true"/>
<map:part src="cocoon:/page-{page}-mid-col-2" element="mid-col-2" strip-root="true"/>
<map:part src="cocoon:/page-{page}-mid-col-3" element="mid-col-3" strip-root="true"/>
<map:part src="cocoon:/page-{page}-bottom-col-1" element="bottom-col-1" strip-root="true"/>
</map:aggregate>
</map:resource>
<!-- load a page of a section if page is not available load index page
of this section, plain XML
-->
<map:resource name="load-page">
<map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{resource-exists}"/>
<map:when test="true">
<map:generate src="docs/{sect}/{page}.xml"/>
</map:when>
<map:otherwise>
<map:generate src="docs/{sect}/index.xml"/>
</map:otherwise>
</map:select>
<map:serialize type="xml"/>
</map:resource>
<!-- load a page of a section if page is not available load index page
of this section, assume XSP
-->
<map:resource name="load-xsp-page">
<map:select type="parameter">
<map:parameter name="parameter-selector-test" value="{resource-exists}"/>
<map:when test="true">
<map:generate type="serverpages" src="docs/{sect}/{page}.xsp"/>
</map:when>
<map:otherwise>
<map:generate type="serverpages" src="docs/{sect}/index.xsp"/>
</map:otherwise>
</map:select>
<map:serialize type="xml"/>
</map:resource>
</map:resources>
<!-- =========================== Pipelines ================================= -->
<map:pipelines>
<!-- mail/ handling, mail/ URI denotes pages of Cocoon Webmail,
presenting javamail objects
-->
<map:pipeline internal-only="true">
<map:match pattern="page-mail/*-head-col-1">
<map:act type="resource-exists" src="docs/head-col-1/{1}.xsp">
<map:call resource="load-xsp-page">
<map:parameter name="sect" value="head-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-mail/mail-mid-col-1">
<map:generate type="serverpages" src="docs/mid-col-1/mail.xsp"/>
<map:transform src="stylesheets/mail2document.xsl"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="page-mail/*-mid-col-1">
<map:act type="resource-exists" src="docs/mid-col-1/{1}.xsp">
<map:call resource="load-xsp-page">
<map:parameter name="sect" value="mid-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-mail/mail-mid-col-2">
<map:generate type="serverpages" src="docs/mid-col-2/mail.xsp"/>
<!--
select stylesheet on the cmd request parameter
-->
<map:select type="request-attribute">
<map:parameter name="attribute-name" value="mail-current-working-command"/>
<map:when test="cat-folder">
<map:transform src="stylesheets/mail-folder2document.xsl"/>
</map:when>
<map:when test="list-folder-messages">
<map:transform src="stylesheets/mail-envelopes2document.xsl"/>
</map:when>
<map:when test="search-folder-messages">
<map:transform src="stylesheets/mail-envelopes2document.xsl"/>
</map:when>
<map:when test="list-folder">
<map:transform src="stylesheets/mail-folder2document.xsl"/>
</map:when>
<map:when test="list-folder-recursivly">
<map:transform src="stylesheets/mail-folderrecursivly2document.xsl"/>
</map:when>
<map:when test="cat-message-by-uid">
<map:transform src="stylesheets/mail-message2document.xsl"/>
</map:when>
<map:when test="cat-message-by-id">
<map:transform src="stylesheets/mail-message2document.xsl"/>
</map:when>
<map:otherwise>
<map:transform src="stylesheets/mail-unknown2document.xsl"/>
</map:otherwise>
</map:select>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="page-mail/*-mid-col-2">
<map:act type="resource-exists" src="docs/mid-col-2/{1}.xsp">
<map:call resource="load-xsp-page">
<map:parameter name="sect" value="mid-col-2"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-mail/*-mid-col-3">
<map:act type="resource-exists" src="docs/mid-col-3/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="mid-col-3"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
</map:pipeline>
<!-- general page section handling
-->
<map:pipeline internal-only="true">
<!-- pipeline matching a section of a page
-->
<!-- matched by simple URI *.html, eg. index.html becomes page-index-top-col-1
and mail/*.html, eg. mail/logout.html becomes page-mail/logout-top-col-1
-->
<map:match pattern="page-**-top-col-1">
<map:act type="resource-exists" src="docs/top-col-1/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="top-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-*-head-col-1">
<map:act type="resource-exists" src="docs/head-col-1/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="head-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-*-mid-col-1">
<map:act type="resource-exists" src="docs/mid-col-1/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="mid-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<map:match pattern="page-*-mid-col-2">
<map:generate src="docs/mid-col-2/{1}.xml"/>
<map:serialize type="xml"/>
</map:match>
<map:match pattern="page-*-mid-col-3">
<map:act type="resource-exists" src="docs/mid-col-3/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="mid-col-3"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
<!-- bottom-col matches mail/*, too
-->
<map:match pattern="page-**-bottom-col-1">
<map:act type="resource-exists" src="docs/bottom-col-1/{1}.xml">
<map:call resource="load-page">
<map:parameter name="sect" value="bottom-col-1"/>
<map:parameter name="page" value="{../1}"/>
<map:parameter name="resource-exists" value="{resource-exists}"/>
</map:call>
</map:act>
</map:match>
</map:pipeline>
<!-- top level URI matching a page
-->
<map:pipeline>
<!-- handle *.html, and *([0-9]*).html pages
-->
<map:match pattern="^([^(/)0-9]+)(\(([0-9]+)+\))?\.html$" type="regexp-defaults">
<map:parameter name="map-default:2" value="(1)"/>
<map:parameter name="map-default:3" value="1"/>
<!-- setup link rewriting mapping
-->
<map:act type="link-translator-map" src="{1}.html"/>
<map:call resource="show-page">
<map:parameter name="page" value="{1}"/>
</map:call>
<map:transform type="paginate" src="pagesheets/htmlpages.xml">
<map:parameter name="page" value="{3}"/>
</map:transform>
<map:transform src="stylesheets/site2html.xsl"/>
<map:serialize/>
</map:match>
</map:pipeline>
<map:pipeline>
<!-- handle mail/*.html, and mail/*([0-9]*).html pages
-->
<map:match pattern="^mail/([a-z]+)(\(([0-9]+)+\))?\.html$" type="regexp-defaults">
<map:parameter name="map-default:2" value="(1)"/>
<map:parameter name="map-default:3" value="1"/>
<!-- setup link rewriting mapping
-->
<map:act type="link-translator-map">
<map:parameter name="url-base" value=""/>
<map:parameter name="linkMap:main.css" value="../main.css"/>
<map:parameter name="linkMap:built-with-cocoon.gif" value="../built-with-cocoon.gif"/>
<map:parameter name="linkMap:powered-by-cocoon.png" value="../powered-by-cocoon.png"/>
<map:parameter name="linkMap:favicon.ico" value="../favicon.ico"/>
</map:act>
<!-- create javamail objects
-->
<map:act type="mail" src="{1}">
<!--
define the imap store url as urlname template,
-->
<map:parameter name="store-urlname" value="imap://''mail-userid'':''mail-passwd''@imap-server-host-name/"/>
<map:parameter name="javax.mail.Session.props:mail.debug" value="true"/>
</map:act>
<map:call resource="show-page">
<map:parameter name="page" value="mail/{1}"/>
</map:call>
<map:transform type="paginate" src="pagesheets/mailhtmlpages.xml">
<map:parameter name="page" value="{3}"/>
</map:transform>
<map:transform src="stylesheets/site2html.xsl"/>
<map:serialize/>
</map:match>
</map:pipeline>
<!-- top level URI matching resources of a page
-->
<map:pipeline>
<map:match pattern="*.css">
<map:read mime-type="text/css" src="resources/styles/{1}.css"/>
</map:match>
<map:match pattern="*.gif">
<map:read mime-type="image/gif" src="resources/images/{1}.gif"/>
</map:match>
<map:match pattern="*.png">
<map:read mime-type="image/png" src="resources/images/{1}.png"/>
</map:match>
<map:match pattern="*.jpg">
<map:read mime-type="image/jpeg" src="resources/images/{1}.jpg"/>
</map:match>
<map:match pattern="favicon.ico">
<map:read mime-type="application/ico" src="resources/images/favicon.ico"/>
</map:match>
<!-- handle ascii art, generate SVG from TXT, and serialize SVG as jpeg
-->
<map:match pattern="asciiart/*.jpg">
<map:generate type="asciiart-svg" src="resources/asciiart/{1}.txt">
</map:generate>
<map:serialize type="svg2jpeg"/>
</map:match>
</map:pipeline>
</map:pipelines>
</map:sitemap>