avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From je...@apache.org
Subject cvs commit: avalon-site/src/documentation/resources/stylesheets changes2document.xsl filterlinks.xsl
Date Mon, 03 Mar 2003 13:18:17 GMT
jefft       2003/03/03 05:18:17

  Modified:    src/documentation/content/xdocs cvs.xml
               src/documentation/content/xdocs/developing hammant.xml
               src/documentation/content/xdocs/history book.xml index.xml
               src/documentation/content/xdocs/project pmc.xml
  Added:       src/documentation sitemap.xmap
               src/documentation/content/xdocs/history changes.xml
               src/documentation/resources/stylesheets changes2document.xsl
                        filterlinks.xsl
  Removed:     src/documentation/content/history book.xml call-to-vote.xml
                        changes.xml index.xml need-for-avalon.xml
                        what-is-a-server.xml
  Log:
  Fix remaining broken links.  Also cleaned up the history/ section, including
  changes.html.
  
  Revision  Changes    Path
  1.1                  avalon-site/src/documentation/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">
          <!-- AVALON MODIFICATION -->
          <map:transform src="resources/stylesheets/filterlinks.xsl" />
          <!-- /AVALON MODIFICATION -->
           <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>
  
           <!-- AVALON ADDITION -->
           <map:match pattern="body-**/changes.xml">
             <map:generate type="file-nolabel" src="content/xdocs/{1}/changes.xml" />
             <map:transform type="linkrewriter" src="cocoon:/linkmap" />
             <map:transform src="resources/stylesheets/changes2document.xsl" label="content" />
             <map:call resource="skinit">
               <map:parameter name="type" value="document2html" />
               <map:parameter name="path" value="/{1}/changes.xml" />
             </map:call>
           </map:match>
           <!-- /AVALON ADDITION -->
         
  <!-- 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.6       +1 -1      avalon-site/src/documentation/content/xdocs/cvs.xml
  
  Index: cvs.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/src/documentation/content/xdocs/cvs.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- cvs.xml	26 Feb 2003 08:43:01 -0000	1.5
  +++ cvs.xml	3 Mar 2003 13:18:16 -0000	1.6
  @@ -15,7 +15,7 @@
   	<title>Bleeding-edge only</title>
   	<p>If you are looking to download the source code for stable versions of the Avalon
   	projects, you're in the wrong place. You should download a source release from
  -	<link href="srcdownload.cgi">the source download page</link>.</p>
  +    <link href="http://avalon.apache.org/srcdownload.cgi">the source download page</link>.</p>
   </section>
   <section>
   	<title>About CVS</title>
  
  
  
  1.3       +1 -1      avalon-site/src/documentation/content/xdocs/developing/hammant.xml
  
  Index: hammant.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/src/documentation/content/xdocs/developing/hammant.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- hammant.xml	23 Feb 2003 05:48:17 -0000	1.2
  +++ hammant.xml	3 Mar 2003 13:18:16 -0000	1.3
  @@ -8,7 +8,7 @@
     <authorblurb>
       <para>
          Paul is most interested in applications that run on top of Phoenix.  As such he constantly
  -       trawls the internet look for suitable server applications for Pheonix.  He tries to persuade 
  +       trawls the internet look for suitable server applications for Phoenix.  He tries to persuade 
          the authors to rebase to Phoenix or make their apps phoenix compatible.
       </para>
       <para>
  
  
  
  1.2       +1 -0      avalon-site/src/documentation/content/xdocs/history/book.xml
  
  Index: book.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/src/documentation/content/xdocs/history/book.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- book.xml	29 Jan 2003 15:57:47 -0000	1.1
  +++ book.xml	3 Mar 2003 13:18:17 -0000	1.2
  @@ -11,6 +11,7 @@
           <menu-item label="Call To Vote" href="call-to-vote.html"/>
           <menu-item label="Need For Avalon" href="need-for-avalon.html"/>
           <menu-item label="What is a Server?" href="what-is-a-server.html"/>
  +        <menu-item label="Historic Changes" href="changes.html"/>
       </menu>
   </book>
   
  
  
  
  1.4       +1 -1      avalon-site/src/documentation/content/xdocs/history/index.xml
  
  Index: index.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/src/documentation/content/xdocs/history/index.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- index.xml	7 Feb 2003 15:04:02 -0000	1.3
  +++ index.xml	3 Mar 2003 13:18:17 -0000	1.4
  @@ -38,7 +38,7 @@
       under the name Cornerstone and the general components were packaged under the name Excalibur.
   </p>
   <p>
  -  You may check the historical changes from before splitting Avalon into seperate projects <link href="changes.html">here</link>.
  +  You may check the historical changes from before splitting Avalon into separate projects <link href="changes.html">here</link>.
   </p>
   
   </section>
  
  
  
  1.1                  avalon-site/src/documentation/content/xdocs/history/changes.xml
  
  Index: changes.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE changes PUBLIC "-//APACHE//DTD Changes V1.1//EN" "changes-v11.dtd">
  <changes>
      <title>Avalon History of Changes</title>
      <devs>
          <person name="Federico Barbieri" email="fede@apache.org" id="FB"/>
          <person name="Berin Loritsch" email="bloritsch@apache.org" id="BL"/>
          <person name="Peter Donald" email="peter at apache.org" id="PD"/>
      </devs>
      <release version="3.1a1" date="29th January 2001">
          <action dev="BL" type="add">
              Added in DataSource implementation for use with J2EE style apps.
          </action>
          <action dev="PD" type="add">
              Added the notion of ServerApplication to replace the concept of .bar as a server.
              A ServerApplication is a isolated environment that manages it's own threads,
              security, logging, classloading etc. It has a specific layout as documented
              in Assembly guide. The kernel was refactored to contain ServerApplications
              rather than Blocks and a lot of support was refactored to support safe separation
              of ServerApplications. The archives are in .sar format and are similar in many
              aspects to .war of servlet fame.
          </action>
          <action dev="PD" type="add">
              Refactored thread management so specific thread pools can assigned to specific
              threads/thread groups in a manner similar to how ContextClassLoader is associated
              with threads. Thread management was also moved to a new package
              (org.apache.avalon.util.threads).
          </action>
          <action dev="PD" type="update">
              Modify the packaging of all kernel related files into org.apache.phoenix.
          </action>
          <action dev="PD" type="update">
              Modify the packaging of all blocks/services/demos into package hierarchy
              org.apache.cornerstone.
          </action>
          <action dev="PD" type="add">
              Added two new services/blocks by refactoring code from tomcat and old SocketServer.
              There is now a SocketManager and a ConnectionManager. The TLS code is now much improved
              and there is the beginning of client socket factory. This provides for future client
              socket code factories for SSL/TLS or SSH1/2 etc. Also adapted SimpleServer to use
              these methods.
          </action>
          <action dev="PD" type="update">
              Changed config file from per .bar to per .sar and changed name from BAR-INF/&lt;
              barname&gt;.conf.xml to conf/assembly.xml. It still contains configuration data as
              well as assembly data but this will be removed in a future revision.
          </action>
          <action dev="PD" type="add">
              Added an extra config file to .sar (conf/server.xml) that is responsible for
              configuring .sar wide variables. Some examples include security, logging and thread loading.
          </action>
          <action dev="PD" type="update">
              Refactored most of the code to use AbstractLoggable and the corresponding getLogger()
              method. Also removed the remaining static access to LogKit.
          </action>
          <action dev="PD" type="update">
              Continued to refine the Camelot API.
          </action>
          <action dev="PD" type="add">
              Removed blockdefs.properties in favour of adding attributes to manifest entries of jars.
              This should enable future GUI tools to easily assemble blocks.
          </action>
          <action dev="PD" type="add">
              Re-Added the sub-classed context BlockContext to allow blocks full access to important
              environmental information.
          </action>
          <action dev="PD" type="update">
              Many of the lifecycle methods now have a chance to fail by throwing an exception.
          </action>
          <action dev="PD" type="remove">
              Removed all notion of kernel configurability.
          </action>
          <action dev="PD" type="update">
              Enabled securityManager by default and now ServerApplications have to specify a security
              policy.
          </action>
          <action dev="PD" type="update">
              Removed classloader hack in ObjectStorageRepository as it is no longer required with
              new .sar format.
          </action>
          <action dev="PD" type="update">
              Homogenized the remaining code to follow one style.
          </action>
          <action dev="PD" type="update">
              Configuration temporarily will create new Configuration objects on getChild() if they
              don't exist until Berin's work is finalized.
          </action>
          <action dev="PD" type="update">
              Altered Compose so that it threw ComponentManagerException of which the previous two
              exceptions thrown are now subclasses.
          </action>
          <action dev="PD" type="update">
              Made loading of jars relative to avalon-loader.jar rather than via current working
              directory so that some tools (ie VAJava) would not complain.
          </action>
          <action dev="PD" type="update">
              Separated out tools directory/jars from main jars that avalon uses.
          </action>
          <action dev="BL" type="update">
              A number of bug fixes and more descriptive exceptions for Configuration and Parameters
              objects.
          </action>
      </release>
  
      <release version="3.0a3" date="11th October 2000">
          <action dev="PD" type="update">
              Made SocketManager accept arbitrary SocketServer.Listener objects.
          </action>
          <action dev="FB" type="update">
              Updated all blocks to use new system level logging.
          </action>
          <action dev="FB" type="update">
              Changed Threads so that it is now a system level service.
          </action>
          <action dev="PD" type="add">
              Added new LogManager that manages arbitrary log categories.
          </action>
          <action dev="PD" type="add">
              Added the BlockInfo requirement. Thus blocks need to have an XML file that describe the
              services it offers, the services it depends upon and other meta information.
          </action>
          <action dev="PD" type="add">
              Added support for Blocks to implement BlockContextualizable. If they do this the kernel
              will pass them Context information. Currently the context information is limited to
              a handle to kernel instance and the name they were configured under.
          </action>
          <action dev="PD" type="add">
              Changed SimpleContext and SimpleComponentManager to DefaultComponent and
              DefaultComponentManager to match better with other Avalon design patterns.
          </action>
          <action dev="PD" type="add">
              Added functionality that allowed you to listen to BlockEvents generated by kernel.
              Events indicate when a Block is being created, initialized, composed, destroyed, ran and
              stopped.
          </action>
          <action dev="PD" type="add">
              Updated Logger interface so arbitrary integer levels are not allowed to be passed. The user
              is forced to use defined enumerants. This was done to increase safety.
          </action>
          <action dev="PD" type="add">
              Updated kernel so that is now delegates to AvalonKernelConfigurator to configure itself.
          </action>
          <action dev="PD" type="update">
              Updated kernel so that it is now pluggable. Any kernel can be loaded via the code in main.
              Kernel configuration files are loaded from default configuration directory in a file
              with same name as class with a .conf.xml appended.
          </action>
          <action dev="PD" type="update">
              Removed getDescription method from Block as it is to become part of BlockInfo
          </action>
          <action dev="PD" type="update">
              Change methods in Configure/Reconfigure to throw ConfigurationExceptions.
          </action>
          <action dev="PD" type="update">
              Change methods in Configure/Reconfigure to match Java standards.
          </action>
          <action dev="FB" type="add">
              Add to the Logger log level support.
          </action>
          <action dev="BL" type="add">
              JNDI for the lookup of blocks and components.  Still keep the
              Composer interface for those lightweight blocks that don't
              need the extra features of the Context.  JNDI should be the
              ComponentManager of choice.
          </action>
          <action dev="BL" type="update">
              Synchronized Avalon with Cocoon 2 enhancements.  Uses SAX 2 for
              configuration, incorporated abstract and base classes for fundamental
              types, and incorporated the NamedComponent interface.
          </action>
          <action dev="BL" type="update">
              Upgraded Loader architecture and the AvalonClassLoader to provide
              better detail, as well as new ways of configuring the loader at the
              beginning.  It does not require any extra libraries to load.
          </action>
      </release>
  
      <release version="2.1" date="2000">
          <action dev="FB" type="update">
              Changed the Acceptor pattern to a more flexible event provider.
          </action>
          <action dev="FB" type="add">
              Added a TimeServer to easily manage time events.
          </action>
          <action dev="FB" type="update">
              Make Store implementation more pluggable.
          </action>
      </release>
  
      <release version="2.0" date="2000">
          <action dev="FB" type="update">
              Updated Context pattern to Configurable-Composer pattern.
          </action>
      </release>
  
      <release version="1.0-dev" date="Can't remember">
          <action dev="FB" type="update">
              First Avalon implementation.
          </action>
      </release>
  
  </changes>
  
  
  
  1.3       +1 -1      avalon-site/src/documentation/content/xdocs/project/pmc.xml
  
  Index: pmc.xml
  ===================================================================
  RCS file: /home/cvs/avalon-site/src/documentation/content/xdocs/project/pmc.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- pmc.xml	3 Feb 2003 15:43:38 -0000	1.2
  +++ pmc.xml	3 Mar 2003 13:18:17 -0000	1.3
  @@ -51,7 +51,7 @@
   	  <section>
   	    <title>So, who's on the PMC?</title>
   	    <p>This information is contained in the Avalon STATUS file, and
  -	    also <link href="../whoweare.html">on this page</link>.</p>
  +		  also <link href="../whoweare/">on this page</link>.</p>
   	  </section>
           </body>
       </document>
  
  
  
  1.1                  avalon-site/src/documentation/resources/stylesheets/changes2document.xsl
  
  Index: changes2document.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  A special version of Forrest's changes2document.xsl without the RSS link.
  This is used to process history/changes.xml, a historical list of changes which
  clearly doesn't need RSS
  -->
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
   <xsl:import href="copyover.xsl"/>
  
   <xsl:variable name="bugzilla">http://nagoya.apache.org/bugzilla/show_bug.cgi?id=</xsl:variable>
  
   <xsl:template match="/">
    <xsl:apply-templates select="//changes"/>
   </xsl:template>
   
   <xsl:template match="changes">
    <document>
     <header>
      <title>History of Changes</title>
     </header>
     <body>
      <xsl:apply-templates/>
     </body>
    </document>
   </xsl:template>
  
   <xsl:template match="release">
    <section id="{@version}">
     <title>Version <xsl:value-of select="@version"/> (<xsl:value-of select="@date"/>)</title>
     <ul>
      <xsl:apply-templates/>
     </ul>
    </section>
   </xsl:template>
  
   <xsl:template match="action">
    <li>
     <icon src="images/{@type}.jpg" alt="{@type}"/>
     <xsl:apply-templates/>
     <xsl:text>(</xsl:text><xsl:value-of select="@dev"/><xsl:text>)</xsl:text>
  
     <xsl:if test="@due-to and @due-to!=''">
      <xsl:text> Thanks to </xsl:text>
      <xsl:choose>
       <xsl:when test="@due-to-email and @due-to-email!=''">
        <link href="mailto:{@due-to-email}">
         <xsl:value-of select="@due-to"/>
        </link>
       </xsl:when>
       <xsl:otherwise>
        <xsl:value-of select="@due-to"/>
       </xsl:otherwise>
      </xsl:choose>
      <xsl:text>.</xsl:text>
     </xsl:if>
  
     <xsl:if test="@fixes-bug">
      <xsl:text> Fixes </xsl:text>
      <link href="{$bugzilla}{@fixes-bug}">
       <xsl:text>bug </xsl:text><xsl:value-of select="@fixes-bug"/>
      </link>
      <xsl:text>.</xsl:text>
     </xsl:if>
    </li>
   </xsl:template>
  
  </xsl:stylesheet>
  
  
  
  1.1                  avalon-site/src/documentation/resources/stylesheets/filterlinks.xsl
  
  Index: filterlinks.xsl
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  This stylesheet filters out links that should not be traversed by the Cocoon
  crawler.  In Avalon, these are mostly links to directories of subprojects.
  -->
  
  <xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      version="1.0">
  
    <xsl:template match="@src|@href|@background">
      <xsl:if test="
  	not(contains(., 'framework/')) and 
  	not(contains(., 'phoenix/')) and 
  	not(contains(., 'excalibur/')) and 
  	not(contains(., 'apps/')) and 
  	not(contains(., 'cornerstone/')) and 
  	not(contains(., 'logkit/')) and 
  	not(. = 'bloritsch.xml') and 
  	not(. = 'hammant.xml')
  	">
  	<!-- The last two are a horrible hack; we really need to do two xinclude
  	operations one after another to process developing-with-avalon.xml, but
  	with Forrest's Cocoon that causes a NPE -->
        <xsl:copy>
          <xsl:apply-templates select="."/>
        </xsl:copy>
      </xsl:if>
    </xsl:template>
  
    <xsl:template match="@*|node()">
     <xsl:copy>
      <xsl:apply-templates select="@*|node()"/>
     </xsl:copy>
    </xsl:template>
  
  </xsl:stylesheet>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org


Mime
View raw message