You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@forrest.apache.org by je...@apache.org on 2003/03/15 07:14:24 UTC

cvs commit: xml-forrest/src/resources/conf/old sitemap.xmap cocoon.xconf

jefft       2003/03/14 22:14:24

  Added:       src/resources/conf/old sitemap.xmap cocoon.xconf
  Removed:     src/resources/conf old-sitemap.xmap
  Log:
  Move old sitemap/config to old/ directory
  
  Revision  Changes    Path
  1.1                  xml-forrest/src/resources/conf/old/sitemap.xmap
  
  Index: sitemap.xmap
  ===================================================================
  <?xml version="1.0"?>
  <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
  <!-- =========================== Components ================================ -->
     <map:components>
        <map:generators default="file">
           <map:generator name="file" src="org.apache.cocoon.generation.FileGenerator" label="content" />
           
           <map:generator name="directory" src="org.apache.cocoon.generation.DirectoryGenerator" label="content" />
  
           <map:generator name="html" src="org.apache.cocoon.generation.HTMLGenerator" label="content" />
  
           <map:generator name="libre" src="org.apache.forrest.yer.use.cocoon.HierarchyGenerator" label="content" />
  
           <map:generator name="nekodtd" src="org.apache.forrest.components.generator.XNIConfigurableFileGenerator" label="content" />
  
           <map:generator name="textparser" src="org.apache.cocoon.generation.TextParserGenerator" label="content" />
  
  <!-- FIXME: Change this once better view handling is implemented -->
           <map:generator name="file-nolabel" src="org.apache.cocoon.generation.FileGenerator" />
        </map:generators>
  
        <map:transformers default="xslt">
           <map:transformer name="idgen" src="org.apache.cocoon.transformation.IdGeneratorTransformer">
              <element>//*[local-name() = 'section']</element>
              <id>title/text()</id>
           </map:transformer>
  
           <map:transformer name="linkrewriter" src="org.apache.cocoon.transformation.LinkRewriterTransformer">
              <input-module name="linkmap" src="{src}" reloadable="true" />
              <input-module name="site">
                 <input-module name="linkmap" src="{src}" reloadable="true" />
                 <prefix>/site//</prefix>
                 <suffix>/@href</suffix>
              </input-module>
           </map:transformer>
  
           <map:transformer name="xpath" logger="sitemap.transformer.xpath" src="org.apache.cocoon.transformation.XPathTransformer" />
  
           <map:transformer name="xslt" src="org.apache.cocoon.transformation.TraxTransformer" logger="sitemap.transformer.xsltc" pool-max="32" pool-min="8" pool-grow="2">
              <use-request-parameters>false</use-request-parameters>
              <use-browser-capabilities-db>false</use-browser-capabilities-db>
              <use-deli>false</use-deli>
  <!-- transformer-factory>com.icl.saxon.TransformerFactoryImpl</transformer-factory -->
  <!-- transformer-factory>org.apache.xalan.xsltc.trax.TransformerFactoryImpl</transformer-factory -->
           </map:transformer>
  
           <map:transformer name="xinclude" src="org.apache.cocoon.transformation.XIncludeTransformer" logger="sitemap.transformer.xinclude" pool-grow="2" pool-max="16" pool-min="2" />
        </map:transformers>
  
        <map:readers default="resource">
           <map:reader name="resource" src="org.apache.cocoon.reading.ResourceReader" />
        </map:readers>
  
        <map:serializers default="html">
           <map:serializer name="html" mime-type="text/html" 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>ISO-8859-1</encoding>
           </map:serializer>
  
           <map:serializer name="xml" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer">
              <encoding>ISO-8859-1</encoding>
           </map:serializer>
  
           <map:serializer name="rss091" mime-type="text/xml" src="org.apache.cocoon.serialization.XMLSerializer">
              <doctype-public>-//Netscape Communications//DTD RSS 0.91//EN</doctype-public>
              <doctype-system>http://my.netscape.com/publish/formats/rss-0.91.dtd</doctype-system>
              <encoding>ISO-8859-1</encoding>
           </map:serializer>
  
           <map:serializer name="fo2pdf" src="org.apache.cocoon.serialization.FOPSerializer" mime-type="application/pdf" />
  
           <map:serializer name="links" src="org.apache.cocoon.serialization.LinkSerializer">
              <encoding>ISO-8859-1</encoding>
           </map:serializer>
  
           <map:serializer name="svg2jpeg" mime-type="image/jpeg" src="org.apache.cocoon.serialization.SVGSerializer">
              <parameter name="quality" type="float" value="1.0" />
           </map:serializer>
  
           <map:serializer name="svg2png" mime-type="image/png" src="org.apache.cocoon.serialization.SVGSerializer" />
        </map:serializers>
  
        <map:matchers default="wildcard">
           <map:matcher name="wildcard" src="org.apache.cocoon.matching.WildcardURIMatcher" />
        </map:matchers>
  
  <!--
    <map:selectors default="skin-parameter">
      <map:selector name="request-parameter" logger="sitemap.selector.request-parameter"
                   src="org.apache.cocoon.selection.RequestParameterSelector">
        <parameter-name>skin</parameter-name>
      </map:selector>
      <map:selector name="style-parameter" logger="sitemap.selector.request-parameter"
                   src="org.apache.cocoon.selection.RequestParameterSelector">
        <parameter-name>style</parameter-name>
      </map:selector>
  
    </map:selectors>
  -->
        <map:actions>
  <!-- <map:action logger="sitemap.action.request" name="request" src="org.apache.cocoon.acting.RequestParamAction"/> -->
           <map:action logger="sitemap.action.resource-exists" name="resource-exists" src="org.apache.cocoon.acting.ResourceExistsAction" />
  
           <map:action logger="sitemap.action.sourcetype" name="sourcetype" src="org.apache.forrest.components.sourcetype.SourceTypeAction">
              <sourcetype name="document-v11">
                 <document-declaration public-id="-//APACHE//DTD Documentation V1.1//EN" />
              </sourcetype>
  
              <sourcetype name="howto-v10">
                 <document-declaration public-id="-//APACHE//DTD How-to V1.0//EN" />
              </sourcetype>
  
              <sourcetype name="docbook-v4.2">
                 <document-declaration public-id="-//OASIS//DTD DocBook XML V4.2//EN" />
              </sourcetype>
  
              <sourcetype name="sdocbook-v1.0">
                 <document-declaration public-id="-//OASIS//DTD Simplified DocBook XML V1.0//EN" />
              </sourcetype>
           </map:action>
        </map:actions>
  
        <map:selectors>
           <map:selector logger="sitemap.selector.parameter" name="parameter" src="org.apache.cocoon.selection.ParameterSelector" />
        </map:selectors>
  
  <!--
       The different pipeline implementations
       @todo use map:pipe and map:pipes with next cocoon CVS update
    -->
        <map:pipelines default="caching">
           <map:pipeline name="caching" src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline" />
           <map:pipeline name="noncaching" src="org.apache.cocoon.components.pipeline.impl.NonCachingProcessingPipeline" />
  
  <!-- The following two can be used for profiling:
       <map:pipeline name="profile-caching" src="org.apache.cocoon.components.profiler.ProfilingCachingProcessingPipeline"/>
       <map:pipeline name="profile-noncaching" src="org.apache.cocoon.components.profiler.ProfilingNonCachingProcessingPipeline"/>
       -->
        </map:pipelines>
     </map:components>
  
  <!-- =========================== Views =================================== -->
     <map:views>
        <map:view name="content" from-label="content">
           <map:serialize type="xml" />
        </map:view>
  
        <map:view name="pretty-content" from-label="content">
           <map:transform src="library/xslt/simple-xml2html.xsl" />
           <map:serialize type="html" />
        </map:view>
  
        <map:view name="links" from-position="last">
           <map:transform src="library/xslt/filterlinks.xsl" />
           <map:serialize type="links" />
        </map:view>
     </map:views>
  
     <map:resources>
        <map:resource name="skinit">
           <map:transform src="skins/{forrest:skin}/xslt/html/{type}.xsl">
           <map:parameter name="notoc" value="{notoc}" />
  <!-- For backwards-compat with 0.2 - 0.4 skins -->
           <map:parameter name="isfaq" value="{notoc}" />
           <map:parameter name="nopdf" value="{nopdf}" />
           <map:parameter name="path" value="{path}" />
  <!-- Can set an alternative project skinconfig here 
               <map:parameter name="config-file" value="../../../../skinconf.xml"/>
               -->
           </map:transform>
  
           <map:serialize />
        </map:resource>
  
        <map:resource name="book">
           <map:act type="resource-exists">
  <!-- If a hand-created book.xml exists, use it -->
              <map:parameter name="url" value="content/xdocs/{dir}book.xml" />
              <map:generate src="content/xdocs/{../dir}book.xml" />
              <map:transform type="linkrewriter" src="cocoon:/{../dir}linkmap" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="book2menu" />
                 <map:parameter name="path" value="{../path}" />
              </map:call>
           </map:act>
  
  <!-- If no book.xml, generate it from the linkmap. -->
           <map:generate src="cocoon:/{dir}linkmap/{dir}" />
  <!-- The above generates the subset of the linkmap relevant to our
                directory. -->
           <map:transform src="library/xslt/site2book.xsl" />
           <map:call resource="skinit">
              <map:parameter name="type" value="book2menu" />
              <map:parameter name="path" value="{path}" />
           </map:call>
        </map:resource>
  
        <map:resource name="skin-read">
           <map:read src="skins/{forrest:skin}/{path}" mime-type="{mime-type}" />
        </map:resource>
  
  <!-- Checks the document type of the resource passed in the "src" parameter
         and converts it to document if necessary -->
        <map:resource name="transform-to-document">
           <map:transform type="xinclude" />
           <map:transform type="linkrewriter" src="{linkmap}" />
           <map:act type="sourcetype" src="{src}">
              <map:select type="parameter">
                 <map:parameter name="parameter-selector-test" value="{sourcetype}" />
  
                 <map:when test="howto-v10">
                    <map:transform src="library/xslt/howto2document.xsl" label="content" />
                 </map:when>
  
                 <map:when test="docbook-v4.2">
                    <map:transform src="library/xslt/docbook2document.xsl" label="content" />
                 </map:when>
  
                 <map:when test="sdocbook-v1.0">
                    <map:transform src="library/xslt/docbook2document.xsl" label="content" />
                 </map:when>
  
                 <map:otherwise />
              </map:select>
           </map:act>
           <map:transform type="idgen" />
        </map:resource>
     </map:resources>
  
  <!-- =========================== Pipelines ================================= -->
     <map:pipelines>
  <!-- Utility Pipeline that creates the grammer for the Chaperon Wiki -->
        <map:pipeline internal-only="true">
  <!-- IMPORTANT! This pipeline sould be cachable -->
           <map:match pattern="chaperon/*.grm">
              <map:generate type="textparser" src="chaperon/{1}.rgrm">
                 <map:parameter name="grammar" value="chaperon/grammars/rgrm.grm" />
              </map:generate>
              <map:transform src="chaperon/stylesheets/rgrm2grm.xsl" />
              <map:serialize type="xml" />
           </map:match>
        </map:pipeline>
  
  <!-- Pipeline that manages the internal URI space
         For the external URI space manager, see the next pipeline. 
         Set it to internal-only="true" in production environment -->
        <map:pipeline internal-only="false">
           <map:match pattern="**tab-**.xml">
              <map:generate src="content/xdocs/tabs.xml" />
              <map:transform type="linkrewriter" src="cocoon:/linkmap" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="tab2menu" />
                 <map:parameter name="path" value="{2}" />
              </map:call>
           </map:match>
  
           <map:match pattern="**book-**/*.xml">
              <map:call resource="book">
                 <map:parameter name="dir" value="{2}/" />
                 <map:parameter name="path" value="{2}/{3}.xml" />
              </map:call>
           </map:match>
  
           <map:match pattern="**book-**.xml">
              <map:call resource="book">
                 <map:parameter name="dir" value="" />
                 <map:parameter name="path" value="{2}.xml" />
              </map:call>
           </map:match>
  
           <map:match pattern="body-todo.xml">
              <map:generate type="file-nolabel" src="status.xml" />
              <map:transform type="linkrewriter" src="cocoon:/linkmap" />
              <map:transform src="library/xslt/todo2document.xsl" label="content" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="/todo.xml" />
              </map:call>
           </map:match>
  
           <map:match pattern="body-forrest-issues.xml">
              <map:generate type="file-nolabel" src="http://issues.cocoondev.org/jira/secure/IssueNavigator.jspa?pid=10000&amp;resolutionIds=-1&amp;view=rss&amp;reset=true" />
              <map:transform src="library/xslt/rssissues2document.xsl" label="content" />
              <map:transform type="idgen" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="nopdf" value="true" />
                 <map:parameter name="path" value="/forrest-issues.xml" />
              </map:call>
           </map:match>
  
           <map:match pattern="body-changes.xml">
              <map:generate type="file-nolabel" src="status.xml" />
              <map:transform type="linkrewriter" src="cocoon:/linkmap" />
              <map:transform src="library/xslt/changes2document.xsl" label="content" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="/changes.xml" />
              </map:call>
           </map:match>
  
           <map:match pattern="body-**/faq.xml">
              <map:generate type="file-nolabel" src="content/xdocs/{1}/faq.xml" />
              <map:transform type="linkrewriter" src="cocoon:/{1}/linkmap" />
              <map:transform src="library/xslt/faq2document.xsl" label="content" />
              <map:call resource="skinit">
                <map:parameter name="type" value="document2html" />
                <map:parameter name="path" value="{1}/faq.xml" />
                <map:parameter name="notoc" value="true" />
              </map:call>
           </map:match>
  
           <map:match pattern="body-faq.xml">
              <map:generate type="file-nolabel" src="content/xdocs/faq.xml" />
              <map:transform type="linkrewriter" src="cocoon:/linkmap" />
              <map:transform src="library/xslt/faq2document.xsl" label="content" />
              <map:call resource="skinit">
                <map:parameter name="type" value="document2html" />
                <map:parameter name="path" value="faq.xml" />
                <map:parameter name="notoc" value="true" />
              </map:call>
           </map:match>
  
  <!-- index pages for contribution categories -->
           <map:match pattern="body-community/*/index.xml">
              <map:generate src="content/xdocs/community/{1}/index.xml" />
              <map:transform type="linkrewriter" src="cocoon:/community/{1}/linkmap" />
              <map:transform type="idgen" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="community/{1}/index" />
              </map:call>
           </map:match>
  
  <!-- no special transformation, yet, for revision pages -->
           <map:match pattern="body-community**revision-*.xml">
              <map:generate src="content/xdocs/community{1}revision-{2}.xml" />
              <map:transform type="linkrewriter" src="cocoon:/community/{1}/linkmap" />
              <map:transform type="idgen" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="community/{1}/revision-{2}" />
              </map:call>
           </map:match>
  
  <!-- all contribution docs -->
           <map:match pattern="body-community/*/*/**.xml">
              <map:aggregate element="all">
                 <map:part src="content/xdocs/community/{1}/{2}/{3}.xml" />
                 <map:part src="cocoon:/revisions-community/{1}/{2}/{3}" />
              </map:aggregate>
              <map:transform type="linkrewriter" src="cocoon:/community/{1}/{2}/linkmap" />
              <map:transform type="idgen" />
              <map:transform src="library/xslt/{1}2document.xsl" label="content" />
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="community/{1}/{2}/{3}.xml" />
              </map:call>
           </map:match>
  
  <!-- revisions only implemented for community pages -->
           <map:match pattern="revisions-community/*/*/**">
              <map:generate type="directory" src="content/xdocs/community/{1}/{2}">
                 <map:parameter name="dateFormat" value="yyyy-MM-dd hh:mm" />
              </map:generate>
              <map:transform src="library/xslt/directory2revisions.xsl" label="content">
                 <map:parameter name="use-request-parameters" value="true" />
                 <map:parameter name="page" value="{3}" />
              </map:transform>
              <map:serialize type="xml" />
           </map:match>
  
  <!-- HTML DTD Documentation generation pipeline, makes use of NekoDTD tool -->
           <map:match pattern="body-**.dtdx.xml">
              <map:generate type="nekodtd" src="resources/schema/dtd/{1}.dtd">
                 <map:parameter name="config-class" value="org.cyberneko.dtd.DTDConfiguration" />
              </map:generate>
              <map:transform src="library/xslt/dtdx2flat.xsl" />
              <map:transform src="library/xslt/flat2document.xsl" />
              <map:transform type="idgen" />
              <map:call resource="skinit">
                <map:parameter name="type" value="document2html" />
                <map:parameter name="isfaq" value="true" />
                <map:parameter name="notoc" value="true" />
                <map:parameter name="path" value="{1}.dtdx.xml" />
              </map:call>
           </map:match>
  
  
         
  <!-- Generates body HTML for files in subdirs -->
           <map:match pattern="body-**/*.xml">
  <!-- if the file is present as ihtml, convert to doc-v11... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}/{2}.ihtml" />
                 <map:generate src="content/xdocs/{../1}/{../2}.ihtml" type="html" />
                 <map:transform src="library/xslt/html2document.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/{../1}/linkmap" />
                 <map:transform type="idgen" />
                 <map:call resource="skinit">
                    <map:parameter name="type" value="document2html" />
                    <map:parameter name="path" value="{../1}/{../2}.xml" />
                 </map:call>
              </map:act>
  
  <!-- if the file is present as html, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}/{2}.ehtml" />
                 <map:generate src="content/xdocs/{../1}/{../2}.ehtml" />
                 <map:transform src="library/xslt/html2htmlbody.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/{../1}/linkmap" />
                 <map:serialize type="xml" />
              </map:act>
  
  <!-- if the file is present as .cwiki, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}/{2}.cwiki" />
                 <map:generate src="content/xdocs/{../1}/{../2}.cwiki" type="textparser">
                    <map:parameter name="grammar" value="chaperon/grammars/wiki.grm" />
  
                    <map:parameter name="includeignorabletokens" value="true" />
                 </map:generate>
                 <map:transform src="library/xslt/wiki2htmlpage.xsl" />
                 <map:transform src="library/xslt/wiki2html.xsl" />
                 <map:transform src="library/xslt/html2document.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/{../1}/linkmap" />
                 <map:transform type="idgen" />
                 <map:call resource="skinit">
                    <map:parameter name="type" value="document2html" />
                    <map:parameter name="path" value="{../1}/{../2}.xml" />
                 </map:call>
              </map:act>
  
              <map:generate src="content/xdocs/{1}/{2}.xml" />
              <map:call resource="transform-to-document">
                 <map:parameter name="src" value="content/xdocs/{1}/{2}.xml" />
                 <map:parameter name="linkmap" value="cocoon:/{1}/linkmap" />
              </map:call>
              
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="{1}/{2}.xml" />
              </map:call>
           </map:match>
  
  <!-- Generates body HTML for root-level files -->
           <map:match pattern="body-**.xml">
  <!-- if the file is present as ihtml, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}.ihtml" />
                 <map:generate src="content/xdocs/{../1}.ihtml" type="html" />
                 <map:transform src="library/xslt/html2document.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/linkmap" />
                 <map:transform type="idgen" />
                 <map:call resource="skinit">
                    <map:parameter name="type" value="document2html" />
                    <map:parameter name="path" value="{../1}.xml" />
                 </map:call>
              </map:act>
  
  
            
  <!-- if the file is present as html, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}.ehtml" />
                 <map:generate src="content/xdocs/{../1}.ehtml" />
                 <map:transform src="library/xslt/html2htmlbody.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/linkmap" />
                 <map:serialize type="xml" />
              </map:act>
  
  <!-- if the file is present as .cwiki, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/xdocs/{1}.cwiki" />
  
                 <map:generate src="content/xdocs/{../1}.cwiki" type="textparser">
                    <map:parameter name="grammar" value="chaperon/grammars/wiki.grm" />
                    <map:parameter name="includeignorabletokens" value="true" />
                 </map:generate>
                 <map:transform src="library/xslt/wiki2htmlpage.xsl" />
                 <map:transform src="library/xslt/wiki2html.xsl" />
                 <map:transform src="library/xslt/html2document.xsl" />
                 <map:transform type="linkrewriter" src="cocoon:/linkmap" />
                 <map:transform type="idgen" />
                 <map:call resource="skinit">
                    <map:parameter name="type" value="document2html" />
                    <map:parameter name="path" value="{../1}.xml" />
                 </map:call>
              </map:act>
  
              <map:generate src="content/xdocs/{1}.xml" />
              <map:call resource="transform-to-document">
                 <map:parameter name="src" value="content/xdocs/{1}.xml" />
                 <map:parameter name="linkmap" value="cocoon:/linkmap" />
              </map:call>
  
              <map:call resource="skinit">
                 <map:parameter name="type" value="document2html" />
                 <map:parameter name="path" value="{1}.xml" />
              </map:call>
           </map:match>
        </map:pipeline>
  
        <map:pipeline>
           <map:match pattern="abs-linkmap">
              <map:generate src="content/xdocs/site.xml" />
              <map:transform src="library/xslt/absolutize-linkmap.xsl" />
              <map:serialize type="xml" />
           </map:match>
  
           <map:match pattern="abs-linkmap/**">
              <map:generate src="cocoon:/abs-linkmap" />
              <map:transform type="xpath">
                 <map:parameter name="include" value="//*[@href='{1}']" />
              </map:transform>
              <map:serialize type="xml" />
           </map:match>
  
           <map:match pattern="**linkmap">
              <map:generate src="cocoon:/abs-linkmap" />
              <map:transform src="library/xslt/relativize-linkmap.xsl">
                 <map:parameter name="path" value="{0}" />
              </map:transform>
              <map:serialize type="xml" />
           </map:match>
  
  <!-- This derivation of '**linkmap' is used when generating book.xml from a
     site.xml.  The /** suffix identifies a @href prefix which all nodes in the
     returned subtree must have. -->
           <map:match pattern="**linkmap/**">
              <map:generate src="cocoon:/abs-linkmap/{2}" />
              <map:transform src="library/xslt/relativize-linkmap.xsl">
                 <map:parameter name="path" value="{1}linkmap" />
              </map:transform>
              <map:serialize type="xml" />
           </map:match>
        </map:pipeline>
  
        <map:pipeline internal-only="false">
  <!-- ======================    editor    ============================== -->
           <map:match pattern="edit**">
              <map:mount uri-prefix="edit" src="editor.xmap" check-reload="yes" />
           </map:match>
  
  <!-- ==================   External URI-space    ========================= -->
           <map:match pattern="">
              <map:redirect-to uri="{request:contextPath}/index.html" />
           </map:match>
  
                
           <map:match pattern="**">
           
  <!-- Generates printerfriendly HTML from the body (link rewriting) -->
  <!-- NKB disabled temporarily till errors are fixed
           <map:match pattern="printer-friendly/**.html">
              <map:generate src="cocoon://body-{1}.xml"/>
              <map:serialize/>
           </map:match>
           
           <map:match pattern="**/printer-friendly/*.html">
              <map:generate src="cocoon://body-{1}/{2}.xml"/>
              <map:serialize/>
           </map:match>
  -->         
  <!-- Generates source HTML from the body (link rewriting) -->
  <!-- NKB disabled temporarily till errors are fixed
           <map:match pattern="doc-source/**.html">
              <map:generate src="content/xdocs/{1}.xml"/>
              <map:serialize type="xml"/>
           </map:match>
           
           <map:match pattern="**/doc-source/*.html">
              <map:generate src="content/xdocs/{1}/{2}.xml"/>
              <map:serialize type="xml"/>
           </map:match>
  --> 
               
  <!-- if the file is present verbatim as content, give that to the user... -->
              <map:act type="resource-exists">
                 <map:parameter name="url" value="content/{1}" />
                 <map:match pattern="**.html">
  <!--
          Use this instead if you don't want JTidy to clean up your HTML
          <map:read src="content/{0}" mime-type="text/html"/>
          -->
                    <map:generate type="html" src="content/{1}.html" />
                    <map:serialize type="html" />
                 </map:match>
  
                 <map:match pattern="**.xml">
                    <map:generate type="file" src="content/{1}.xml" />
                    <map:serialize type="xml" />
                 </map:match>
  
                 <map:match pattern="skin/**.css">
                    <map:read src="content/{1}.css" mime-type="text/css" />
                 </map:match>
  
                 <map:match pattern="**.js">
                    <map:read src="content/{1}.js" mime-type="application/javascript" />
                 </map:match>
  
                 <map:match pattern="**.gif">
                    <map:read src="content/{1}.gif" mime-type="image/gif" />
                 </map:match>
  
                 <map:match pattern="**.png">
                    <map:read src="content/{1}.png" mime-type="image/png" />
                 </map:match>
  
                 <map:match pattern="**.jpg">
                    <map:read src="content/{1}.jpg" mime-type="image/jpeg" />
                 </map:match>
  
                 <map:match pattern="**.jpeg">
                    <map:read src="content/{1}.jpeg" mime-type="image/jpeg" />
                 </map:match>
  
                 <map:match pattern="**.pdf">
                    <map:read src="content/{1}.pdf" mime-type="application/pdf" />
                 </map:match>
  
                 <map:match pattern="**.swf">
                    <map:read src="content/{1}.swf" mime-type="application/x-shockwave-flash" />
                 </map:match>
  
                 <map:match pattern="**">
                    <map:read src="content/{1}" mime-type="application/unknown" />
                 </map:match>
              </map:act>
  
             
  <!-- ... otherwise try to generate it using these rules.  -->
              <map:match pattern="apachestats">
                 <map:generate type="html" src="http://www.apache.org/~rubys/stats/xml.apache.org/">
                    <map:parameter name="xpath" value="/html/body//a[contains(@href,'.xml')]" />
                 </map:generate>
  
                 <map:serialize type="xml" />
              </map:match>
  
              <map:match pattern="*.html">
                 <map:aggregate element="site">
                    <map:part src="cocoon:/book-{1}.xml" />
                    <map:part src="cocoon:/tab-{1}.xml" />
                    <map:part src="cocoon:/body-{1}.xml" label="content" />
                 </map:aggregate>
  
                 <map:call resource="skinit">
                    <map:parameter name="type" value="site2xhtml" />
                    <map:parameter name="path" value="{0}" />
                 </map:call>
              </map:match>
  
              <map:match pattern="**/*.html">
                 <map:aggregate element="site">
                    <map:part src="cocoon:/{1}/book-{1}/{2}.xml" />
  
                    <map:part src="cocoon:/{1}/tab-{1}/{2}.xml" />
  
                    <map:part src="cocoon:/body-{1}/{2}.xml" label="content" />
                 </map:aggregate>
  
                 <map:call resource="skinit">
                    <map:parameter name="type" value="site2xhtml" />
                    <map:parameter name="path" value="{0}" />
                 </map:call>
              </map:match>
  
              <map:match pattern="*.dtdx.pdf">
                 <map:generate type="nekodtd" src="resources/schema/dtd/{1}.dtd">
                    <map:parameter name="config-class" value="org.cyberneko.dtd.DTDConfiguration" />
                 </map:generate>
                 <map:transform src="library/xslt/dtdx2flat.xsl" />
                 <map:transform src="library/xslt/flat2document.xsl" />
                 <map:transform src="skins/{forrest:skin}/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
              <map:match pattern="**/*.dtdx.pdf">
                 <map:generate type="nekodtd" src="resources/schema/dtd/{2}.dtd">
                    <map:parameter name="config-class" value="org.cyberneko.dtd.DTDConfiguration" />
                 </map:generate>
                 <map:transform src="library/xslt/dtdx2flat.xsl" />
                 <map:transform src="library/xslt/flat2document.xsl" />
                 <map:transform src="skins/{forrest:skin}/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
              <map:match pattern="changes.pdf">
                 <map:generate type="file-nolabel" src="status.xml" />
                 <map:transform src="library/xslt/changes2document.xsl" label="content" />
                 <map:transform src="skins/forrest-site/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
              <map:match pattern="changes.rss">
                 <map:generate type="file-nolabel" src="status.xml" />
                 <map:transform src="library/xslt/changes2rss.xsl" label="content" />
                 <map:serialize type="rss091" />
              </map:match>
  
              <map:match pattern="todo.pdf">
                 <map:generate type="file-nolabel" src="status.xml" />
                 <map:transform src="library/xslt/todo2document.xsl" label="content" />
                 <map:transform src="skins/forrest-site/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
              <map:match pattern="faq.pdf">
                 <map:generate type="file-nolabel" src="content/xdocs/faq.xml" />
                 <map:transform src="library/xslt/faq2document.xsl" label="content" />
                 <map:transform src="skins/forrest-site/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
              <map:match pattern="**.pdf">
                 <map:generate src="content/xdocs/{1}.xml" />
                 <map:call resource="transform-to-document">
                    <map:parameter name="src" value="content/xdocs/{1}.xml" />
                    <map:parameter name="linkmap" value="cocoon:/linkmap" />
                 </map:call>
                 <map:transform src="skins/{forrest:skin}/xslt/fo/document2fo.xsl" />
                 <map:serialize type="fo2pdf" />
              </map:match>
  
  <!-- ================  Directory redirects   =========================== -->
  <!-- Redirect any request for a directory to the directory's index.html file  -->
              <map:match pattern="**/">
                 <map:redirect-to uri="{request:contextPath}/{1}/index.html" />
              </map:match>
  
  <!-- ================  Libre   =========================== -->
              <map:match pattern="libre">
                 <map:generate type="libre" src="content/xdocs">
                    <map:parameter name="depth" value="-1" />
                 </map:generate>
  
                 <map:serialize type="xml" />
              </map:match>
  
  <!-- ================  Static  =========================== -->
              <map:match pattern="skin/**.js">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="scripts/{1}.js" />
                    <map:parameter name="mime-type" value="application/javascript" />
                 </map:call>
              </map:match>
  
              <map:match pattern="**/skin/**.js">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="scripts/{2}.js" />
                    <map:parameter name="mime-type" value="application/javascript" />
                 </map:call>
              </map:match>
  
              <map:match pattern="**.js">
                 <map:read src="resources/scripts/{1}.js" mime-type="application/javascript" />
              </map:match>
  
              <map:match pattern="skin/**.css">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="css/{1}.css" />
                    <map:parameter name="mime-type" value="text/css" />
                 </map:call>
              </map:match>
  
              <map:match pattern="**/skin/**.css">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="css/{2}.css" />
                    <map:parameter name="mime-type" value="text/css" />
                 </map:call>
              </map:match>
  
              <map:match pattern="**.css">
                 <map:read src="resources/css/{1}.css" mime-type="text/css" />
              </map:match>
  
              <map:match pattern="skin/images/**.*">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="images/{1}.{2}" />
                    <map:parameter name="mime-type" value="image/{2}" />
                 </map:call>
              </map:match>
  
  <!-- WARNING: You are strongly advised not to make use of this target, as it
     leads to browsers having to cache multiple copies of the images, one per
     directory. See the forrest-site skin XSLTs for an example of how to make
     all image references use the 'skin/images/**.*' rule above -->
              <map:match pattern="**/skin/images/**.*">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="images/{2}.{3}" />
                    <map:parameter name="mime-type" value="image/{3}" />
                 </map:call>
              </map:match>
  
  <!-- DS: handles images local to a contributor directory -->
              <map:match pattern="**my-images/**.*">
                 <map:read src="content/xdocs/{1}my-images/{2}.{3}" mime-type="image/{3}" />
              </map:match>
  
              <map:match pattern="images/**.png">
                 <map:act type="resource-exists">
                    <map:parameter name="url" value="resources/images/{1}.svg" />
                    <map:generate src="resources/images/{../1}.svg" />
                    <map:serialize type="svg2png" />
                 </map:act>
  
                 <map:read src="resources/images/{1}.png" mime-type="image/png" />
              </map:match>
  
              <map:match pattern="images/**.*">
                 <map:read src="resources/images/{1}.{2}" mime-type="image/{2}" />
              </map:match>
  
  <!-- WARNING: See above: this target should not be made use of -->
              <map:match pattern="**/images/**.*">
                 <map:read src="resources/images/{2}.{3}" mime-type="image/{3}" />
              </map:match>
  
              <map:match pattern="**favicon.ico">
                 <map:call resource="skin-read">
                    <map:parameter name="path" value="images/favicon.ico" />
                    <map:parameter name="mime-type" value="image/x-ico" />
                 </map:call>
              </map:match>
           </map:match>
        </map:pipeline>
     </map:pipelines>
  </map:sitemap>
  
  
  
  
  1.1                  xml-forrest/src/resources/conf/old/cocoon.xconf
  
  Index: cocoon.xconf
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <cocoon version="2.1">
  
  <!--+
      |  This is the Apache Cocoon configuration file. This is the place
      |  where you configure the components that Cocoon uses internally (stuff
      |  like the cache) or handles to the pipeline components
      |  (stuff like XML parsers or XSLT processors).
      +-->
  
  <!-- =========================== 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"/>
  
  
  <!-- =================== Sitemap Input/Output Modules ====================== -->
  
    <!--+
        | InputModules are a replacement to reading values directly
        | e.g. from request parameters. By using this abstraction and
        | indirection, other components can be more generic and changes
        | to the application logic are easier.
        |
        | A number of components already use InputModules: the sitemap processor, 
        | flow, some matchers, the linkrewriting transformer, database actions
        | and more.
  	  |
        | For example the sitemap processor allows to obtain a value
        | named "foo" from an the InputModule for request parameters by
        | writing {request-param:foo} wherever a sitemap variable is
        | allowed. 
  	  |
        | Some InputModules need the help of other InputModules to
        | obtain values and only apply a function to the obtained value
        | or change the name of the attribute. These modules usually
        | carry "Meta" in their name. An example is the ChainMetaModule
        | which tries several other modules in turn until a non-null
        | value is obtained or all modules are tied.
  	  |
        | For details and optional configuration parameters refer to the
        | accompanying javadocs.
        +-->
    <input-modules>
      <component-instance class="org.apache.cocoon.components.modules.input.GlobalInputModule" logger="core.modules.input" name="global"/>
      <component-instance class="org.apache.cocoon.components.modules.input.RequestModule" logger="core.modules.input" name="request"/>
      <component-instance class="org.apache.cocoon.components.modules.input.SessionModule" logger="core.modules.input" name="session"/>
      <component-instance class="org.apache.cocoon.components.modules.input.RequestParameterModule" logger="core.modules.input" name="request-param"/>
      <component-instance class="org.apache.cocoon.components.modules.input.RawRequestParameterModule" logger="core.modules.input" name="raw-request-param"/>
      <component-instance class="org.apache.cocoon.components.modules.input.RequestAttributeModule" logger="core.modules.input" name="request-attr"/>
      <component-instance class="org.apache.cocoon.components.modules.input.HeaderAttributeModule" logger="core.modules.input" name="request-header"/>
      <component-instance class="org.apache.cocoon.components.modules.input.SessionAttributeModule" logger="core.modules.input" name="session-attr"/>
      <component-instance class="org.apache.cocoon.components.modules.input.SystemPropertyModule" logger="core.modules.input" name="system-property"/>
      <component-instance class="org.apache.cocoon.components.modules.input.StringConstantModule" logger="core.modules.input" name="constant"/>
      <component-instance class="org.apache.cocoon.components.modules.input.RandomNumberModule" logger="core.modules.input" name="random"/>
      <component-instance class="org.apache.cocoon.components.modules.input.DigestMetaModule" logger="core.modules.input" name="digest"/>
      <component-instance class="org.apache.cocoon.components.modules.input.DateInputModule" logger="core.modules.input" name="date">
        <!-- <format>EEE, d MMM yyyy HH:mm:ss Z</format> -->
        <!--Eg: Mon, 28 Oct 2002 03:08:49 +1100 -->
      </component-instance>
      <component-instance class="org.apache.cocoon.components.modules.input.NullInputModule" logger="core.modules.input" name="nullinput"/>
      <component-instance class="org.apache.cocoon.components.modules.input.XMLMetaModule" logger="core.modules.input" name="xmlmeta"/>
      <component-instance class="org.apache.cocoon.components.modules.input.MapMetaModule" logger="core.modules.input" name="mapmeta"/>
      <component-instance class="org.apache.cocoon.components.modules.input.DateMetaInputModule" logger="core.modules.input" name="datemeta"/>
      <component-instance class="org.apache.cocoon.components.modules.input.XMLFormInput" logger="core.modules.input" name="xmlform"/>
      <component-instance class="org.apache.cocoon.components.modules.input.JXPathMetaModule" logger="core.modules.input" name="jxpath"/>
      <component-instance class="org.apache.cocoon.components.modules.input.SimpleMappingMetaModule" logger="core.modules.input" name="simplemap"/>
         <component-instance name="defaults"       class="org.apache.cocoon.components.modules.input.DefaultsMetaModule">
          <values>
            <skin>forrest-site</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>
  
  
  </input-modules>
  
  
  <!-- ================================= XML ================================ -->
  
    <!--+
        | XML Parser
        |
        | The default parser used in Apache Cocoon is
        | org.apache.excalibur.xml.impl.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.excalibur.xml.impl.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.excalibur.xml.sax.SAXParser=org.apache.excalibur.xml.impl.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).
        +-->
    
    <!-- HSQLDB Server for samples:
      Comment this section out if you don't care about the samples.
          port   : number      port where the server is listening
          silent : true/false  display all queries
          trace  : true/false  display JDBC trace messages
          -->
          <!--
    <hsqldb-server class="org.apache.cocoon.components.hsqldb.ServerImpl" logger="core.hsqldb-server" pool-max="1" pool-min="1">
       <parameter name="port" value="9002"/>
       <parameter name="silent" value="true"/>
       <parameter name="trace" value="false"/>
     </hsqldb-server>
     -->
  
  <xml-parser class="org.apache.excalibur.xml.impl.JaxpParser" logger="core.xml-parser" pool-grow="4" pool-max="32" pool-min="8">
      <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>
  
    <!--+
        | Entity resolution catalogs
        |
        | 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.)
        |
        |     <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="/home/jeff/apache/xml/xml-forrest/src/documentation/resources/schema/catalog"/>
      <parameter name="verbosity" value="1"/>
    </entity-resolver>
  
    <!--+
        | XSLT Processor
        |
        | 'incremental-processing' (only works with Xalan) allows the XSLT
        | processor to start the output of the transformation as soon as possible.
        | if set to false, the transforer waits until the end of the
        | transformation to deliver the output.
        +-->
    <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.excalibur.xml.xpath.XPathProcessorImpl" logger="core.xpath-processor"/>
  
    <!-- The XMLizers converts different mime-types to XML -->
    <xmlizer>
        <parser mime-type="text/html"  role="org.apache.excalibur.xml.sax.SAXParser/HTML"/>
        <parser mime-type="text/xml"   role="org.apache.excalibur.xml.sax.SAXParser"/>
        <parser mime-type="text/plain" role="org.apache.excalibur.xml.sax.SAXParser/Text"/>
  </xmlizer>
  
  <!-- ============================ Object Stores =========================== -->
  
    <!--+
        | Transient Store: holds objects that don't have to survive shutdown
        +-->
    <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>
  
    <!--+
        | Persistent Store: holds objects that have to survive shutdown.
        | WARNING: FilesystemStore is broken. Cocoon uses JispFilesystemStore instead.
        |
        | 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.
        |
        | JispFilesystemStore configuration parameters:
        |  datafile: Name of the store file to use. Defaults to cocoon.dat
        |  indexfile: Name of the index file to use. Defaults to cocoon.idx
        |  order: FIXME: put description here.
        +-->
    <persistent-store class="org.apache.cocoon.components.store.JispFilesystemStore"
                      logger="core.store.persistent">
      <parameter name="use-cache-directory" value="true"/>
      <parameter name="order" value="2701"/>
    </persistent-store>
  
    <!--+
        | Store Janitor: the store garbage collector and memory usage controller.
        |
        | 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>
  
  <!-- ========================= Protocol Handlers =========================== -->
  
    <!--+
        | Source Factories
        |
        | Each source factory adds a special uri protocol to the system.
        +-->
    <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"/>
      <component-instance class="org.apache.cocoon.components.source.impl.FileSourceFactory" name="file"/>
      <component-instance class="org.apache.excalibur.source.impl.URLSourceFactory" name="*"/>
    </source-factories>
  
  
  <!-- ====================== System Components =========================== -->
  
    <!--+
        | The core classloader implementation
        +-->
    <classloader class="org.apache.cocoon.components.classloader.ClassLoaderManagerImpl" logger="core.classloader"/>
  
    <!--+
        | XML compiler/decompiler
        |
        | these components are used to process SAX events and produce a binary
        | representation that is much more compact and efficient for
        | subsequent parsing. These are used by the cache system to save
        | the intermediate results of the pipeline stages reducing the overhead
        | of xml parsing/serialization.
        +-->
    <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 Monitor keeps track on changes to a Resource.
        +-->
    <monitor logger="core.monitor">
      <thread frequency="10000" priority="5"/>
    </monitor>
  
    <!--+
        | The Cache Manager is a component that can be used to cache content.
        | It is currently used by the cinclude transformer
        +-->
    <component class="org.apache.cocoon.transformation.helpers.DefaultIncludeCacheManager" role="org.apache.cocoon.transformation.helpers.IncludeCacheManager">
      <!-- Set the preemptive-loader-url to a pipeline inside Cocoon that contains the
           preemptive loader action. The URL must be absolute! 
      <parameter name="preemptive-loader-url" 
                 value="http://localhost:8080/cocoon/samples/cinclude/loader"/>
      -->
   </component>
  
  
    <!-- Profiler:
      The profiler facilitates the gathering of statistics about timings of
      different steps of pipelines. Profiler consists of several components:
       profiling pipeline and profiler generator
      which are used to generate the profile report. You need to enable all of
      these components to use profiler.
      -->
    <profiler results="10"/>
  
  </cocoon>