stephan     2003/03/21 05:56:08

  Modified:    src/documentation/xdocs book.xml
  Added:       .        build.new.xml forrest.properties status.xml
               src/documentation sitemap.xmap.ignore skinconf.xml
               src/documentation/xdocs dictionary.xml.ignore tabs.xml
               src/documentation/xdocs/ctwig/sample/transformations/basic01
                        basic01-01.xml.ignore basic01-01.xsl.ignore
               src/documentation/xdocs/ctwig/sample/transformations/basic02
                        basic02-01.xml.ignore
               src/documentation/xdocs/ctwig/sample/transformations/basic03
                        basic03-01.xml.ignore
               src/targets compile-build.xml docs-build.xml
                        forrest-build.xml ide-build.xml init-build.xml
                        samples-build.xml test-build.xml validate-build.xml
                        webapp-build.xml
  Removed:     src/documentation sitemap.xmap
               src/documentation/xdocs dictionary.xml
               src/documentation/xdocs/ctwig/sample/transformations/basic01
                        basic01-01.xml basic01-01.xsl
               src/documentation/xdocs/ctwig/sample/transformations/basic02
                        basic02-01.xml
               src/documentation/xdocs/ctwig/sample/transformations/basic03
                        basic03-01.xml
  Log:
  Make it possible to create the docs by using the Forrest project.
  Splitting the build.xml to make it more maintainable.
  
  Revision  Changes    Path
  1.1                  cocoon-2.1/build.new.xml
  
  Index: build.new.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE project [
  <!-- 
===========================================================================
  
                         * =========================== *
                         |  Apache Cocoon Build System |
                         * =========================== *
  
         CVS $Id: build.new.xml,v 1.1 2003/03/21 13:56:06 stephan Exp $:
  
  ============================================================================ 
-->
  
  <!-- ==================  Krysalis Centipede targets ===================  --> 
  <!ENTITY init-targets     SYSTEM "./src/targets/init-build.xml"> 
  <!ENTITY compile-targets  SYSTEM "./src/targets/compile-build.xml"> 
  <!ENTITY validate-targets SYSTEM "./src/targets/validate-build.xml"> 
  <!ENTITY samples-targets  SYSTEM "./src/targets/samples-build.xml"> 
  <!ENTITY webapp-targets   SYSTEM "./src/targets/webapp-build.xml"> 
  <!ENTITY ide-targets      SYSTEM "./src/targets/ide-build.xml"> 
  <!ENTITY test-targets     SYSTEM "./src/targets/test-build.xml"> 
  <!ENTITY docs-targets     SYSTEM "./src/targets/docs-build.xml"> 
  <!-- =================================================================== -->
  
  <!-- ======================  Forrest targets =========================== -->
  <!ENTITY forrest-targets  SYSTEM "./src/targets/forrest-build.xml">
  <!-- =================================================================== -->
  
  ]>
  
  <project default="webapp" basedir="." name="Apache Cocoon">
  
    <!-- ======================  Cocoon targets ============================ -->
  
    <!-- =================================================================== -->
    <!-- Initialization targets  -->  &init-targets;
         <!--<import file="src/targets/init-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- Compile targets         -->  &compile-targets;
         <!--<import file="src/targets/compile-build.xml"/>-->
    <!-- =================================================================== 
-->  
    <!-- Validation targets      -->  &validate-targets;
         <!--<import file="src/targets/validate-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- Samples targets         -->  &samples-targets;
         <!--<import file="src/targets/samples-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- Web application targets -->  &webapp-targets;
         <!--<import file="src/targets/webapp-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- IDE targets             -->  &ide-targets;
         <!--<import file="src/targets/ide-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- Testcases targets       -->  &test-targets;
         <!--<import file="src/targets/test-build.xml"/>-->
    <!-- =================================================================== -->
    <!-- Documentation targets   -->  &docs-targets;
         <!--<import file="src/targets/docs-build.xml"/>-->
    <!-- =================================================================== -->
  
  
  
    <!-- ======================  Forrest targets =========================== -->
  
    <!-- =================================================================== -->
    <!-- Forrest targets         -->  &forrest-targets;
         <!--<import file="src/targets/forrest-build.xml"/>-->
    <!-- =================================================================== -->
  
  </project>
  
  
  
  1.1                  cocoon-2.1/forrest.properties
  
  Index: forrest.properties
  ===================================================================
  ##############
  # Properties used by forrest.build.xml for building the website
  ##############
  
  # Prints out a summary of Forrest settings for this project
  #forrest.echo=true 
  
  # Project name (used to name .war file)
  project.name=cocoon-2.1-dev
  
  # Specifies name of Forrest skin to use
  #project.skin=forrest-site
  #project.skin=avalon-tigris
  #project.skin=krysalis-site
  
  
  ##############
  # layout properties
  
  # Properties that must be set to override the default locations
  #
  # Parent properties must be set. This usually means uncommenting
  # project.content-dir if any other property using it is uncommented
  
  #project.status=status.xml
  project.content-dir=src/documentation
  #project.conf-dir=${project.content-dir}/conf
  #project.sitemap=${project.content-dir}/sitemap.xmap
  project.xdocs-dir=${project.content-dir}/xdocs
  #project.stylesheets-dir=${project.content-dir}/resources/stylesheets
  project.images-dir=${project.content-dir}/images
  #project.schema-dir=${project.content-dir}/resources/schema
  #project.skins-dir=${project.content-dir}/skins
  #project.skinconf=${project.content-dir}/skinconf.xml
  #project.lib-dir=${project.content-dir}/lib
  #project.classes-dir=${project.content-dir}/classes
  
  project.build-dir=${project.home}/build/${project.name}
  project.site-dir=${project.build-dir}/docs
  
  ##############
  # Cocoon catalog entity resolver properties
  
  # A local OASIS catalog file to supplement the default Forrest catalog
  #project.catalog=${project.schema-dir}/catalog
  
  # The verbosity level for the entity resolver (1..10)
  #forrest.catalog.verbosity=1
  
  
  ##############
  # validation properties
  
  # These props determine if validation is performed at all
  # Values are inherited unless overridden.
  # Eg, if forrest.validate=false, then all others are false unless set to true.
  #forrest.validate=true
  #forrest.validate.xdocs=${forrest.validate}
  #forrest.validate.skinconf=${forrest.validate}
  #forrest.validate.sitemap=${forrest.validate}
  #forrest.validate.stylesheets=${forrest.validate}
  #forrest.validate.skins=${forrest.validate}
  #forrest.validate.skins.stylesheets=${forrest.validate.skins}
  
  
  # Key:
  # *.failonerror=(true|false)    stop when an XML file is invalid
  # *.includes=(pattern)         Comma-separated list of path patterns to 
validate
  # *.excludes=(pattern)         Comma-separated list of path patterns to not 
validate
  
  #forrest.validate.failonerror=true
  #forrest.validate.includes=**/*
  #forrest.validate.excludes=
  #
  #forrest.validate.xdocs.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.xdocs.includes=**/*.x*
  #forrest.validate.xdocs.excludes=site.xml
  #
  #forrest.validate.skinconf.includes=${skinconf-file}
  #forrest.validate.skinconf.excludes=
  #forrest.validate.skinconf.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.sitemap.includes=${sitemap-file}
  #forrest.validate.sitemap.excludes=
  #forrest.validate.sitemap.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.stylesheets.includes=**/*.xsl
  #forrest.validate.stylesheets.excludes=
  #forrest.validate.stylesheets.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.skins.includes=**/*
  #forrest.validate.skins.excludes=**/*.xsl
  #forrest.validate.skins.failonerror=${forrest.validate.failonerror}
  #
  #forrest.validate.skins.stylesheets.includes=**/*.xsl
  #forrest.validate.skins.stylesheets.excludes=
  
#forrest.validate.skins.stylesheets.failonerror=${forrest.validate.skins.failonerror}
  
  
  
  1.1                  cocoon-2.1/status.xml
  
  Index: status.xml
  ===================================================================
  <?xml version="1.0"?>
  <!DOCTYPE status [
  <!ENTITY eacute           "&#x000E9;">
  <!ENTITY ouml             "&#x000F6;">
  <!ENTITY uuml             "&#x000FC;">
  ]>
  <status>
  
    <developers>
      <!-- in strict alphabetical order -->
    <person name="Donald Ball" email="[EMAIL PROTECTED]" id="DB"/>
    <person name="Nicola Ken Barozzi" email="[EMAIL PROTECTED]" id="NKB"/>
    <person name="Ross Burton" email="[EMAIL PROTECTED]" id="RB"/>
    <person name="Marcus Crafter" email="[EMAIL PROTECTED]" id="MC"/>
    <person name="David Crossley" email="[EMAIL PROTECTED]" id="DC"/>
    <person name="Torsten Curdt" email="[EMAIL PROTECTED]" id="TC"/>
    <person name="Gerhard Froehlich" email="[EMAIL PROTECTED]" id="GF"/>
    <person name="Pierpaolo Fumagalli" email="[EMAIL PROTECTED]" id="PF"/>
    <person name="Vadim Gritsenko" email="[EMAIL PROTECTED]" id="VG"/>
    <person name="Christian Haul" email="[EMAIL PROTECTED]" id="CH"/>
    <person name="Bernhard Huber" email="[EMAIL PROTECTED]" id="BH"/>
    <person name="Ivelin Atanasoff Ivanov" email="[EMAIL PROTECTED]" id="IAI"/>
    <person name="Berin Loritsch" email="[EMAIL PROTECTED]" id="BL"/>
    <person name="Stefano Mazzocchi" email="[EMAIL PROTECTED]" id="SM"/>
    <person name="Stephan Michels" email="[EMAIL PROTECTED]" id="SMS"/>
    <person name="John Morrison" email="[EMAIL PROTECTED]" id="JM"/>
    <person name="Giacomo Pati" email="[EMAIL PROTECTED]" id="GP"/>
    <person name="Konstantin Piroumian" email="[EMAIL PROTECTED]" id="KP"/>
    <person name="Ovidiu Predescu" email="[EMAIL PROTECTED]" id="OP"/>
    <person name="Jeremy Quinn" email="[EMAIL PROTECTED]" id="JQ"/>
    <person name="Gianugo Rabellino" email="[EMAIL PROTECTED]" id="GR"/>
    <person name="Ricardo Rocha" email="[EMAIL PROTECTED]" id="RR"/>
    <person name="Peter Royal" email="[EMAIL PROTECTED]" id="PAR"/>
    <person name="Paul Russell" email="[EMAIL PROTECTED]" id="PR"/>
    <person name="Davanum Srinivas" email="[EMAIL PROTECTED]" id="DM"/>
    <person name="Jeff Turner" email="[EMAIL PROTECTED]" id="JT"/>
    <person name="Sylvain Wallez" email="[EMAIL PROTECTED]" id="SW"/>
    <person name="Carsten Ziegeler" email="[EMAIL PROTECTED]" id="CZ"/>
    </developers>
    
    <todo>
     <actions priority="high">
      <action context="code" assigned-to="all">
        Test, test, test :-)
      </action>   
   
      <action context="code" assigned-to="CZ">
        Redesign the SitemapConfigurable handling.
      </action>
  
      <action context="docs" assigned-to="open">
        For 2.1: Attend to any high+ issues in the
        <link href="plan/todo-doc.html">Documentation To Do List</link>
      </action>
  
      <action context="code" assigned-to="open">
        Attend to the general issues in the
        <link href="plan/release.html">release plan</link>
      </action>
  
      <action context="code" assigned-to="open">
        For 2.1: use (only) released versions of excalibur (xml, source, store 
etc).
        This requires a release of those components in excalibur.
      </action>
  
      <action context="code" assigned-to="open">
        Complete (means put everything we know of into even if it has to be
        commented) the cocoon.xconf file and put descriptions into it
      </action>
  
      <action context="build" assigned-to="open">
        Complete (means put all allowed constructs and combinations)
        the lint/sitemap.xmap file. Enhance the RELAX NG grammar for sitemap.
      </action>
  
      <action context="code" assigned-to="SW">
        For 2.1: Views must start not from the first encountered label, but 
from the last one
        (see 
http://marc.theaimsgroup.com/?l=xml-cocoon-dev&amp;m=101784499622172&amp;w=2)
      </action>
  
      <action context="code" assigned-to="NKB">
        For 2.1: Make comprehensive samples with the handle-errors sitemap and 
real world
        use cases. Add also specific Selector and a FaqBuilder to be used by the
        as a NotifyingBuilder.
      </action>
  
      <action context="code" assigned-to="SW">
        Change the handle-errors to enable use of any Generator.
        DOUBLE CHECK THAT REDIRECTS ARE FORBIDDEN.
        
http://marc.theaimsgroup.com/?l=xml-cocoon-dev&amp;m=102633389301850&amp;w=2
      </action>
  
      <action context="code" assigned-to="open">
        Finish the design and contracts of flow. Add more tests and samples and
        documentation.
      </action>
  
      <action context="code" assigned-to="open">
        Finish the document
        <link href="installing/updating.html">Updating Cocoon</link>
        which describes the major changes since 2.0.2
      </action>
  
      <action context="code" assigned-to="open">
        Finish the
        <link href="plan/samples.html">refactoring of samples</link>
      </action>
  
      <action context="code" assigned-to="open">
        Move complete Source implementation to Excalibur.
      </action>
  
      <action context="code" assigned-to="open">
        Documentation to be published by Forrest.
        See the
        <link 
href="http://wiki.cocoondev.org/Wiki.jsp?page=ForrestProposal";>proposal</link>
        under development.
      </action>
  
      <action context="code" assigned-to="open">
        Finish moving the scratchpad stuff in main trunk.
      </action>
  
      <action context="code" assigned-to="open">
        There are some deprecated classes being used in 'build test'.
      </action>
  
      <action context="code" assigned-to="open">
        Test that the new Catalog Entity Resolver works on all platforms, 
following
        its move from Cocoon to Excalibur. See
        <link 
href="http://marc.theaimsgroup.com/?l=xml-cocoon-dev&amp;m=104814093018956";>email
 discussion</link>.
      </action>
  
      <action context="code" assigned-to="SMS">
        For 2.1: Enable the 'use-store' parameter of the XSLT processor 
component. Test for occuring
        memory leaks. Seems only occuring if the xalan transformer is used. 
There also seems to be
        a problem during the serialization of the transient store, if the 
servlet container were
        stopped.
      </action>
  
     </actions>
  
     <actions priority="medium">
  
      <action context="code">
        Remove all useless blank strings in XSP-generated code that hinder 
performances.
        This should be configurable (through an attribute?) to be able to keep 
them when
        needed.
      </action>
  
      <action context="code">
        For 2.1: Make a guide on how to upgrade Cocoon, and see how this can be 
eased.
      </action>
  
      <action context="code">
        For 2.1: Redesign FragmentExtractorGenerator/Transformer so that it 
works on a clustered
        server : store fragments in the session rather than in a local store. 
<br/>
        This couldn't work, because if you working with caching pipelines, you 
cannot be sure
        that the entries are in the session(Stephan).
      </action>
  
     </actions>
    
    </todo>
  
    <changes>
  
   <release version="@version@" date="@date@">
    <action dev="CZ" type="update">
      Refactored SitemapConfigurable. A sitemap configurable component can
      now be ThreadSafe and has access to the sitemap configuration at any time
      through a SitemapConfigurationHolder.
    </action>
    <action dev="CZ" type="update">
      Correcting method names of new CacheableProcessingComponent interface.
      It's now possible to write components that support the 2.0.x and the
      2.1.x caching algorithm.
    </action>
    <action dev="CZ" type="update">
      Setting minimum JDK version from 1.2 to 1.3.
    </action>
    <action dev="CZ" type="update">
     Updating to the latest official Avalon and Excalibur releases.
    </action>
    <action dev="NKB" type="add" fixes-bug="17671" due-to="Upayavira" 
due-to-email="[EMAIL PROTECTED]">
      Enhancements to the CLI to reduce the number of times it 
      needs to render a page. Using the option to prevent checking of 
extensions, it 
      is now possible to generate a site generating each page only once. 
  
      Allow the configuration of the CLI using 
      an xconf file.
  
      Switch cli to using the Jakarta Commons CLI package.
    </action>
    <action dev="MC" type="add">
     Added support for the LogFactor5 graphical log event browser.
    </action>
    <action dev="JT" type="fix">
     XMLFileModule: rename 'cachable' to 'cacheable' in configation.
    </action>
    <action dev="VG" type="update">
      FOP serializer's &lt;user-config&gt; relative path now resolves relative
      to sitemap's directory. All Cocoon URIs are supported too.
    </action>
    <action dev="PF" type="fix"> 
      The CVS repository for Cocoon 2.1 is now called "cocoon-2.1" (no 
branches, just HEAD).
    </action>
    <action dev="TC" type="add">
     Added support for Pervasive db to ESQL.
    </action>
    <action dev="SMS" type="fix" fixes-bug="16695" due-to="Leszek Gawron" 
due-to-email="[EMAIL PROTECTED]">
     Changed category for Log logicsheets.
    </action>
    <action dev="GR" type="add">
     Extended the HTMLGenerator so that it can handle HTML snippets
     provided as request parameter or as POST data, passing them through
     Tidy to ensure well-formedness.
    </action>
    <action dev="CZ" type="add">
     New caching cinclude transformer. The cinclude transformer can now cache
     the aggregated content for a distinct period of time. In addition it can
     fetch the content in parallel or pre-emptive.
    </action>
    <action dev="PF" type="update">   
     The repository for Cocoon 2.1 is now called "cocoon-2-historical" (the old 
     
     "xml-cocoon2" repository is deprecated).     
    </action>   
    <action dev="PF" type="update">
      The "javadocs" build target now links offline to the appropriate JavaDOC
      repositiories available on the web.
    </action>
    <action dev="PF" type="add">
      Added proxy generator block for remote HTTP-base generation of XML
      (will deprecate the WSProxyGenerator).
    </action>
    <action dev="PF" type="add">
      Added subrequest processing via the sitemap to the Cocoon flow.
    </action>
    <action dev="SM" type="update">
      Moved the asciiart stuff from the scratchpad into a block.
    </action>
    <action dev="SM" type="update">
      Moved the SendmailAction and the mail-related stuff from the scratchpad
      into the mail block.
    </action>
    <action dev="SM" type="update">
      Removed the MaybeUploadRequestFactory since we have our own and the less
      dependencies the better
    </action>
    <action dev="CZ" type="update">
      Moving core properties of the build system into a separate properties 
file.
    </action>
    <action dev="GR" type="add">
      The "expires" pipeline parameter is honored even by the internal Cocoon
      cache, i.e. the caching algorithms are overridden if an expires
      parameter is present and still fresh.
    </action>
    <action dev="TC" type="fix" fixes-bug="15401" due-to-email="[EMAIL 
PROTECTED]">
      Set "Last-Modified" header
    </action>
    <action dev="TC" type="fix" fixes-bug="17324" due-to="Alfred Nathaniel" 
due-to-email="[EMAIL PROTECTED]">
      Fixed the ResourceExistAction to return null instead of EMPTYMAP on
      not existing resources.
    </action>
    <action dev="SM" type="update">
      Refactored the build system.
    </action>
    <action dev="TC" type="fix" fixes-bug="17261" due-to-email="[EMAIL 
PROTECTED]">
      Put the exceptions into esql namespace so the variable named "e" is still
      available in XSP.
    </action>
    <action dev="DC" type="update" fixes-bug="17127" due-to="Bruno Dumon" 
due-to-email="[EMAIL PROTECTED]">
      Now i18n transformer has support for multiple catalogues and can now use
      "input modules" in catalogue name and catalogue location. Fixed bug with
      getting content for the translation key in certain circumstances. Fixed
      bug with accidental removal of translation text in certain circumstances.
    </action>
    <action dev="PAR" type="add">
      Optional 'global' parameter on map:redirect-to when giving a URI.
    </action>
    <action dev="PAR" type="update">
      Make getParentComponentManager in CocoonServlet protected so alternate 
methods to getting the
      parent CM can be used.
    </action>
    <action dev="PAR" type="add">
      Optional "depth" attribute on the cocoon log format to control how deep 
to go in stacktrace
      reporting.
    </action>
    <action dev="PAR" type="fix">
      Do not specify a default to the "class-loader" parameter in JavaLanguage
    </action>
    <action dev="PAR" type="add">
      Add a NonStaticClassLoaderManager that does not keep internal static 
variables. Useful when
      putting cocoon.jar outside the WEB-INF/lib directory and have multiple 
XSP pages of the same
      name in multiple webapps
    </action>
    <action dev="VG" type="fix" fixes-bug="16267">
      Improve default exception handling behavior in CocoonServlet: show 
exception stacktrace
      only when log level is INFO or DEBUG, and add exception message to "Not 
Found" page.
    </action>
    <action dev="VG" type="fix" fixes-bug="16264">
      Use Environment.tryResetResponse() instead of HttpServletResponse.reset() 
in CocoonServlet
      to avoid IllegalStateException if response was already committed.
    </action>
    <action dev="VG" type="update" fixes-bug="11861" due-to="Michael Homeijer" 
due-to-email="[EMAIL PROTECTED]">
      Add support for Collection objects to the CastorTransformer.
      Upgrade to the SAX2 API, improve logging, and use SourceResolver to load 
mappings.
    </action>
    <action dev="VG" type="update" fixes-bug="15748" due-to="Upayavira" 
due-to-email="[EMAIL PROTECTED]">
      Refactor Main class into two classes, Main and CocoonBean. CocoonBean 
provides simple
      programmatic interface to the Cocoon.
    </action>
    <action dev="VG" type="fix" fixes-bug="16490" due-to="Upayavira" 
due-to-email="[EMAIL PROTECTED]">
      Add image dimensions to the ImageReader's cache key.
    </action>
    <action dev="CH" type="add" due-to="Geoff Howard" due-to-email="[EMAIL 
PROTECTED]">
      modular.DatabaseActions: added ability to store FileParts from uploads to
      "ascii", "clob", "blob", and "binary" columns. Added getSize() method to 
FilePart.
    </action>
    <action dev="CH" type="add" fixes-bug="9075"
            due-to="Michael Gerzabek" due-to-email="[EMAIL PROTECTED]">
      SAP R/3 connectivity components added.
    </action>
    <action dev="CH" type="update">
      Moved block samples to own category, modified build system to merge
      .xsample files to block-samples.xml.
    </action>
    <action dev="CZ" type="update">
      Renaming components section for pipeline implementations to "pipes" and 
"pipe".
    </action>
    <action dev="CZ" type="update">
      Updated to latest versions of excalibur sourceresolve and xmlutil.
    </action>
    <action dev="SMS" type="update" due-to="Michael Enke"
            due-to-email="[EMAIL PROTECTED]" fixes-bug="14700">
      Patch IOUtils to recognize '..' in Path
    </action>
    <action dev="SW" type="update">
      The "mime-type" attribute on &lt;map:read&gt; and &lt;map:serialize&gt; 
is now
      expanded if it contains sitemap variables.
    </action>
    <action dev="CH" type="add">
      InputModule to access XMLForm instances.
    </action>
    <action dev="CH" type="add">
      (modular) DatabaseAction: added ability to use arbitrary path separators
      instead of "." (e.g. "/"), added ability to count rows from 1, added
      documentation.
    </action>
    <action dev="CH" type="add">
      Created additional isolation level for some OutputModules.
    </action>
    <action dev="CH" type="add"
          due-to="Jeff Turner"
          due-to-email="[EMAIL PROTECTED]"
        fixes-bug="15611">
      Added LinkRewriterTransformer.
    </action>
    <action dev="OP" type="add"
          due-to="Michael Melhem"
          due-to-email="[EMAIL PROTECTED]">
      Added support for expiring continuations.
    </action>
    <action dev="OP" type="update" due-to="Ugo Cei" due-to-email="[EMAIL 
PROTECTED]">
      Fixed the way complex Java objects are passed from the control
      flow to the XSP view layer.
    </action>
    <action dev="CZ" type="update">
      Added ant-contrib library with some optional ant tasks and started 
cleaning
      up the build system.
    </action>
    <action dev="SW" type="update">
      ZipArchiveSerializer now accepts inline content for entries of the zip 
archive
      and not only source URLs.
    </action>
    <action dev="TC" type="update">
      ImageReader extends now ResourceReader and therefor the
      "expire-time" parameter is now "expires". Also removed the
      setting of the byte range header for on-the-fly images.
      (did not support it anyway)
    </action>
    <action dev="TC" type="update">
      Moved the byte range support from the ByteRangeReader in scratchpad
      into the ResourceReader. Added the optional parameters "buffer-size"
      and "byte-range". Byte range support is enable by default.
    </action>
    <action dev="TC" type="update">
      Move the image inspection into a ImageUtils class
    </action>
    <action dev="TC" type="update">
      Major cleanup of the ImageDirectoryGenerator, removed the 
RuntimeExceptions,
      added support for the JPEG comment marker
    </action>
    <action dev="BH" type="add">
      Added reader user documentation section, including readers documentation;
      added BrowserSelector, and HostSelector documentation, plus 
template-selector
      usable as template for writing more selector docs;
      added WildcardURIMatcher, and WildcardHeaderMatcher, plus template-matcher
      usable as template for writing more matcher docs.
    </action>
    <action dev="TC" type="fix" due-to="Antonio Gallardo" due-to-email="[EMAIL 
PROTECTED]">
      Fixed the esql:more-results tag for non-JDBC limit methods
    </action>
    <action dev="NKB" type="update">
      Moved all classes marked @deprecated to the src/deprecated directory.
      Since Many classes are still a dependency for the core, while this is 
fixed
      the build process still copies them with the core during compilation.
      To compile with the deprecation separation, do "build -Ddeprecate=true".
    </action>
    <action dev="NKB" type="update">
      Moved code to new blocks: profiler, velocity.
    </action>
    <action dev="BH" type="update">
      Update XML Serializer, HTML Serializer , and Text Serializer 
documentation,
      added XHTML Serializer documentation in the serializer user documentation 
section.
    </action>
    <action dev="BH" type="update">
      Update SVG Serializer, SVG JPEG, and SVG PNG documentation, added
      SVG TIFF documentation in the serializer user documentation section.
    </action>
    <action dev="BH" type="fix" due-to-email="[EMAIL PROTECTED]"
     due-to="Jeff Turner" fixes-bug="15609">
     XMLFileModule checks result of SitemapSource.getValidity() as it may 
return null
    </action>
    <action dev="DC" type="add">
     Integrated the validation targets into the build ("validate-config" and
     "validate-xdocs") also still available at the command-line. Validation
     happens automatically unless you switch it off. See document
     <link href="userdocs/concepts/validation.html">XML Validation 
Facilities</link>.
    </action>
    <action dev="CH" type="fix" due-to-email="[EMAIL PROTECTED]"
     due-to="Michael Enke" fixes-bug="15064">
     Postgresql 7.3: LIMIT x,y no longer supported. Added new class for
     postgresql-old limit method that still uses LIMIT x,y while postgresql
     uses the LIMIT x OFFSET y syntax which has been used by postgresql for
     some time now.
    </action>
    <action dev="NKB" type="update">
      Created .src/deprecated directory to contain all deprecated classes.
      This will help in maintaining Cocoon free from deprecated classes.
      Started by moving some deprecated caching stuff.
    </action>
    <action dev="NKB" type="update">
      Moved code to new blocks: html, php, lucene, bsf
    </action>
    <action dev="NKB" type="update">
      Now module.xml is named project.info.xml
    </action>
    <action dev="CH" type="fix" due-to-email="[EMAIL PROTECTED]"
     due-to="Frank Ridderbusch" fixes-bug="15005">
     Extension to sendmail.xsp: lists for sendmail:cc
    </action>
    <action dev="CH" type="fix" due-to-email="[EMAIL PROTECTED]"
     due-to="Artur Bialecki" fixes-bug="14835">
     Added container/form-encoding init-params to web.xml
    </action>
    <action dev="CH" type="fix" due-to-email="[EMAIL PROTECTED]"
     due-to="Stuart Roebuck" fixes-bug="15136">
     Fixing various inefficient logging calls.
    </action>
    <action dev="CH" type="update">
      Make all "meta" modules ThreadSafe
    </action>
    <action dev="KP" type="fix" fixes-bug="15431" due-to="Michael Gerzabek" 
due-to-email="[EMAIL PROTECTED]">
      Perform correct source resolution in XMLResourceBundle.
      Now i18n transformer can obtain dictionaries using any supported source 
(e.g. 'cocoon:/').
    </action>
    <action dev="KP" type="update">
      Added Greek translation, thanks to Stavros Kounis (gounis.at.osmosis.gr).
      Corrected Armenian translation to be real Unicode and be
      readable without additional plug-ins (on Win).
    </action>
    <action dev="GR" type="update">
      Updated the XML:DB Source. Now it will accept, in cocoon.xconf,
      optional authentication attributes, called "user" and "password".
    </action>
    <action dev="CH" type="add">
      New transformer extracts fragments to documents and stores them using an
      OutputModule. Tags that start fragment are configurable.
    </action>
    <action dev="CH" type="add">
      New output module puts everything in a map in a request attribute.
    </action>
    <action dev="CH" type="update">
      AbstractJXPathModule / JXPathMetaModule default to lenient mode i.e. do 
not
      throw an exception on unsupported attributes but return null instead. Made
      this a configuration option.
    </action>
    <action dev="CH" type="add">
      XMLMetaModule returns DocumentWrapper instead of String.
    </action>
    <action dev="CH" type="add">
      Wrapper for org.w3c.dom.Document that implements XMLizable and provides
      a useful toString() method.
    </action>
    <action dev="CH" type="add">
      SimpleMappingMetaModule: added feature to remove a prefix / suffix.
    </action>
    <action dev="CH" type="fix">
      "meta" input modules: configuring a different module locally did not
      override the default one in all circumstances.
    </action>
    <action dev="CH" type="fix">
      input.xml: renaming mixed up called template names from 
logicsheet-util.xsl
    </action>
    <action dev="CH" type="fix">
      SimpleFormTransfomer: fixed error tags when no validation data available.
    </action>
    <action dev="NKB" type="update">
      Moved the sample classes and confs to the samples block.
    </action>
    <action dev="TC" type="update">
      Cleaned up the esql logicsheet and helper classes.
      Created classes for db specific stuff.
      Improved the limit/paging features.
    </action>
    <action dev="NKB" type="update">
      Moved the jsp components to the jsp block, using hand-made-to-be-cleaned
      mock objects for the weblogic specific imports.
      Had also to move some definitions from the cocoon roles and xconf file.
      This moving of the blocks is indeed cleaning the core! :-)
    </action>
    <action dev="NKB" type="update">
      Updated block build system to compile and use mock objects in
      the "mocks" subdir of the blocks if present.
    </action>
    <action dev="CH" type="add">
     New InputModule to access contents of
     an XMLFile using JXPath, based on patch from Jeff Turner 
(jefft.at.apache.org).
    </action>
    <action dev="NKB" type="update">
      Moved endorsed libs in ./lib/endorsed, so that they can be added in the 
build file
      easily as java jvm args, or in the future copied to the webserver or Java 
endorsed dir.
      Currently it enables Jetty to run easily in 1.4 JVMs without need to copy 
libs to
      the endorsed dir.
    </action>
    <action dev="NKB" type="add">
      Added jetty webserver for fast and easy Cocoon test and evaluation.
      To run launch "build run" and point the browser to http://localhost:8888/
      Since it seems there is a bug somewhere, ATM point to
      http://localhost:8888/documentation/index.html to see the page.
    </action>
    <action dev="NKB" type="update">
      Removed ./tools/build-i.xml and moved the interactive targets in main 
build.
      Removed ./tools/build-s.xml and removed all references to scratchpad 
builds (not used).
    </action>
    <action dev="NKB" type="update">
      Removed JTidyTask that was not used and switched to using the Ant input 
task from UserInputTask.
    </action>
    <action dev="NKB" type="fix" fixes-bug="14795">
      Added useexternalfile="yes" attribute makes Ant collect all package names 
in a temporary
      file and give that to Javadoc, thus going round the Wintel long command 
truncation issue.
    </action>
    <action dev="NKB" type="update">
     Moved LDAPTransformer to a block called "naming".
    </action>
    <action dev="DC" type="update" fixes-bug="14581" due-to="Colin Paul Adams" 
due-to-email="[EMAIL PROTECTED]">
     New build target "validate-schematron" to conduct build-time validation
     (currently only the sitemaps) using RELAX NG grammars with embedded
     Schematron rules.
     This uses <link 
href="http://www.ascc.net/xml/schematron/";>Schematron</link>
     stylesheets from Rick Jelliffe and Academia Sinica Computing Center, 
Taiwan.
    </action>
    <action dev="DC" type="add" due-to="Colin Paul Adams" due-to-email="[EMAIL 
PROTECTED]">
     Enhanced the RELAX NG grammar for sitemap.xmap files and added embedded
     Schematron rules.
    </action>
    <action dev="BH" type="fix">
     Fix setOutputStream throwing IOExeption in XMLSerializer, and 
TextSerializer.
    </action>
    <action dev="NKB" type="fix">
     Make the CLI report errors correctly to the screen when a page generation 
fails.
    </action>
    <action dev="NKB" type="update" fixes-bug="12975" due-to="Philipp Schmidt" 
due-to-email="[EMAIL PROTECTED]">
     Moved POI to a block. Applied patch without moving the core 
elementprocessor
     classes in the block.
    </action>
    <action dev="NKB" type="fix" due-to="Hussayn Dabbous" due-to-email="[EMAIL 
PROTECTED]">
      When a part of a pipeline aggregation fails, cocoon will no more silently 
return
      without reporting an error.
      Now, upon request of an erroneous page, the result is that I can see all 
parts, that have been processed so
      far on the screen and I see the error infos positioned at the bottom of 
the page.
    </action>
    <action dev="JQ" type="update">
     Added 'query' sitemap parameter to SearchTransformer. Added configuration 
parameters to
     SimpleLuceneXMLIndexerImpl for choosing the content-view and which tags 
you want stored
     as fields by the indexer. Added field storage implementation to 
LuceneIndexContentHandler.
    </action>
    <action dev="DC" type="add">
     New build target "validate-xdocs" to conduct build-time validation of core
     xml documentation (call it manually with:
     <code>./build.sh validate-xdocs</code>).
    </action>
    <action dev="KP" type="add">
        Added SystemPropertyModule input module to enable environment variables
        in sitemap attributes. E.g.:
        &lt;map:transform src="{system-property:user.home}/style.xsl"&gt;
    </action>
    <action dev="KP" type="add">
        Added resource bundle component interfaces to allow different
        implementations to be used for i18n.
    </action>
    <action dev="KP" type="update" due-to="Matthieu Sozeau" 
due-to-email="[EMAIL PROTECTED]">
        Extended implementation of i18n transformer to allow markup in 
translations,
        inline translations (conditional processing) and named parameters.
        Now i18n transformer is cachable, this will affect on dynamic markup,
        e.g. i18n:date-time.
  
        WARN: The namespace of i18n markup is changed to 
"http://apache.org/cocoon/i18n/2.1";.
        i18n samples are updated to demonstrate the new features.
    </action>
    <action dev="IAI" type="update">
      XMLForm Howto to reflect the fact that there is no
      need for manual handling of unchecked check-boxes.
    </action>
    <action dev="IAI" type="update">
      Updated Xalan to 2.4.1
    </action>
    <action dev="TC" type="update">
      Renamed the AbstractMethodAction into AbstractMultiAction and
      moved it from scratchpad into the maintrunk. Using it helps
      reducing the amount of custom actions for a webapp.
    </action>
    <action dev="DC" type="add" due-to="Colin Paul Adams" due-to-email="[EMAIL 
PROTECTED]">
     Added RELAX NG grammar for sitemap.xmap files and removed old draft sitemap
     DTD.
    </action>
    <action dev="CH" type="update">
     Started moving database related stuff (actions, transformers, readers) as 
well as HSQLDB to a new blocks.
     Samples have not yet moved to new block, datasource declaration has.
    </action>
    <action dev="DC" type="update" due-to="Colin Paul Adams" 
due-to-email="[EMAIL PROTECTED]">
      Updated the draft DTD for sitemap.
    </action>
    <action dev="KP" type="add">
      Added a draft W3C XML Schema for sitemap.
    </action>
    <action dev="NKB" type="update">
      Removed deprecated notification classes in org.apache.cocoon.* and in
      org.apache.cocoon.sitemap.* and the deprecated methods in
      org.apache.cocoon.components.notification.Notifier.
    </action>
    <action dev="TC" type="add">
      Added support for sitemap variable anchors {#name:variable}.
      This introduces a new "name" attribute for matchers and actions
    </action>
    <action dev="TC" type="add">
      Added support for direct access of root level sitemap variables {/1}
    </action>
    <action dev="SW" type="add" fixes-bug="12780" due-to="Michael Melhem" 
due-to-email="[EMAIL PROTECTED]">
     New pipeline hint attribute to allow pipeline components (i.e. 
map:generate, map:transform
     and map:serialize) to hold some pipeline-specific parameters. The first 
usage of this feature
     is to drive manual cache points for the CachingPointProcessingPipeline.
    </action>
    <action dev="GP" type="update">
     Removed all references to Loggable in favor of LogEnabled (this includes
     references to common abstract classes as AbstractLoggable and
     AbstractDualLogEnabled)
    </action>
    <action dev="MC" type="update">
     Added support for using Avalon components as Axis service objects
     with the AxisRPCReader.
    </action>
    <action dev="CZ" type="update">
     Enhancing cinclude transformer with configuration possiblities, lie
     POST requests and flexible parameter handling.
    </action>
    <action dev="SMS" type="update" fixes-bug="12799" due-to="Philipp Schmidt" 
due-to-email="[EMAIL PROTECTED]">
     Enabled the RTF serializer and SWF serializer as block.
    </action>
    <action dev="SMS" type="update">
     Enabled the chaperon text parser as block.
    </action>
    <action dev="NKB" type="add">
     Added initial support for compilation of Cocoon blocks, and migrated
     Fop and Batik classes and configuration to the src/blocks dir.
     Blocks that need Avalon components not yet supported.
    </action>
    <action dev="MC" type="add">
     Added support for Avalon Excalibur instrumentation.
    </action>
    <action dev="CZ" type="add">
     Added CascadingIOException to wrap other exceptions when an IOException is 
thrown.
    </action>
    <action dev="CZ" type="add">
     Added configurable buffering of the output. This removes all the problems
     with error handler and already committed responses etc. A new pipeline
     parameter "outputBufferSize" controlls the behaviour.
    </action>
    <action dev="MC" type="add" fixes-bug="12304">
      Added AxisRPCReader to scratchpad. This reader essentially allows you
      to serve SOAP requests from your Cocoon application. Sample webapp with
      status page is also included.
    </action>
    <action dev="MC" type="update" fixes-bug="12236">
      Updated Jakarta Commons HTTP client jar. Fixes problems with SOAP XSP
      taglib.
    </action>
    <action dev="MC" type="add" fixes-bug="12122">
      Added new ComposerReader class with various Reader refactorings.
    </action>
    <action dev="OP" type="update" due-to="Ramy Mamdouh" due-to-email="[EMAIL 
PROTECTED]">
      Don't explicitly redirect to the cocoon:/ pipeline in
      AbstractInterpreter.forwardTo(), do it instead in
      system.js.
    </action>
    <action dev="OP" type="update" due-to="Per-Olof Noren" due-to-email="[EMAIL 
PROTECTED]">
      Fixed code generation problem in the jpath.xsl. Patch from.
    </action>
    <action dev="OP" type="add">
     New user login and preferences sample to show the control flow
     layer.
    </action>
    <action dev="OP" type="update">
     The control flow layer can now save the global JavaScript scope in
     the servlet session object. This allows the value of global
     variables to be saved between different top-level function
     invocations.
    </action>
    <action dev="SMS" type="update">
     Profiler components extended to store intermediate SAX
     fragments, and also the some informations about the
     environment, thanks to Bruno Dumon.
    </action>
    <action dev="NKB" type="update">
     Made Commandline Cocoon (Main.java) verbose output (-V option)
     less cluttered and grouped the log and output methods.
    </action>
    <action dev="NKB" type="update">
     Commandline Cocoon (Main.java) now doesn't stop anymore on broken links,
     but inserts an error page instead and correctly notifies it in the
     broken links file if requested.
    </action>
    <action dev="SMS" type="update">
     Add the methods 'copy', 'move' and 'delete' to the WriteableSource
     interface.
    </action>
    <action dev="SMS" type="add">
     Added the Chaperon components, examples and docs into the main tree.
    </action>
    <action dev="SMS" type="update">
      Replaced implementation from Loggable by LogEnabled to use
      the Avalon Logger instead of the LogKit Logger.
    </action>
    <action dev="TC" type="add">
      Moved the SWF generator and serializer from the scratchpad into the main 
trunk.
      Added a hello-world sample for SWF
    </action>
    <action dev="TC" type="add">
      Added a new PDF serializer. iText seems to be good and fast alternative 
with many features
      iText also provides support for RTF and HTML
    </action>
    <action dev="TC" type="update">
      Updated xerces, xalan, xml-apis jars to their latest CVS versions. 
Especially due to some xerces bugs in the 2.0 release
    </action>
    <action dev="NKB" type="update">
      Made docs target use logging to file via the logkit.xconf and added 
informative System.out messages for the
      commandline cocoon (Main.java).
    </action>
    <action dev="CZ" type="update" due-to="Leo Sutic" due-to-email="[EMAIL 
PROTECTED]">
      Allow parent component manager to be LogEnabled.
    </action>
    <action dev="CZ" type="add" fixes-bug="10284" due-to="Michael Melhem" 
due-to-email="[EMAIL PROTECTED] ">
      Extended pipeline handling for CachingPoint caching algorithm.
    </action>
    <action dev="NKB" type="update" due-to="Andrew C. Oliver" 
due-to-email="[EMAIL PROTECTED]">
      New samples for HSSF Serializer.
    </action>
    <action dev="NKB" type="update" fixes-bug="8058" due-to="Andrew C. Oliver" 
due-to-email="[EMAIL PROTECTED]">
     This adds get-bigdecimal to ESQL (see java.math.BigDecimal for details as 
to why
     you need BigDecimals).
    </action>
    <action dev="NKB" type="update" fixes-bug="8056" due-to="Andrew C. Oliver" 
due-to-email="[EMAIL PROTECTED]">
     The SQL Transformer does those nastly looking exponents for large values.  
By
     calling "getBigDecimal()" instead of getObject we can call an overridden
     toString and avoid those nasty things.
    </action>
    <action dev="VG" type="add">
      Python language support for the XSP pages.
    </action>
    <action dev="VG" type="add">
      Python programming language using jython interpreter.
    </action>
    <action dev="SW" type="add" due-to="Marcus Crafter" due-to-email="[EMAIL 
PROTECTED]">
      New SwitchSelector that uses a common context object for all map:when 
tests.
    </action>
    <action dev="SM" type="fix">
      Fixed the use of roles in TraxTransformer which was incorrect. Now it sets
      the factory explicitly in the XSLTProcessor component without using
      any special avalon component management capacity.
    </action>
    <action dev="SM" type="fix">
      Uniformed the configurations used by the Avalon XSLTProcessor component
      and the TraxTransformer to specify the TransformationFactory to use.
    </action>
    <action dev="SMS" type="update" fixes-bug="9521" due-to="Andrew Timberlake" 
due-to-email="[EMAIL PROTECTED]">
     Applied patch to add javascript support for the mozilla browser for 
transforming xml
     to html.
    </action>
  <!--  <action dev="SMS" type="update" fixes-bug="5973" due-to="Sven Kitschke" 
due-to-email="[EMAIL PROTECTED]">
     Resolved the problem of the additional comments from used DTD's, thanks to 
Sven Kitschke.
     Problem was located in IncludeXMLConsumer and XMLByteStreamCompiler.
    </action> -->
    <action dev="CZ" type="update">
     The OASIS Catalog and the entities (DTDs, entity sets, etc.) have moved
     to WEB-INF/entities and the CatalogManager.properties file has moved to
     WEB-INF/classes
    </action>
    <action dev="IAI" type="add">
     New Cocoon Generator. Allows Embedding One Web Site in Another.
     WebServiceProxyGenerator Demo.
    </action>
    <action dev="IAI" type="add">
     XMLForm framework. Allows client independent form handling.
     See <link 
href="howto/xmlform-wizard/howto-xmlform-wizard.html">Documentation</link>.
    </action>
    <action dev="NKB" type="add" due-to="Tim Myers" due-to-email="[EMAIL 
PROTECTED]">
     Added "userhomes" in the webapp, that automounts the sitemaps
     found in *nix user homes.
     To remove it, just delete the dir.
    </action>
    <action dev="CH" type="add">
     Added support for actions and In-/OutputModules to the JavaScript
     Flow. Caveat: Modifications of the Redirector object are ignored.
    </action>
    <action dev="CH" type="add">
     Support for writing xLOBs to database through modular.DatabaseActions. Does
     not include a required InputModule that returns a JDBCxlobHelper to be
     passed to the action.
    </action>
    <action dev="CH" type="add">
     New DatabaseAction: DatabaseQueryAction. It works like the other modular
     DatabaseActions but does not auto-generate the query. The query has to be
     provided conforming to PreparedStatement syntax. Unlike the name might
     suggest, it can be a select, update, or delete query.
    </action>
    <action dev="JQ" type="update">
     Updated SourceWritingTransformer. Changed the tag set so that source:write 
and source:insert each share the same way of taking parameters.
     Added results from source:insert tag like source:write.
     Changed the implementation of the source:write tag so it now buffers to 
DOM Fragment like source:insert.
     Added new tests, updated slash-edit to use new tags.
    </action>
    <action dev="VG" type="remove">
     Removed (long time deprecated) matcher and selector factories. Use
     appropriate matchers and selectors instead.
    </action>
    <action dev="CZ" type="update">
     Updated the profiler code, removed the need of SAXConnectors.
    </action>
    <action dev="DC" type="add">
     Encourage people to help with the refactoring of Cocoon samples.
     Provide a
     <link href="plan/samples.html">refactoring guidelines</link> document.
    </action>
    <action dev="DC" type="update">
     Moved the old sample for Catalog Entity Resolver in to the new
     webapp/samples structure. Added new sample for Simplified DocBook DTDs
     configuration. Added section for other miscellaneous samples.
    </action>
    <action dev="NKB" type="update">
      Moved linkstatus sample and LinkStatusGenerator to core from scratchpad;
      added a link to test the documentation links on the Cocoon demo webapp 
frontpage.
    </action>
    <action dev="CH" type="add" due-to="Roger I Martin PhD" 
due-to-email="[EMAIL PROTECTED]">
     ESQL: Added support for reading BLOBs from database.
    </action>
    <action dev="CH" type="update">
     DatabaseActions, changed behaviour: Tables are used in order of appearance
     in tableset, before they were used in order of appearance in tables 
section.
    </action>
    <action dev="VG" type="remove">
     Removed XT XSLT transformer.
    </action>
    <action dev="CZ" type="add">
      Added custom component configuration to map:pipelines section.
    </action>
    <action dev="CZ" type="add">
      Added global parameters to map:pipelines section.
    </action>
    <action dev="CH" type="update">
     Changed modules to use objectModel instead of just the request object.
    </action>
    <action dev="CH" type="update">
     Modular database actions now don't inherit from original database actions
     anymore. Some custom datatypes got lost during this process as they should
     be handled be specialized input modules instead.
    </action>
    <action dev="CZ" type="add">
      Replaced event pipeline and stream pipeline with one single component,
      the processing pipeline. Added configurable pipelines to sitemap.
    </action>
    <action dev="GR" type="add">
     Added an "expires" directive to map:pipeline in order to
     manually set an "Expires:" HTTP header following Apache's
     mod_expires syntax.
    </action>
    <action dev="JM" type="add">
     Modified check-jars.xsl to dynamically create the jars.xml for
     documentation.
     Need to copy the generated file over the static placeholder...
     Help - where to in the build.xml?
    </action>
    <action dev="GF" type="add" due-to="Stephan Michels" due-to-email="[EMAIL 
PROTECTED]">
     ResourceReader gets the mime type from the source now,
     instead of declaring the mime type in the sitemap.
    </action>
    <action dev="CH" type="add">
     Moved mod-db stuff from scratchpad to trunk.
    </action>
    <action dev="CH" type="add">
     Util logicsheet: get-source and include-source tags. E.g. to include XHTML
     generated by another pipeline as email.
    </action>
    <action dev="CH" type="fix">
     Esql: multiple results can now have different result blocks, position
     determines matching result position. Last one is default if more results
     arrive. call-results now evaluated after other results to comply with JDBC
     specs.
    </action>
    <action dev="NKB" type="add" due-to="Stephan Michels" due-to-email="[EMAIL 
PROTECTED]">
      Added Jakarta Slide Source components and examples in scratchpad.
    </action>
    <action dev="OP" type="add">
     Added continuations-based control flow support to Cocoon. It is
     currently based on a modified Rhino JavaScript implementation with
     continuations support, courtesy of <link
     href="mailto:[EMAIL PROTECTED]">Christopher Oliver</link>:
     <link 
href="ftp://ftp.primaryinterface.com/pub/rhino";>ftp://ftp.primaryinterface.com/pub/rhino</link>.
    </action>
    <action dev="JM" type="update">
     Added size attribute and sorting to directory-generator.  Thanks to
     Frank Ridderbusch for original code [BUGZILLA: 8531]
    </action>
    <action dev="CH" type="fix">
     Changed error behaviour in esql: all exceptions now result in error-results
     being evaluated. If error-results is present, exceptions are caught,
     otherwise a processing exception is thrown.
    </action>
    <action dev="CH" type="fix">
     Complete rewrite of grouping code in esql (footer still not supported),
     group-on available through esql:param
    </action>
    <action dev="CH" type="fix">
     Esql fix for get-columns with PostgreSQL and getObject not working with all
     datatypes
    </action>
    <action dev="CH" type="fix">
     CLOB support in esql logicsheet, esp. in get-xml
    </action>
    <action dev="TC" type="add">
      changed the LanguageException and the JavaLanguage to expose more than
      just the compilation error. Now it also shows the actual code from the
      repository +/- a few lines around that error.
    </action>
    <action dev="TC" type="add">
      restructured the ProgramGenerator and
      added option "watchSource" (true/false). If turned on you can
      make changes inside the generated source code (inside the repository)
      and the ProgramGenerator will compile them for you. This eases XSP
      debugging a lot! Turned off (same behaviour as before) by default.
    </action>
    <action dev="TC" type="fix">
      Fixed esql getBytes() behaviour
    </action>
    <action dev="CZ" type="add">
      Integrated the new Avalon Excalibur Store and StoreJanitor components.
      This deprecates the Cocoon version.
    </action>
    <action dev="GF" type="add" due-to="Andy Oliver" due-to-email="[EMAIL 
PROTECTED] ">
     Added formula support for HSSF Serializer.
    </action>
    <action dev="CZ" type="add">
      Integrated the new Avalon Excalibur XSLT Processor. This deprecates the
      Cocoon version.
    </action>
    <action dev="KP" type="update">
      Locale selection for I18nTransformer changed to use parameter set from 
sitemap.
      The old behavior (implicit locale selection using LocaleAction) is not 
supported any more.
      i18n samples are refactored, redesigned, new translations are added.
    </action>
    <action dev="CZ" type="add">
      Integrated the new Avalon Excalibur Source Resolving architecture. This 
deprecates
      the now obsolete Cocoon source resolving. Wrapper classes etc. have been 
provided
      for an easy upgrading. In addition the Excalibur XMLizer is added.
    </action>
    <action dev="CZ" type="add">
      Added the sunShine contribution from S&amp;N AG, Germany 
(http://www.s-und-n.de). This
      contribution consists of a session management framework, an authentication
      framework and a portal engine.
    </action>
    <action dev="VG" type="update" fixes-bug="10697">
     Changed default persistence store to the JispFilesystemStore.
     To switch back to FilesystemStore, remove jisp.jar and rebuild Cocoon
     (or simply edit cocoon.xconf)
    </action>
    <action dev="CZ" type="add" due-to="Ilya A. Kriveshko" due-to-email="[EMAIL 
PROTECTED]">
     RequestGenerator does optionally output request parameters.
    </action>
    <action dev="BH" type="add">
      Output extra locator info if included Throwable of ProcessingException is
      SAXParseException or TransformerException.
    </action>
     <action dev="BH" type="fix">
      FIX NPE in 
org.apache.cocoon.components.pipeline.impl.AbstractCachingProcessingPipeline,
      if content is malformed, and there exists an cached response the
      validity[] contains null entries.
    </action>
    <action dev="BH" type="fix" due-to="M. Kristian" due-to-email="[EMAIL 
PROTECTED]">
      Fix CocoonCrawlerImpl, check if contentType is not null, and always close 
the BufferedReader at the end.
    </action>
    <action dev="KP" type="add">
      Added JXPath based input modules for Request and Session properties.
      Demonstration sample is also added.
      RequestContextPathModule and RequestURIModules are obsolete now and
      will be removed.
    </action>
    <action dev="GF" type="update">
      Updated the Jisp store system to the new Jisp version and added the 
missing clear()
      and keys() methods.
    </action>
    <action dev="IAI" type="add">
      Added a more sophisticated example in samples/webserviceproxy/cocoonhive.
      Demonstrates a small virtual portal which embeds functionality
      from Amazon and OpenWiki.
    </action>
    <action dev="IAI" type="update">
      XMLFormTransformer now saves a list of referenced model properties,
      which is later used to automatically populate with default values
      properties which were not addressed in the http request (like unchecked
      checkboxes). This applies to session scope forms only.
    </action>
    <action dev="CZ" type="fix" fixes-bug="12915">
      The resource reader now checks if for the same URI the same source is read
      in order to test the if-last-modified header. This behaviour can be turned
      of (for more performance) by the quick-modified-test.
    </action>
  </release>
  <release version="2.0.4" date="December 06 2002">
    <action dev="SW" type="update">
     The HTMLGenerator now accepts a JTidy configuration file for fine-grained
     control on the generated document.
    </action>
    <action dev="CH" type="fix">
     New Logicsheet for use with InputModules.
    </action>
    <action dev="CH" type="add">
     xsp.xsl now includes all xsp:init-page tags. Additional xsp:exit-page tag 
for
     cleanup operations.
    </action>
    <action dev="CH" type="add">
     New InputModule to map parameter names to / from another name. Uses 
translation
     table and additional prefix / suffix.
    </action>
    <action dev="CH" type="fix" fixes-bug="14739">
     Fixed SimpleFormTransformer: Malformed XML with textarea elements.
    </action>
    <action dev="KP" type="add">
     Allow to set the i18n transformer's locale from the sitemap as a
     parameter (ported from 2.1-dev). The old behavior, based on LocaleAction 
is preserved
     only for 2.0.x versions and will be removed from the further releases (2.1 
and higher).
    </action>
    <action dev="DC" type="add">
     New build target "validate-config" to conduct build-time validation of some
     core important configuration files using RELAX NG (call it manually with:
     <code>./build.sh validate-config</code>). Currently doing: all 
sitemap.xmap,
     all cocoon.roles, all *.xsl stylesheets, all book.xml files.
    </action>
    <action dev="SW" type="add">
     Extend the syntax of sitemap variable substitution : variables can have a 
prefix which
     indicates an InputModule where to get the value from. For example, the 
expression
     "{request-param:foo}" will evaluate to the value of the "foo" request 
parameter (provided
     of course that the "request-param" InputModule is correctly defined in 
cocoon.xconf).
    </action>
    <action dev="CZ" type="fix" fixes-bug="12293">
     RequestLifecycleComponents were not handled properly when the cocoon: 
protocol is used
    </action>
    <action dev="CH" type="update">
     Changed SimpleFormTransformer to use InputModules.
    </action>
    <action dev="CH" type="update">
     Changed InputModules to return Iterator instead of Enumeration. New 
abstract
     "meta" module to make new meta modules easier. Stripped "meta" from 
defaults
     module. Added JXPathMetaModule. Added extension classes and packages to all
     modules that are based on JXPath.
    </action>
    <action dev="CH" type="update">
     Improved support for CLOB and BLOB columns in modular database actions.
    </action>
    <action dev="CH" type="add">
     New chaining InputModule that allows to use additional modules when an 
attribute is not
     present or null.
    </action>
    <action dev="CH" type="update">
     Changed defaults of InputModule names in many places to new names.
    </action>
    <action dev="CZ" type="fix" fixes-bug="14466" due-to="Luca Morandini" 
due-to-email="[EMAIL PROTECTED]">
     Fixing namespace handling of SQLTransformer.
    </action>
    <action dev="SW" type="add">
      New ZipArchiveSerializer to build zip files aggregating various sources
      as archive entries. Can be used to generate zip files, sxw files 
(OpenOffice),
      jar files, etc.
    </action>
    <action dev="VG" type="fix" fixes-bug="13648" due-to="Geoff Howard" 
due-to-email="[EMAIL PROTECTED]">
      CocoonServlet upload behavior now configurable from the web.xml.
      Configuration parameters are: autosave-uploads, overwrite-uploads,
      upload-max-size. See web.xml for description.
    </action>
    <action dev="VG" type="fix" fixes-bug="13643" due-to="Leo Sutic" 
due-to-email="[EMAIL PROTECTED]">
      Remove the static factory variable in RequestFactory, and instead
      pass it to the HttpRequest via the environment.
    </action>
    <action dev="VG" type="update">
      ReadDOMSessionTransformer now can work with any types of object
      (same mechanism as in &lt;xsp:expr&gt; now used). Configuration
      parameter dom-name renamed to attribute-name.
    </action>
    <action dev="VG" type="update">
      Src attribute can be used now with SessionAttributeGenerator to specify
      session attribute name. Old syntax preserved.
    </action>
    <action dev="VG" type="update">
      Local parameters in SessionStateAction still do override global 
parameters,
      but do NOT change global parameters.
    </action>
    <action dev="VG" type="update">
      Src attribute can be used now with ResourceExistsAction. Old parameter
      syntax preserved.
    </action>
    <action dev="CZ" type="fix">
      Fixed prefix mapping for the sql transformer.
    </action>
    <action dev="VG" type="update">
      FOP user configuration can now be specified as URL or relative path
      as the value of the &lt;user-config&gt; element.
    </action>
    <action dev="VG" type="fix" fixes-bug="6533">
      Load default FOP configuration only once, do not overwrite any user
      configuration.
    </action>
    <action dev="VG" type="fix" fixes-bug="11856" due-to="Stefan Seifert" 
due-to-email="[EMAIL PROTECTED]">
      Remove unnessesary code in SVGBuilder. This also fixes intermittent
      ClassCastExceptions in Batik code.
    </action>
    <action dev="VG" type="fix">
      Fix issue with cross-platform uploads. Uploaded file's name converted
      to match destination platform's path separator.
    </action>
    <action dev="VG" type="update" fixes-bug="12131">
      Absolute path now can be specified for work, cache, and upload directory.
      Read comments in web.xml, and verify your settings.
    </action>
    <action dev="VG" type="fix" fixes-bug="12328">
      Set URI resolver for XSLT handler every time time templates are used,
      because XSLT templates might reference disposed instance of XSLT 
processor.
      Fixes some NPEs in XSLT processor when templates cache is used.
    </action>
    <action dev="VG" type="fix">
      Fix sitemap reloading bug: When parent sitemap is modified, it is
      recompiled and reloaded. All sub-sitemaps of this sitemap also has
      to be reloaded because they have references to the parent sitemap's
      ComponentSelectors. This bug is the cause of some NPEs in the XSLT
      processor.
    </action>
    <action dev="VG" type="update" fixes-bug="11401">
      Improve backward compatibility: FilePartFile needs toString() method to
      work with code written for Cocoon 2.0.
    </action>
   <action dev="SW" type="fix">
      AbstractServerPages used static fields for dependency tracking, which 
caused
      either non-modified XSPs to be recompiled, or modified XSPs not to be 
recompiled.
    </action>
    <action dev="VG" type="update">
      SearchGenerator now includes &lt;field name=""/&gt; elements into 
&lt;hit/&gt;
      element. These elements contain stored fields of a found Document,
      making it possible to provide additional info about document in the
      search result list (only when index created with some stored fields).
    </action>
    <action dev="VG" type="update">
      In addition to attributes in same namespace with elements,
      link serializer reacts on non-namespaced attributes too. This allows
      processing of (strict) XHTML.
    </action>
    <action dev="CH" type="add">
     Backport usage of InputModules to compiled sitemap.
    </action>
    <action dev="CH" type="update">
     Sync modules and related components between 2.0.x and HEAD.
    </action>
    <action dev="CH" type="add">
     Added some more types understood by modular database actions.
    </action>
    <action dev="CH" type="fix">
     Request logicsheet: Fix session tags.
    </action>
    <action dev="CH" type="add">
     Added some more InputModules.
    </action>
    <action dev="CH" type="update">
     Changed existing OutputModules to not use ":" to separate key prefix from
     suffix if prefix is an empty string.
    </action>
    <action dev="CH" type="add">
     Simple Formvalidation: FormValidatorAction sets attribute "*" to indicate
     overall validation status. Added SimpleFormTransformer that fills XHTML 
form
     fields with values from request parameters and allows conditional error 
tags
     depending on validation result. This removes the requirement for
     XSP. Changed ordering of error levels: "notpresent" (indicates that no
     validation result is present for this parameter) moves between "ok" and
     "error". New error level "maxerror" used in conjunction with the
     transformer, is never set, used as upper bound.
    </action>
    <action dev="CH" type="fix">
     (Modular) DatabaseActions: select produced wrong result if no rows were
     found, query action returned broken result.
    </action>
    <action dev="CH" type="update">
     ESQL: Allow arbitrary types for prepared and callable statements via
     dynamically loading classes like the SQLTransformer does. Is-null now uses
     dynamic colum specification. Fixed skip-row feature, which was off by one.
     Added tag to get connection meta data.
    </action>
    <action dev="CZ" type="fix">
      Fixed NPE in the recycling phase of content aggregation.
    </action>
    <action dev="VG" type="fix" fixes-bug="9288">
      Fixed bug in cocoon pseudo protocol involving aggregation of aggregated
      resources spanning several sitemaps.
    </action>
    <action dev="VG" type="fix">
      Conect to the XML:DB once, from the XMLDBSourceFactory.
    </action>
    <action dev="BH" type="update" fixes-bug="11447" due-to="Torsten Knodt" 
due-to-email="[EMAIL PROTECTED]">
      Added cocoon-docs mailinglist to mail-archives.xml.
    </action>
    <action dev="VG" type="fix">
      &lt;xsp-util:include-expr/&gt; includes any object, converting it to 
string.
    </action>
    <action dev="VG" type="update">
      XSP now verifies that value of attribute name on xsp:element does not
      contains ':'. To create namespaced elements, uri and prefix attributes
      must be used.
    </action>
    <action dev="VG" type="fix">
      Request, response, and session logicsheet were incorrectly returning
      result when as="xml" is specified.
    </action>
    <action dev="VG" type="update">
      XScript now has better variable management: variables of request,
      session, global, and page scope are stored not in the XScriptManager,
      but as request, session, context attributes, or as XSP page field
      (respectively). Chances of memory leaks are highly reduced.
    </action>
    <action dev="VG" type="fix">
      Include all warnings and errors reported by the XSLT engine into the
      TransformerException if transformation fails or terminated by the
      stylesheet.
    </action>
    <action dev="VG" type="update">
      Update HSQLDB to version 1.7.0. Now it properly shuts down with Cocoon.
    </action>
    <action dev="CZ" type="update">
      All log messages from FOP now go into the logs instead of printing them 
to the screen.
    </action>
    <action dev="CZ" type="fix" fixes-bug="10254" due-to="Stuart Roebuck" 
due-to-email="[EMAIL PROTECTED] ">
     Applied patch for MaybeUploadRequestFactoryImpl which sets the timeout for 
a session to
     infinite during an upload and restores it afterwards.
    </action>
   </release>
   <release version="2.0.3" date="July 15 2002">
    <action dev="CZ" type="add">
     When Cocoon is built, the build system automatically detects the current 
jvm and builds
     a target for this virtual machine. This is eiter JVM 1.4 or JVM 1.2 upto 
1.3.
    </action>
    <action dev="KP" type="fix">
     Fixed current page indication in documentation menu (synced with HEAD).
    </action>
    <action dev="KP" type="update">
     Internationalization and JSP samples are refactored.
    </action>
    <action dev="CZ" type="add" fixes-bug="10505" due-to="Stuart Roebuck" 
due-to-email="[EMAIL PROTECTED]">
     When building Cocoon it is required to set the targetted JVM (either 1.3 
(means 1.3 or lower) or 1.4.
    </action>
    <action dev="VG" type="fix" fixes-bug="10311" due-to="Joachim Piketz" 
due-to-email="[EMAIL PROTECTED]">
     Fixed NullPointerException in Notifier.
    </action>
    <action dev="CH" type="update">
     Multiple results seem not to be supported by some DBMSs (i.e. Oracle and
     Informix). Therefore this is made optional in ESQL. A new parameter
     (esql:allow-multiple-results) to esql:connection re-enables it. See
     EsqlConnection for details.
    </action>
    <action dev="VG" type="fix" fixes-bug="9693" due-to="Vladimir Kralik" 
due-to-email="[EMAIL PROTECTED]">
     Properly escape (national) characters included in element's attributes
     in XSP page.
    </action>
    <action dev="VG" type="fix" fixes-bug="6934">
     Add connect-attempts and connect-waittime parameters to the SQLTransformer.
     Transformer tries to get a connection to the DB several times before
     returning an error.
    </action>
    <action dev="VG" type="fix" fixes-bug="8658" due-to="Michael Melhem" 
due-to-email="[EMAIL PROTECTED]">
     Fixed sitemap compilation error when matchers are used within view
     or resource.
    </action>
    <action dev="VG" type="fix" fixes-bug="8509" due-to="Michael Melhem" 
due-to-email="[EMAIL PROTECTED]">
     Fixed sitemap compilation error when actions are used within view.
    </action>
    <action dev="VG" type="fix" fixes-bug="3782">
     TraxTransformer and XSLTProcessor components now correctly handle
     dependecies on imported (via xsl:include) XSLT stylesheets.
    </action>
    <action dev="NKB" type="fix">
      Removed Java 1.3+ only method (URL.getPath()) from LinkStatusGenerator.
    </action>
    <action dev="SW" type="update">
     CocoonServlet no longer builds its own classloader. Also, it no more sets 
the thread's context
     classloader unless the "init-classloader" parameter is true. To have 
Cocoon use its own classloader,
     use the ParanoidCocoonServlet.
    </action>
    <action dev="VG" type="fix" fixes-bug="9539" due-to="Stuart Roebuck" 
due-to-email="[EMAIL PROTECTED]">
     ResourceReader incorrectly advertised byte ranges support.
    </action>
    <action dev="NKB" type="add">
      Added a "handle-exceptions" init argument in web.xml, used by 
CocoonServlet for the exceptions
      that the core Cocoon class throws.
      If true or not set, this class will try to catch and handle all Cocoon 
exceptions.
      If false, it will rethrow them to the servlet container.
    </action>
    <action dev="NKB" type="fix">
      Changed the Notifier notify() methods to accept a mimetype instead of 
returning it.
      There is no way in which this method could understand what mime/type to 
use from the
      notification info and the stream.
      It was added to the method using a ContentHandler, since it could output 
svg for example.
      The old methods were deprecated.
    </action>
    <action dev="NKB" type="fix" due-to="J.Pietschmann" due-to-email="[EMAIL 
PROTECTED]">
      Fixed error reporting in CocoonServlet: stream is now closed at the end 
of the service method,
      the content-type is sent before sending the error and the notification 
messages are now more
      descriptive.
    </action>
    <action dev="VG" type="fix" fixes-bug="8639">
     Support Parameterizable URLFactories.
    </action>
    <action dev="GF" type="fix" fixes-bug="9064" due-to="Jeroen ter Voorde" 
due-to-email="[EMAIL PROTECTED]">
      Fixed multipart request problems with IE6.
    </action>
    <action dev="VG" type="fix" fixes-bug="3372">
     Added ability to run Cocoon on Novell OS.
    </action>
    <action dev="SM" type="add">
     Make the multipart/form-data parser aware of the encoding used by the
     processed request.
    </action>
    <action dev="SM" type="add">
     Added support for StreamGenerator to read from 'multipart/form-data' as 
well.
    </action>
    <action dev="DC" type="add">
     Started new documents for
     <link href="plan/todo-doc.html">Documentation To Do List</link> and
     <link href="plan/changes-doc.html">Documentation History of Changes</link>.
    </action>
    <action dev="GF" type="fix" fixes-bug="8881" due-to="Peter Royal" 
due-to-email="[EMAIL PROTECTED]">
      Fixed NPE in DefaultNotifyingBuilder.
    </action>
    <action dev="GF" type="fix" fixes-bug="8743" due-to="Michael Enke" 
due-to-email="[EMAIL PROTECTED]">
     Fixed NPE in I18nTransformer.
    </action>
    <action dev="KP" type="update" due-to="Michael Enke">
     i18n transformer changed to use shorter syntax for number formatting. Now 
'type' attribute with
     'number', 'currency' and 'percent' should be used instead of 'type' and 
'sub-type'combination.
    </action>
    <action dev="CH" type="add">
     New documents on databases and Cocoon, database actions and modules.
    </action>
    <action dev="CH" type="add">
     Additional input modules: Date, Digest, ConstantString, Random, NullInput, 
Collection
    </action>
    <action dev="CH" type="fix" due-to="J&#252;rgen Ehms">
     Sendmail logicsheet works again.
    </action>
    <action dev="CH" type="add">
     Array support for original form validation and new constraint for strings:
     "one-of" lists all allowed values, separated by "|"s. List should start
     and end with "|".
    </action>
    <action dev="CH" type="fix">
     Aliases in modular database actions now work correctly. All of them return
     the number of affected rows as sitemap variable.
    </action>
    <action dev="GF" type="add" due-to="Maciek Kaminski" due-to-email="[EMAIL 
PROTECTED]">
     added new Selector component.
    </action>
    <action dev="GF" type="fix" fixes-bug="6740">
      Updated commons-httpclient.
    </action>
    <action dev="CZ" type="fix" fixes-bug="5772">
      Fixing bug in NetUtils that altered in some cases the link reference in 
command-line mode.
    </action>
    <action dev="VG" type="fix">
      XScript works now (and all XScript SOAP samples).
    </action>
    <action dev="VG" type="update">
      XSP engine now correctly processes pages with any encoding.
    </action>
    <action dev="VG" type="fix">
      Fixed error (NPE) in AbstractValidatorAction introduced in the 2.0.2.
    </action>
    <action dev="CZ" type="fix" fixes-bug="7510" due-to="Jeroen ter Voorde" 
due-to-email="[EMAIL PROTECTED]">
      Fixing ClassCastException when a multipart/form-data form is posted.
    </action>
    <action dev="CZ" type="update">
      Rewrote SQLTransformer and added capability to store/fetch XML.
    </action>
    <action dev="CZ" type="add">
      Added AbstractSAXTransformer for much easier implementation of custom
      transformers.
    </action>
    <action dev="SW" type="add">
      Handle request forwarding (aka internal redirects) using the "cocoon:"
      pseudo-protocol : writing &lt;map:redirect-to uri="cocoon:/foo.bar"/&gt; 
makes
      a recursive call on the current sitemap without going back to the browser
      (as usual, "cocoon://foo.bar" uses the root sitemap). This also keeps any 
data
      that have been stored as request attributes.
  
      Note: this is only available in the interpreted sitemap engine for now, 
and
      will come soon on the compiled engine.
    </action>
    <action dev="NKB" type="fix" fixes-bug="7251" due-to="Marcus Crafter" 
due-to-email="[EMAIL PROTECTED]">
      Small optimization to XConfTool to check if the file is actually
      an XConfTool file.
    </action>
    <action dev="NKB" type="add">
      Added LinkStatusGenerator donated by Michael Homeijer and accompanying 
sample
      sitemap to scratchpad.
    </action>
    <action dev="NKB" type="update">
      Moved castor scratchpad sample from /samples to /mount as other samples.
      Now the refactored sample page points to the mount dir, thus
      showing available scratchpad components to test.
    </action>
    <action dev="NKB" type="update">
      When including the scratchpad libs in the build,
      all the scratchpad samples are copied too.
    </action>
   </release>
   <release version="2.0.2" date="March 26 2002">
     <action dev="SW" type="add">
      New BootstrapServlet to allow Cocoon to run in non-compliant servlet
      engines that don't handle correctly servlet contexts. This servlet
      builds a class loader with the contents of WEB-INF/classes and
      WEB-INF/lib and manages resource resolution.
     </action>
     <action dev="NKB" type="update">
      Updated error reporting to add line, column and location
      attributes specified in SAXException and
      TransformerException.
      The error page in the webapp examples shows the new
      extra info.
    </action>
    <action dev="NKB" type="add">
      Added new "gump" target to the build, to be used as a general
      test of Cocoon code. To be used by Gump.
      It calls docs, javadocs, test and package.
      Gump descriptor has been modified to use it;
      now we also have automatic javadoc creation.
    </action>
    <action dev="NKB" type="update">
      cocoon.xconf is moved in WEB-INF for security reasons.
      The documentation has been updated to reflect the change.
    </action>
    <action dev="NKB" type="update">
     Partial commit of new samples structure.
     Samples go in samples/ dir with their own sitemap.
     All scratchpad samples that are in the samples/ subdir are
     copied in webapp samples automatically by installscratchpadwar
     target.
    </action>
    <action dev="SW" type="update">
     New "set-content-length" configuration for FOPSerializer to allow
     streaming of large PDFs (default is true for backwards compatibility).
    </action>
    <action dev="NKB" type="update">
     The docs now have svg stuff removed and these enhancements:
     menu items are in text,
     page title is in text,
     pages have new clean style courtesy of Stefano,
     added Stefano's explanation on how to write mails,
     the docs are generated with the TreeProcessor,
     the docs generation uses JispStore.
    </action>
    <action dev="NKB" type="add">
      Added new targets:
      "installwar"  asks for the directory in which to put
      the war and makes it.
      "installscratchpadwar"  does the same but incudes
      scratchpad libs ans samples.
    </action>
    <action dev="NKB" type="add">
     New POI HSSF Serializer; outputs to the .xls (not .xsl) file format.
     Added samples as legacy file format support.
    </action>
    <action dev="CH" type="add">
     New module structure for input, output, and database specifica in
     scratchpad. Thus it is possible to write generic components for one
     task and replace input and output dynamically. As an example a
     generic version of a WildcardMatcher is provided as well as a
     sample action that uses it. DatabaseActions in scratchpad use this
     structure as well.
    </action>
    <action dev="CH" type="update">
     Moved ModularDatabase*Actions to new home in scratchpad and
     reworked them. They now use new module structure. For sample
     application, copy mod-db directory to cocoon/mount.
    </action>
    <action dev="CH" type="update">
     Changed jdbc datasource to ResourceLimitingJdbcDataSource because
     it does not require to be able to contact the datasource on
     startup. Thus race condition with HSQLDB startup is eliminated.
    </action>
    <action dev="VG" type="add">
     Added new Jisp based persistence cache, to improve (1) performance and (2)
     to solve the problem with long filenames on Windows OS flavours.
    </action>
    <action dev="GF" type="add">
     Added new Jisp based persistence cache, to improve (1) performance and (2)
     to solve the problem with long filenames on Windows OS flavours.
    </action>
    <action dev="GF" type="update">
     Removed explicit System.gc() call from StoreJanitor, because this
     caused performance leaks.
    </action>
    <action dev="TC" type="update">
     Added support for input type=image buttons
    </action>
    <action dev="TC" type="update">
     Deprecated the old cocoon-action=ACTION syntax in favor of the new
     cocoon-action-[ACTION]=whatever. Still supported though.
    </action>
    <action dev="BH" type="add">
     Added encodeURL transformer for encoding URIs.
    </action>
    <action dev="CZ" type="update">
     Using migrated XPath Processor from Avalon Excalibur instead of own 
component.
    </action>
    <action dev="CZ" type="fix">
     Fixed endless loop bug in IncludeXMLConsumer.
    </action>
    <action dev="VG" type="update">
     Added &lt;xsp:page create-session=""&gt; attribute now processed correctly,
     as described in the xsp-session logicsheet documentation. Variable 
'session'
     declared and could be used in XSP page code.
    </action>
    <action dev="SW" type="add">
     New implementation of the sitemap engine based on an evaluation tree. This 
provides
     super-fast load times (no more compilation), and a slight gain in request 
processing
     speed compared to the compiled engine thanks to the HotSpot VM.
    </action>
    <action dev="VG" type="add">
     Added matchers: HeaderMatcher, ParameterMatcher.
    </action>
    <action dev="VG" type="add" due-to="Matteo Di Giovinazzo" 
due-to-email="[EMAIL PROTECTED]">
     Added CookieSelector.
    </action>
    <action dev="VG" type="add" due-to="Maciek Kaminski" due-to-email="[EMAIL 
PROTECTED]">
     Added CookieMatcher.
    </action>
    <action dev="VG" type="add">
     Request, response, and session XSP logicsheets in Javascript language are 
added.
    </action>
    <action dev="SM" type="add" due-to="Andreas Hartmann" due-to-email="[EMAIL 
PROTECTED]">
     Added Cocoon link page.
    </action>
    <action dev="SM" type="add" due-to="Maxim Dominichenko" 
due-to-email="[EMAIL PROTECTED]">
     Added 'cocoon.ico'.
    </action>
    <action dev="SM" type="update">
     Cleaned up documentation and refactored it a little.
    </action>
    <action dev="GR" type="fix">
     Started to clean up the XML:DB stuff. The XML:DB generators have been
     deprecated, and a note has been written in the docs suggesting to switch
     to the XML:DB pseudo-protocol. Configurations have been switched from dbXML
     to Xindice.
    </action>
    <action dev="SW" type="add">
     New WriteableSource interface that extends Source. Just as Source for 
reading,
     it allows to transparently write to various destinations. The first 
implementation
     is FileSource to write to files.
    </action>
    <action dev="JQ" type="add">
     Added FileWritingTransformer and sample file editor to scratchpad.
    </action>
    <action dev="CZ" type="fix">
     Fixed some bugs in the file URI resolving on windows plattforms.
    </action>
    <action dev="CZ" type="update">
     Using migrated entity resolver from Avalon Excalibur instead of own 
component.
    </action>
    <action dev="VG" type="add">
     Javascript language now supported by the XSP pages. Samples of Javascript
     XSP pages are added.
    </action>
    <action dev="CZ" type="update">
     Using migrated XML Parser from Avalon Excalibur instead of own component.
    </action>
    <action dev="CZ" type="update">
     Added subprotocol "raw" to the cocoon: protocol. When the subprotocol is
     appended, the request parameters of the original request are not
     forwarded to the internal pipelines. Suggested by
     Michael Hartle [mhartle.at.hartle-klug.com].
    </action>
    <action dev="VG" type="add">
      Added Pizza Java compiler as another alternative to Sun javac and Jikes.
    </action>
    <action dev="VG" type="update">
      ProgramLanguage is decoupled now from the languages compiled into Java.
      Instead of Class object representing a program, Program interface has
      been introduced.
    </action>
    <action dev="VG" type="fix">
      Text located in XSP language logicsheets now properly quoted.
    </action>
    <action dev="CZ" type="fix" fixes-bug="6242">
     SQL Transformer did enter Infinite Loop. This is fixed now.
    </action>
    <action dev="VG" type="fix" fixes-bug="4117">
      Sitemap engine verifies that root element is the &lt;sitemap&gt; element
      in the 'http://apache.org/cocoon/sitemap/1.0' namespace.
    </action>
    <action dev="VG" type="fix">
      Move commonalities between sitemap markup language and XSP markup language
      into CocoonMarkupLanguage.
    </action>
    <action dev="CZ" type="update">
      Minor rewrite of the LogTransformer. The logfile is now resolved using
      the standard source resolver. The component is now recycled properly.
    </action>
    <action dev="CZ" type="update">
      Minor rewrite of the SQLTransformer. Removed several parameters tests
      and the use of Properties objects - instead the Parameters object
      is used directly.
    </action>
    <action dev="VG" type="update" due-to="Konstantin Piroumian" 
due-to-email="[EMAIL PROTECTED]">
      Action LangSelect has been deprecated in favor of LocaleAction.
    </action>
    <action dev="VG" type="update">
      Allow sitemap components to be declared in the cocoon.xconf. Enhance
      SitemapComponentSelector to store label information provided in
      the configuration.
    </action>
    <action dev="GR" type="add">
      Added the XPath-enabled DirectoryGenerator (XPathDirectoryGenerator)
      to scratchpad.
    </action>
    <action dev="VG" type="fix" fixes-bug="4117">
      XSP engine verifies that root element is the &lt;page&gt; element in the
      'http://apache.org/xsp' namespace.
    </action>
    <action dev="VG" type="fix">
      Markup language logicsheets in general and XSP logicsheets in particular
      are now looked up by their namespace URI, not prefix.
    </action>
    <action dev="VG" type="update">
      xsp-request and xsp-response logicsheets got more tags, and now are
      (almost) backward compatible with the logicsheets in Cocoon 1.8.
    </action>
    <action dev="VG" type="update">
      Cache relies on two types of store components: (1) transient cache,
      with cache-transient shorthand, and (2) persistent cache, with
      cache-persistent shorthand.
    </action>
    <action dev="VG" type="update">
      FilesystemStore (used as programs repository) now is created as all other
      components from the cocoon.xconf, and can be configured to use working
      directory, cache directory, or any other directory.
    </action>
    <action dev="SW" type="update">
      Calling getInputStream() on a "cocoon:" source now returns the same output
      as an external call instead of always using an XML serializer.
      This also allows to get internally data produced by a Reader.
    </action>
    <action dev="VG" type="fix">
      Fixed memory leaks in XScript engine. Fixed global and session scope
      variables: now they are shared between XScript pages as it should be.
      Page scope variables now visible for all instances of the same page.
    </action>
    <action dev="VG" type="add">
      Added size() method to the Store interface.
    </action>
    <action dev="GP" type="fix">
      Prevent PostInputStream from looping if the available() method of the base
      InputStream is returning 0.
    </action>
    <action dev="VG" type="add">
      Added X-Cocoon-Version header to all responses generated by Cocoon.
    </action>
    <action dev="VG" type="update">
      SystemID for cocoon: pseudo-protocol URIs changed from the form of
      
&lt;schema&gt;:\\&lt;host&gt;:&lt;port&gt;\path\to\resource\from\the\root\sitemap
      to the form cocoon:\\path\to\resource\from\the\root\sitemap. This provides
      portability for compiled resources generated from the cocoon: sources.
    </action>
    <action dev="CH" type="add">
      Stored Procedure support for esql plus ability to obtain and use a result
      set from any column just like a nested query.
    </action>
   </release>
   <release version="2.0.1" date="January 31, 2002">
    <action dev="SW" type="update" due-to="Stephan Michels" 
due-to-email="[EMAIL PROTECTED]">
      The FragmentExtractorTransformer is now configurable to extract any 
fragment
      identified by an element name and namespace URI, and no more limited to
      SVG images only.
    </action>
    <action dev="VG" type="fix">
      XSP engine now correctly works with dynamically generated sources
      with last modification date of 0, and it is correctly reloaded on Cocoon
      reload.
    </action>
    <action dev="VG" type="update">
      Logicsheets are resolved using instance of url factory source resolver
      (URLFactorySourceResolver), and not the current request resolver (which
      is temporary object).
    </action>
    <action dev="VG" type="update">
      Improve Lucene indexing. Only one Lucene document is created for one
      Cocoon resource. Document consists from 'body' field with all the text,
      'element' field for every &lt;element&gt;, and '[EMAIL PROTECTED]' for
      every attribute of the &lt;element&gt;.
    </action>
    <action dev="GF" type="fix">
     Fixed performance issues in the Store implementation:
     (1) removed the FilesystemQueueImpl, one thread less now, (2) changed 
swapping
     alghorithm in the MRUMemoryStore towards less serialization, (3) Cache 
entries
     will be saved to the filesystem, when the System is shutdown cleanly, (4) 
fixed
     bug submitted by Peter Hargreaves [pdh.at.totalise.co.uk] in StoreJanitor
     (GC hangs in endless loop).
    </action>
    <action dev="VG" type="update">
      Serializers do not write namespace attributes for prefixes starting with
      xml anymore (these are reserved by XML spec).
    </action>
    <action dev="GF" type="update">
     Removed Event Cache and Stream Cache. For all possible Caching Piplines 
there
     is only one Store implementation behind.
    </action>
    <action dev="GF" type="update">
     Added new log targets. (1) access.log, (2) core.log, (3) error.log and
     (4) sitemap.log.
    </action>
    <action dev="VG" type="update">
      Perform substitution in the sitemap only when it is required (improves
      performace).
    </action>
    <action dev="VG" type="add">
      Additions to sitemap syntax: (1) allow all elements at root level, not
      only matchers, (2) perform some validation checks, (3) perform attribute
      substitution on all attributes except @type and @label.
    </action>
    <action dev="DC" type="add">
      Added &quot;List of Docs&quot; which automatically generates a list
      of all Cocoon documentation by aggregating each xdocs/**/book.xml
    </action>
    <action dev="DC" type="fix" fixes-bug="5060">
      The Catalog Entity Resolver is now fully operational on all platforms
      in both the webapp context and the commandline context of build docs.
      The verbosity level is now set low - if you want to see messages, then
      raise the verbosity via cocoon.xconf or CatalogManager.properties
    </action>
    <action dev="CZ" type="update">
      Separated the jars into core and optional. For compiling only the
      core jars are necessary. However, the sample webapp still needs some
      optional jars.
    </action>
    <action dev="VG" type="add">
      Added matchers:
      RegexpHeaderMatcher, RegexpRequestAttributeMatcher,
      RegexpRequestParameterMatcher, RegexpSessionAttributeMatcher,
      RequestAttributeMatcher, SessionAttributeMatcher,
      WildcardHostMatcher, WildcardRequestAttributeMatcher.
    </action>
    <action dev="BL" type="fix" fixes-bug="5791">
      Address issue about how RegexpURIMatcher matches the "" pattern.
      Because it is so different from WildcardURIMatcher, the "" pattern
      is rewritten as "^$" which matches an empty string.  The event is
      logged, along with the hint that if you really want to match
      everything, the pattern ".*" works as advertised.
    </action>
    <action dev="BL" type="update">
      Fix command line generation so that a broken link was not a fatal
      error, and processing will continue after the link is reported as
      bad.
    </action>
    <action dev="BL" type="add">
      Add ability to serialize all broken links to a file when running in
      command line mode.  This helps debug sites.
    </action>
    <action dev="VG" type="update">
      Rename some of the matchers/serializers (new added, old deprecated):
      RequestSelector to RequestParameterSelector,
      RequestParamMatcher to RequestParameterMatcher,
      WildcardParameterValueMatcher to WildcardRequestParameterMatcher,
      RegexpTargetHostMatcher to RegexpHostMatcher.
    </action>
    <action dev="VG" type="update">
      Wap serializer renamed to wml serializer in the sitemap shipped with
      Cocoon, to be consistent with the names of other serializers.
    </action>
    <action dev="CZ" type="update">
      FilterTransformer is now Cacheable.
    </action>
    <action dev="CZ" type="update">
      Added CACHE_VALIDITY singleton object to NOPCacheValidity and changed all
      components to use constant instead of creating new instances each time.
    </action>
    <action dev="VG" type="fix">
      Fix lifecycle related bugs in i18n transformer. Now transformers handles
      only lifecycle of resource bundle factory, which handles lifecycle of all
      resource bundles.
    </action>
    <action dev="CZ" type="add">
      Added special lifecycle interface for Cocoon components: RequestLifecycle.
      A component marked by this interface has the lifecycle of one request,
      so looking up the role twice during the same request results in the same
      component.
    </action>
    <action dev="SW" type="update">
      The "namespace-prefixes" feature is no more set on parsers. It can be set 
if
      needed in the configuration.
    </action>
    <action dev="VG" type="add">
      Added ability to use XPath expressions to query XML:DB collections using
      XML:DB pseudo protocol. URL should be in form:
      xmldb:dbxml://host:port/db/collection/#/xpath
    </action>
    <action dev="VG" type="add">
      Enabled XML:DB support (generators and pseudo protocol) by default.
    </action>
    <action dev="VG" type="fix" fixes-bug="4239">
      JSPEngine returns result in UTF-8 charset.
    </action>
    <action dev="CH" type="add">
      Changed invokation syntax of sitemap resources. Now &lt;call resource/&gt;
      is used instead of &lt;redirect-to resource/&gt;. Affects only resources,
      other redirections still use "old" syntax. New syntax does not take 
"target"
      attribute but allows to set arbitrary parameters by using
      &lt;map-parameter/&gt; Always creates new map while old syntax only did
      when "target" was present. Old syntax still available but deprecated.
    </action>
    <action dev="VG" type="fix" due-to="Eisert, Wolfram" due-to-email="[EMAIL 
PROTECTED]">
      XSP page were called twice if used as a source of XSLT stylesheet due to 
multiple calls to
      Source.getInputSource() in XSLProcessorImpl.
    </action>
    <action dev="VG" type="update">
      Changed default upload directory from "image-dir" to "upload-dir".
    </action>
    <action dev="VG" type="add" due-to="MIYABE Tatsuhiko" due-to-email="[EMAIL 
PROTECTED]">
      RequestGenerator accepts container-encoding and form-encoding parameters.
    </action>
    <action dev="CZ" type="update">
      Added support for configurable URLFactories.
    </action>
    <action dev="SW" type="fix">
      Made the cache work again by updating cocoon.roles, sitemap.roles and 
making EventPipeline
      and StreamPipeline implement Recomposable instead of just Composable.
    </action>
    <action dev="GR" type="add">
      Added the XML:DB pseudo protocol
    </action>
    <action dev="SW" type="add">
      Status generator outputs a detailed description of what's in the cache. 
Patch submitted by
      Sebastien Koechlin [skoechlin.at.ivision.fr]
    </action>
    <action dev="CZ" type="update">
      Applied patch adding advanced error handling to SQLTransformer plus 
escape-string element
      from Peter Seiderer [Peter.Seiderer.at.ciselant.de]
    </action>
    <action dev="CZ" type="update">
      The JaxpParser is now poolable and configurable.
    </action>
    <action dev="SW" type="update">
      The sitemap engine is now a regular component available through 
Processor.ROLE. This allows
      alternative implementations of Processors (e.g. interpreted sitemap, 
flowmap, statemap) to
      be plugged through cocoon.xconf. Note : to ensure compatibility with 
existing cocoon.xconf
      files, the shorthand for the Processor role is "sitemap".
    </action>
    <action dev="CZ" type="update">
      Added support for configurable SourceFactories.
      Patch submitted by Gianugo Rabellino [gianugo.at.rabellino.it].
    </action>
    <action dev="CZ" type="add">
      Added RTF serialization of XSL-FO documents (requires jfor).
      Patch submitted by Bertrand Delacretaz [bdelacretaz.at.codeconsult.ch].
      Applied patch for the SQLTransformer to output namespaces for the
      generated elements. Patch submitted by Per-Olof Nor&eacute;n 
[pelle.at.alma.nu].
    </action>
    <action dev="SW" type="add">
     New ServerPagesAction and associated "action" and "capture" logicsheets
     that allow actions to be written in XSP and parts of the generated XML
     to be captured in XMLFragment or DOM objects.
    </action>
   </release>
   <release version="2.0" date="November 29, 2001">
    <action dev="CZ" type="update">
      Restructured build system. A new ant task (SitemapToolTask) adds entries
      of optional components to the sitemap. Warnings for not available
      optional components are printed out.
    </action>
    <action dev="GP" type="update">
      Made the concept of views work as proposed in the original proposal. There
      is now the possibility to attach a label attribute with multiple values 
separated
      by blanks or commas to the following elements: map:generator, 
map:transformer,
      map:generate, map:transform, map:aggregate and map:part.
    </action>
    <action dev="CZ" type="update">
      Applied patch for session-info for TraxTransformer from J&ouml;rn Heid
      [heid.at.fh-heilbronn.de].
    </action>
    <action dev="CZ" type="update">
      Applied patch for the SQLTransformer to output namespaces for the
      generated elements. Patch submitted by Per-Olof Nor&eacute;n 
[pelle.at.alma.nu].
    </action>
    <action dev="OP" type="update">
      Applied patch for incremental XSLT processing from J&ouml;rn Heid
      [heid.at.fh-heilbronn.de].
    </action>
   </release>
   <release version="2.0rc2" date="November 7, 2001">
    <action dev="SW" type="add">
      Deprecation of CodeFactory in preparation of the tree traversal 
implementation of the sitemap.
      All factory-based matchers have been rewritten using the new 
PreparableMatcher interface, and
      all factory-based selectors have been rewritten as regular 
implementations of Selector.
      For patterns whose syntax uses '{' like regexp, sitemap substitution can 
be avoided by escaping the
      brace character (example : "pat\{2}ern" will match "pattern").
    </action>
    <action dev="SW" type="fix">
      Reduce exception nesting in case of sitemap setup errors, and display all 
nested exceptions
      in the error page (avoids searching the logs for the failure cause).
    </action>
    <action dev="SW" type="update">
      Added attribute management methods to environment Context and its 
implementations.
    </action>
    <action dev="SW" type="update">
      Updated TraxTransformer and XSLTProcessor to allow simultaneous use of 
several
      TRAX processors (e.g. xalan and saxon) in a controlled way.
    </action>
    <action dev="CZ" type="fix">
      Updated session handling of commandline interface and fixed
      parameter handling.
    </action>
    <action dev="CZ" type="fix">
      Fixed missing prefix in elements generated by the directory and image
      directory generator.
    </action>
    <action dev="CZ" type="fix">
     Throw exception for internal requests instead of using the error handler 
and
     fixed component handling in subsitemaps when invoked internally. 
Components only
     defined in a subsitemap were not found as for internal requests the parent
     component manager was used.
    </action>
    <action dev="CZ" type="update">
      When Cocoon is reloaded, the logkit configuration is now also reloading.
      This enables changing the logkit settings during runtime.
    </action>
    <action dev="CZ" type="update">
      The documentation build system now uses Cocoon itself to generate the
      html documentation.
    </action>
    <action dev="CZ" type="fix">
      Applied NPE fix in certain conditions in ServerPagesGenerator.
      Submitted by: Ovidiu Predescu [ovidiu.at.cup.hp.com]
    </action>
    <action dev="CZ" type="fix">
      Applied NPE fix for MRUMemoryStore Submitted by: Ovidiu Predescu 
[ovidiu.at.cup.hp.com]
    </action>
    <action dev="CZ" type="fix">
      Fixed (hopefully) dependency to the http environment in StreamGenerator.
    </action>
    <action dev="CZ" type="fix">
      Optional setting of the lexical-handler for XMLReader. This patch allows 
to use
      Crimson instead of Xerces. Submitted by: Ovidiu Predescu 
[ovidiu.at.cup.hp.com]
    </action>
    <action dev="CZ" type="update">
      Added xml compiler and interpreter to cocoon.xconf
    </action>
    <action dev="CZ" type="fix">
      Applied Patch for entity catalogs: accept parameters from xconf.
      Submitted by: David Crossley [crossley.at.indexgeo.com.au]
    </action>
    <action dev="CZ" type="fix">
      Applied fix for missing "User-Agent" header in BrowserSelectorFactory.
      Submitted by: Joerg Henne [j.henne.at.levigo.de]
    </action>
    <action dev="CZ" type="fix">
      Enhanced Command Line Interface by adding background attribute to 
ExtendedXLinkPipe
      and fixing bugs: "mailto:"; and "news:"; are now ignored for traversing and 
links
      containing anchors are handled properly
    </action>
    <action dev="CZ" type="update">
      Applied patch for default value support for RequestParamAction.
      Submitted by: Sergio Carvalho [sergio.carvalho.at.acm.org]
    </action>
    <action dev="CZ" type="fix">
      Applied fix for a bug in the WriteDOMSessionTransformer for handling xml 
documents
      with namespaces correctly. Submitted by: Greg Weinger 
[gweinger.at.itmedicine.net]
    </action>
   </release>
   <release version="2.0rc1" date="September 24, 2001">
    <action dev="SW" type="add">
     New "capture" logicsheet that allows parts of XSP-generated XML to be 
captured
     as XMLFragment or DOM objects.
    </action>
     <action dev="GP" type="add">
     Added LogKit management functionality.
    </action>
    <action dev="SW" type="add">
     Removed ThreadSafe from the Action interfaces : the decision to be 
ThreadSafe
     is left to each implementation. Consequently, existing actions now 
explictly
     implement ThreadSafe.
    </action>
    <action dev="CZ" type="add">
     Redesigned the handling of the cocoon: protocol. Removed the pushURI
     and popURI methods. It is now possible to load cocoon: resources
     parallel in several tasks.
    </action>
    <action dev="VG" type="fix" fixes-bug="2737">
     Fixed package name generation for subsitemap components and external 
components.
    </action>
    <action dev="VG" type="add">
     Added ability to specify custom 404 error page for pipelines using
     map:handle-errors element with attribute type="404".
    </action>
    <action dev="VG" type="fix">
     Catch NoClassDefFoundError and throw ResourceNotFoundException
     if XSP was requested with different case.
    </action>
    <action dev="SW" type="add">
     New log formatter outputs the caller class and request URI in the log file.
    </action>
    <action dev="CZ" type="add">
     Added patch by Stuart Roebuck (stuart.roebuck.at.adolos.com)
     fixing the byte handling of the ImageDirectoryGenerator.
    </action>
    <action dev="DM" type="add">
     Added capability to resolve external XML entities using an entity resolver.
     See the documentation for "Entity Catalogs".
    </action>
   </release>
   <release version="2.0b2" date="July 23, 2001">
    <action dev="CZ" type="add">
      When a resource is not found (ResourceNotFoundException) the
      servlet sets only the status 404 and doesn't write to the output.
    </action>
    <action dev="SW" type="add">
      In http environment, reset the response if it hasn't been committed
      before executing the handle-errors pipeline.
    </action>
    <action dev="CZ" type="add">
      Added reloading of jar files. When cocoon is reloaded by specifying
      cocoon-reload parameter, the class-path is new build and used.
    </action>
    <action dev="CZ" type="add">
      Added caching of cocoon: urls.
    </action>
    <action dev="CZ" type="add">
      Redirects are handled when the cocoon: url points to a redirect in
      the sitemaps.
    </action>
    <action dev="CZ" type="fix">
      Fixed proper setting of content length for pdf and images.
    </action>
    <action dev="VG" type="fix">
      Fixed parsing and reporting of Java compilation errors using Javac
      and Jikes compilers.
    </action>
    <action dev="VG" type="add" due-to="John Morrison" due-to-email="[EMAIL 
PROTECTED]">
      Added documentation on libraries used in Cocoon.
    </action>
    <action dev="CZ" type="add">
      Redesigned the source handling and added the source handler
      and source factory components.
    </action>
    <action dev="CZ" type="add">
      Added the cocoon: protocol to access pipelines. cocoon:/ resolves
      to the current sitemap and cocoon:// to the root sitemap.
    </action>
    <action dev="VG" type="fix">
      Offline site generation now allows recursive links and
      works for site of any complexity (limited by capabilities of your
      filesystem).
    </action>
    <action dev="CZ" type="add">
      Removed XInclude/CIncludeSAXConnectors and added LoggingSAXConnector.
    </action>
    <action dev="CZ" type="add">
      Added CIncludeTransformer.
    </action>
    <action dev="BL" type="fix" fixes-bug="2182">
      Fixed the sub-sitemap issue experienced after a code merge
      between 2.0 and 2.1
    </action>
    <action dev="BL" type="add">
      Added the automatic announcement generation utility from
      Avalon.
    </action>
    <action dev="BL" type="fix" fixes-bug="2172">
      Fixed typo that created an element &lt;xsp-request:get-user/&gt;
      instead of &lt;xsp-request:get-host/&gt; in XSPRequestHelper.
    </action>
    <action dev="BL" type="fix" fixes-bug="2166">
      Made sure the _static_ classes did not inherit from each other,
      and made all calls to XSPObjectHelper that handled XML elements
      explicitly call with URI and PREFIX as parameters to the methods.
    </action>
    <action dev="BL" type="fix" fixes-bug="2142">
      Applied fix to URLFactoryImpl donated by wangtun.at.staff.yam.com.
    </action>
    <action dev="BL" type="add">
      Added support for fine-grained pool size control for Excalibur Component
      Architecture.
    </action>
    <action dev="BL" type="fix">
      Fixed component release errors in ContentAggregator (thanks to Vadim
      Gritsenko for the patch).  Also fixed potential race conditions in
      the ComponentManager architecture in Avalon Excalibur.
    </action>
    <action dev="GP" type="add">
     Integrated new StreamGenerator from Kinga Dziembowski 
&lt;kingadziembowska.at.msn.com&gt;
     Documentation is available in the webapp/docs/samples/stream/ReadMeAdd.txt 
(not yet converted to xdocs)
    </action>
    <action dev="CZ" type="update">
     Fixed ClassCastException in CommandLineEnvironment.
     Added Redirector interface to the CommandLineEnvironment to avoid class 
cast exceptions
    </action>
    <action dev="CZ" type="update">
     Fixed NPE in browser detection.
     Applied patch to the BrowserImpl. from Ovidiu Predescu 
(ovidiu.at.cup.hp.com). It
     fixes a NPE if the browser is not described.
    </action>
    <action dev="CZ" type="update">
     The TraxTransformer resolves now the uri used inside a stylesheet (e.g. 
xsl:include).
     Applied the patch from Rick Tessner (rick.at.myra.com).
    </action>
    <action dev="CZ" type="update">
     SQLTransformer is now recycled properly.
     Applied patch from Ovidiu Predescu (ovidiu.at.cup.hp.com).
    </action>
   </release>
   <release version="Cocoon 2.0b1" date="June 7, 2001">
    <action dev="CZ" type="update">
     Removed setContentHandler and setLexicalHandler from the XMLProducer 
interface.
    </action>
    <action dev="CZ" type="add">
     The sitemap components now use the new SourceResolver to resolve
     resources instead of the old EntityResolver approach.
    </action>
    <action dev="GP" type="add">
     Added a internal-only attribute to the map:pipeline element to protect them
     from being accessed by normal user request. The only way to access them by
     use of the src attribute of the map:part element or the xinclude:href of
     the XIncludeSAXConnector which implements transparent xinclude capability
    </action>
    <action dev="GP" type="add">
     Added a prefix attribute to both map:aggregate and map:part to have a
     namespace prefix available.
    </action>
    <action dev="GP" type="add">
     Added an optional strip-root attribute to the map:part element of the
     map:aggregate element to indicate that the aggregator should strip off
     the root element of the aggregated content. The values can be "yes" or 
"true"
     to strip off and anything else to not.
    </action>
    <action dev="GP" type="update">
     Made element attribute of map:part element in map:aggregate element 
optional
    </action>
    <action dev="GP" type="add">
     Also added substitution for test/pattern attribute.
    </action>
    <action dev="GP" type="add">
     Implementation of content aggregation at sitemap level.
    </action>
    <action dev="GP" type="add">
     Enable a parallel calling path into the sitemap for internal requests
     of resource.
    </action>
    <action dev="GP" type="fix">
     Added missing methods on CommandLineRequest.
    </action>
    <action dev="CZ" type="update">
     Finished cleanup of the environment. We are now as independant of
     the javax.servlet package as possible.
    </action>
    <action dev="CZ" type="add">
     Creating wrappers for Session and Cookie.
     The creation of these wrapper classes allow us to be independent
     of the javax.servlet classes.
    </action>
    <action dev="CZ" type="add">
      Added reload-method and check-reload configuration attributes for
      the sitemap to allow asynchron/synchron sitemap reloading.
    </action>
    <action dev="CZ" type="add">
      Added initial caching algorithm for StreamPipelines. The caching system
      is pluggable and offers caching of the whole response.
    </action>
    <action dev="CZ" type="add">
      Added initial caching algorithm for EventPipelines. The caching system
      is pluggable and includes caching of generators and transformers.
    </action>
    <action dev="BL" type="remove">
      Moved ComponentManagement infrastructure to Avalon where more eyes
      can keep it working well, and it can benefit more people.
    </action>
    <action dev="GP" type="update">
      Decoupled the RoleUtils class from the component management system.
      Implemented RoleInfo proposed by Ricardo Rocha
    </action>
    <action dev="GP" type="update">
      Split up ResourcePipeline into the Component EventPipeline and 
StreamPipeline
      and put them in the components package.
      it.
    </action>
    <action dev="RB" type="update">
      Added a TranscoderFactory for Batik, and updated the SVG Serializer to use
      it.
    </action>
    <action dev="PR" type="add">
      Added support for SAXConnectors. This is the first stage in the
      implementation of content aggregation. SAXConnectors could also
      be used for profiling and pipeline logging.
    </action>
    <action dev="BL" type="add">
      Added form to database Actions.  Using these Actions, you can quickly
      generate a webapp that functions in _very_ little time.
    </action>
    <action dev="DM" type="update">
      Added command line code generation and compilation of XSP's and the 
Sitemap.
    </action>
    <action dev="DM" type="update">
      Eliminated dependency on Xalan. Updated sitemap.xsl and the Extension 
functions to
      work both on Xalan and SAXON. SAXON should work from version 6.2.2 
onwards.
    </action>
    <action dev="DM" type="update">
      Eliminated dependency on Xerces for the serializers by using TRaX 
Serializers.
    </action>
   </release>
   <release version="Cocoon 2.0a" date="March 2001">
    <action dev="BL" type="update">
      Made Cocoon load classpath independent of Servlet Engine Classpath
      Attribute.
    </action>
    <action dev="BL" type="update">
      Changed the Xerces Specific code in the parser to JAXP 1.1 code.
      The JAXP 1.1 code will work with any compliant parser.  Unfortunately
      we still need Xerces for the serializers.
    </action>
    <action dev="BL" type="update">
      Put meat on the Action Framework for the ManageEmployees form.
    </action>
    <action dev="RB" type="update">
     SVG serializer now uses Batik.
    </action>
    <action dev="BL" type="add">
      I did a first stab at importing the util logicsheet from Cocoon 1.8.1.
    </action>
    <action dev="BL" type="add">
      I added some simple forms that make use of the xsp-request and esql
      logicsheets.
    </action>
    <action dev="BL" type="update">
      Clean up a lot of classloader issues.  RepositoryClassLoader is quicker 
and
      more stable accross installations.  ClassUtils takes care of getting 
resources.
    </action>
    <action dev="BL" type="update">
      Updated avalonapi to implement hierarchical logging, and added many more
      log entries to get a handle on where the problems lay.
    </action>
    <action dev="DB" type="add">
     added esql logicsheet to c2
    </action>
    <action dev="DB" type="fix">
     patched xsp generator to use proper namespace for automatic text elements
    </action>
    <action dev="BL" type="update">
      Updated Cocoon to be Avalon 3.0a4 compliant.  Introduced ComponentManager 
and
      ComponentSelector patterns correctly in code.  Updated sitemap to create
      Configuration trees directly.
    </action>
    <action dev="RB" type="add">
     Added a more complete SVG serializer.
    </action>
    <action dev="SM" type="update">
     Distribution cleanup and creation of a decent live demo, also to test the 
new sitemap.
    </action>
    <action dev="GP" type="update">
     Major update to implement the new compiled sitemap subsystem.
    </action>
    <action dev="DB" type="update">
     Patched XSLTFilter to pass request parameters into stylesheet like cocoon1
    </action>
    <action dev="DB" type="add">
     Added ImageDirectoryGenerator - this oughta be pluggable though, so other 
file types can have extra attributes added easily
    </action>
    <action dev="SM" type="add">
     Improved the samples and the webapp sitemap.
    </action>
    <action dev="SM" type="update">
     Cleaned build system in order to be friendly to ASF-wide build procedures.
    </action>
    <action dev="SM" type="update">
     Updated installation section (JServ no longer supported).
    </action>
    <action dev="SM" type="update">
     Updated Xerces and FOP to latest versions.
    </action>
    <action dev="SM" type="fix">
     Patched for final SAX2 compatibility.
    </action>
    <action dev="SM" type="update" due-to="Sven K&uuml;nzler" 
due-to-email="[EMAIL PROTECTED]">
     Improved installation documentation.
    </action>
    <action dev="DB" type="add" due-to="Zvi" due-to-email="[EMAIL PROTECTED]">
     Patched SQLFilter so VJ++ was happy
    </action>
    <action dev="DB" type="add">
     Officially added XincludeFilter
    </action>
    <action dev="DB" type="add">
     Officially added SQLFilter
    </action>
    <action dev="SM" type="add" due-to="Sebastien Sahuc" due-to-email="[EMAIL 
PROTECTED]">
     Fixed order of filters that was backwards.
    </action>
    <action dev="GP" type="add">
     Fixed typo in DirectoryGenerator.
    </action>
    <action dev="SM" type="add">
     Distribution cleanup, early documentation.
    </action>
    <action dev="PF" type="add">
     Initial code implementation.
    </action>
   </release>
  
    </changes>  
  
  </status>
  
  
  
  
  1.1                  cocoon-2.1/src/documentation/sitemap.xmap.ignore
  
  Index: sitemap.xmap.ignore
  ===================================================================
  <?xml version="1.0"?>
  <!-- $Id: sitemap.xmap.ignore,v 1.1 2003/03/21 13:56:07 stephan Exp $ -->
  <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"/>
     <!-- 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="xslt" 
src="org.apache.cocoon.transformation.TraxTransformer">
      <use-request-parameters>false</use-request-parameters>
      <use-browser-capabilities-db>false</use-browser-capabilities-db>
     </map:transformer>
    </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">
       <encoding>ISO-8859-1</encoding>
     </map:serializer>
     <map:serializer name="xml"    mime-type="text/xml"         
src="org.apache.cocoon.serialization.XMLSerializer"/>
     <map:serializer name="links"                               
src="org.apache.cocoon.serialization.LinkSerializer"/>
    </map:serializers>
  
    <map:matchers default="wildcard">
     <map:matcher name="wildcard" 
src="org.apache.cocoon.matching.WildcardURIMatcher"/>
    </map:matchers>
  
    <map:pipes default="caching">
       <map:pipe name="caching" 
src="org.apache.cocoon.components.pipeline.impl.CachingProcessingPipeline"
                     logger="core.processing-pipeline" pool-max="32" 
pool-min="8" pool-grow="4"/>
    </map:pipes>
  
   </map:components>
  
  <!-- =========================== Views =================================== -->
  
   <map:views>
    <map:view name="content" from-label="content">
     <map:serialize type="xml"/>
    </map:view>
  
    <map:view name="links" from-position="last">
     <map:transform src="stylesheets/filterlinks.xsl"/>
     <map:serialize type="links"/>
    </map:view>
  
   </map:views>
  
  <!-- =========================== Resources ================================= 
-->
    
    <map:resources>
      <map:resource name="book">
        <map:generate src="xdocs/{../1}book.xml"/>
          <map:transform src="stylesheets/book2menu.xsl">
            <map:parameter name="use-request-parameters" value="true"/>
            <map:parameter name="resource" value="{resource}.html"/>
          </map:transform>
          <map:serialize type="xml"/>        
      </map:resource>
    </map:resources>
  
  <!-- =========================== Pipelines ================================= 
-->
  
   <map:pipelines>
  
    <!-- Cocoon documentation pipeline -->
    <map:pipeline>
     <map:match pattern="">
      <map:redirect-to uri="index.html"/>
     </map:match>
  
    <!-- Process book.xml for nested levels -->
    <map:match pattern="**book-**/*.xml">
      <map:call resource="book">
        <map:parameter name="resource" value="{3}" />
      </map:call>
    </map:match>
  
    <!-- Process book.xml -->  
    <map:match pattern="**book-**.xml">
      <map:call resource="book">
        <map:parameter name="resource" value="{2}" />                
      </map:call>
    </map:match>            
  
     <!-- the main ToDo doc -->
     <map:match pattern="body-todo.xml">
       <map:generate type="file-nolabel" src="xdocs/todo.xml"/>
       <map:transform src="stylesheets/todo2document.xsl" label="content"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
  
     <!-- other ToDo docs -->
     <map:match pattern="body-**/todo-*.xml">
       <map:generate type="file-nolabel" src="xdocs/{1}/todo-{2}.xml"/>
       <map:transform src="stylesheets/todo2document.xsl" label="content"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
  
     <!-- the main Changes doc -->
     <map:match pattern="body-changes.xml">
       <map:generate type="file-nolabel" src="xdocs/changes.xml"/>
       <map:transform src="stylesheets/changes2document.xsl" label="content"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
     
     <!-- other Changes docs -->
     <map:match pattern="body-**/changes-*.xml">
       <map:generate type="file-nolabel" src="xdocs/{1}/changes-{2}.xml"/>
       <map:transform src="stylesheets/changes2document.xsl" label="content"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
        
     <!-- FAQ docs -->
     <map:match pattern="body-**/faq-*.xml">
       <map:generate type="file-nolabel" src="xdocs/{1}/faq-{2}.xml"/>
       <map:transform src="stylesheets/faqcommon.xsl" label="content"/>
       <map:transform src="stylesheets/faq2document.xsl" label="content"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
  
     <!-- 
       Generate the "doclist" - list of all documentation
       The first match generates each book.xml and adds a new attribute "uri".
       The second match aggregates each book.xml into a doclist and
       then converts it to a document.
     -->
     <map:match pattern="doclist/xdocs/**book.xml">
       <map:generate src="xdocs/{1}book.xml"/>
       <map:transform src="stylesheets/doclist.xsl">
         <map:parameter name="uri" value="{1}"/>
       </map:transform>
       <map:serialize type="xml"/>
     </map:match>
     
     <map:match pattern="body-doclist.xml">
       <map:aggregate element="doclist">
         <map:part src="cocoon:/doclist/xdocs/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/installing/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/concepts/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/generators/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/transformers/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/serializers/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/matchers/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/selectors/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/actions/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/readers/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/userdocs/xsp/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/developing/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/developing/webapps/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/tutorial/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/howto/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/faq/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/snippet/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/plan/book.xml"/>
         <map:part src="cocoon:/doclist/xdocs/link/book.xml"/>
       </map:aggregate>
       <map:transform src="stylesheets/doclist2document.xsl"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize type="html"/>
     </map:match>
  
     <map:match pattern="body-**.xml">
       <map:generate src="xdocs/{1}.xml"/>
       <map:transform src="stylesheets/document2html.xsl"/>
       <map:serialize/>
     </map:match>
  
     <map:match pattern="*.html">
      <map:aggregate element="site">
       <map:part src="cocoon:/book-{1}.xml"/>
       <map:part src="cocoon:/body-{1}.xml" label="content"/>
      </map:aggregate>
      <map:transform src="stylesheets/site2xhtml.xsl">
       <map:parameter name="use-request-parameters" value="true"/>
       <map:parameter name="header" value="graphics/{1}-header.jpg"/>
      </map:transform>
      <map:serialize/>
     </map:match>
  
     <map:match pattern="**/*.html">
      <map:aggregate element="site">
       <map:part src="cocoon:/{1}/book-{1}/{2}.xml"/>
       <map:part src="cocoon:/body-{1}/{2}.xml" label="content"/>
      </map:aggregate>
      <map:transform src="stylesheets/site2xhtml.xsl">
       <map:parameter name="use-request-parameters" value="true"/>
       <map:parameter name="header" value="graphics/{2}-header.jpg"/>
      </map:transform>
      <map:serialize/>
     </map:match>
  
     <!-- ================  Static  =========================== -->
  
     <map:match pattern="**sample/**">
      <map:read src="xdocs/{1}sample/{2}" mime-type="text/plain"/>
     </map:match>
  
     <map:match pattern="**.txt">
      <map:read src="xdocs/{1}.txt" mime-type="text/plain"/>
     </map:match>
  
     <map:match pattern="**resources/script.js">
       <map:read src="stylesheets/script-cli.js" 
mime-type="application/javascript"/>
     </map:match>
  
     <map:match pattern="**resources/**.js">
       <map:read src="stylesheets/{2}.js" mime-type="application/javascript"/>
     </map:match>
  
     <map:match pattern="**.css">
      <map:read src="{1}.css" mime-type="text/css"/>
     </map:match>
  
     <map:match pattern="favicon.ico">
      <map:read src="images/cocoon.ico"/>
     </map:match>
     
     <map:match pattern="**images/*.png">
      <map:read src="images/{2}.png" mime-type="image/png"/>
     </map:match>
  
     <map:match pattern="**images/*.jpg">
      <map:read src="images/{2}.jpg" mime-type="image/jpeg"/>
     </map:match>
  
     <map:match pattern="**images/*.gif">
      <map:read src="images/{2}.gif" mime-type="image/gif"/>
     </map:match>
  
    </map:pipeline>
  
   </map:pipelines>
  
  </map:sitemap>
  
  
  
  1.1                  cocoon-2.1/src/documentation/skinconf.xml
  
  Index: skinconf.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <!--
  Skin configuration file. This file contains details of your project, which 
will
  be used to configure the chosen Forrest skin.
  -->
  
  <!DOCTYPE skinconfig [
  
    <!ENTITY % links.att 'name CDATA #REQUIRED'>
    <!ENTITY % link.att 'name CDATA #REQUIRED href CDATA #REQUIRED'>
    <!ELEMENT skinconfig (disable-search?, disable-print-link?, 
disable-pdf-link?,
    disable-xml-link?, disable-compliance-links?, searchsite-domain?, 
searchsite-name?,
    project-name, project-url, project-logo, group-name?, group-url?, 
group-logo?,
    host-url?, host-logo?, year?, vendor?, trail?, credits?)*>
    <!ELEMENT credits (credit*)>
    <!ELEMENT credit (name, url, image?, width?, height?)>
    <!-- id uniquely identifies the tool, and role indicates its function -->
    <!ATTLIST credit id   CDATA #IMPLIED
                     role CDATA #IMPLIED>
    <!ELEMENT disable-search (#PCDATA)>
    <!ELEMENT disable-print-link (#PCDATA)>
    <!ELEMENT disable-pdf-link (#PCDATA)>
    <!ELEMENT disable-xml-link (#PCDATA)>    
    <!ELEMENT disable-compliance-links (#PCDATA)>   
    <!ELEMENT searchsite-domain (#PCDATA)>
    <!ELEMENT searchsite-name (#PCDATA)>  
    <!ELEMENT project-name (#PCDATA)>
    <!ELEMENT project-url (#PCDATA)>
    <!ELEMENT project-logo (#PCDATA)>
    <!ELEMENT group-name (#PCDATA)>
    <!ELEMENT group-url (#PCDATA)>
    <!ELEMENT group-logo (#PCDATA)>
    <!ELEMENT host-url (#PCDATA)>
    <!ELEMENT host-logo (#PCDATA)>
    <!ELEMENT year (#PCDATA)>
    <!ELEMENT vendor (#PCDATA)>
    <!ELEMENT trail (link1, link2, link3)>
    <!ELEMENT link1 EMPTY>
    <!-- Seems we can't use param entity refs until this is DTDified -->
    <!ATTLIST link1 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT link2 EMPTY>
    <!ATTLIST link2 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT link3 EMPTY>
    <!ATTLIST link3 name CDATA #REQUIRED href CDATA #IMPLIED>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT url (#PCDATA)>
    <!ELEMENT image (#PCDATA)>
    <!ELEMENT width (#PCDATA)>
    <!ELEMENT height (#PCDATA)>
    ]>
  
  <skinconfig>
    <!-- Do we want to disable the Google search box? -->
    <disable-search>false</disable-search>
    <!-- Do we want to disable the print link? -->
    <disable-print-link>false</disable-print-link>  
    <!-- Do we want to disable the PDF link? -->
    <disable-pdf-link>false</disable-pdf-link>
    <!-- Do we want to disable the xml source link? -->
    <disable-xml-link>true</disable-xml-link>
    <!-- Do we want to disable w3c compliance links? -->
    <disable-compliance-links>false</disable-compliance-links>
    
    <searchsite-name>MyProject</searchsite-name>  
  
    <!-- mandatory project logo
         skin: forrest-site renders it at the top -->
    <project-name>MyProject</project-name>
    <project-url>http://myproj.mygroup.org/</project-url>
    <project-logo>images/project-logo.gif</project-logo>
  
    <!-- optional group logo
         skin: forrest-site renders it at the top-left corner -->
    <group-name>MyGroup</group-name>
    <group-url>http://mygroup.org</group-url>
    <group-logo>images/group-logo.gif</group-logo>
  
    <!-- optional host logo (e.g. sourceforge logo)
         skin: forrest-site renders it at the bottom-left corner -->
    <host-url></host-url>
    <host-logo></host-logo>
  
    <!-- The following are used to construct a copyright statement -->
    <year>2002</year>
    <vendor>The Apache Software Foundation.</vendor>
  
    <!-- Some skins use this to form a 'breadcrumb trail' of links. If you don't
    want these, set the attributes to blank. The DTD purposefully requires them.
    -->
    <trail>
      <link1 name="apache" href="http://www.apache.org/"/>
      <link2 name="xml.apache" href="http://xml.apache.org/"/>
      <link3 name="" href=""/>
    </trail>
  
    <!-- Credits are typically rendered as a set of small clickable images in 
the
    page footer -->
    <credits>
      <credit>
        <name>Built with Apache Forrest</name>
        <url>http://xml.apache.org/forrest/</url>
        <image>images/built-with-forrest-button.png</image>
        <width>88</width>
        <height>31</height>
      </credit>
      <!-- A credit with @role='pdf' will have its name and url displayed in the
      PDF page's footer. -->
    </credits>
  
  </skinconfig>
  
  
  
  1.3       +0 -1      cocoon-2.1/src/documentation/xdocs/book.xml
  
  Index: book.xml
  ===================================================================
  RCS file: /home/cvs/cocoon-2.1/src/documentation/xdocs/book.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- book.xml  18 Mar 2003 13:19:39 -0000      1.2
  +++ book.xml  21 Mar 2003 13:56:07 -0000      1.3
  @@ -24,7 +24,6 @@
       <menu-item label="How-Tos" href="howto/index.html"/>
       <menu-item label="Performance" href="performancetips.html"/>
       <menu-item label="Snippets" href="snippet/index.html"/>
  -    <menu-item label="ToC" href="doclist.html"/>
     </menu>
   
     <menu label="Status">
  
  
  
  1.1                  cocoon-2.1/src/documentation/xdocs/dictionary.xml.ignore
  
  Index: dictionary.xml.ignore
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <package name="org.apache.cocoon">
    <class name="Cocoon">
      The main engine, should be a singleton per JVM(?). It operates on 
Environments by invoking them on a sitemap manager. It also seems to do some of 
the work of resolving the 
    </class>
    <interface name="Processor">
      Processes Environments in some fashion.
    </interface>
    <package name="environment">
      <interface name="Environment">
        A processing context. Each incoming request gets its own Environment to 
play with. It's a combination of the servlet request and response objects and 
some cocoon stuff.
      </interface>
    </package>
    <package name="sitemap">
      <class name="Manager">
        Controls access to sitemap objects. It's in charge of reloading the 
sitemaps as necessary, and mapping sitemap filenames with sitemap objects. It 
operates on Environments by processing them with a sitemap.
      </class>
      <interface name="Sitemap">
        An aggregate of avalon's Composable, Configurable, Contextualizable, 
and Modifiable interfaces, as well as the cocoon Processor interface.
      </interface>
      <class name="AbstractSitemap">
        Parent of the stylesheet-generated sitemap objects. It provides access 
to all of the cocoon components by role name. It keeps track of when the 
stylesheet was created. It loads components by name and configures them. It 
provides a utility substitute method for string manipulation.
      </class>
      <class name="generatedSitemap">
        Generated sitemaps have routines to load and initialize all of the 
components requested in the cocoon conf file. When the sitemap processes an 
Environment, it creates a ResourcePipeline. The current Environment is compared 
against each of the patterns listed in the sitemap until it finds a match, at 
which point it builds a ResourcePipeline and processes the environment with the 
pipeline.
      </class>
      <class name="ResourcePipeline">
        Hooks up the SAX interfaces on a Generator (or a Reader) to those on 
any Transformers used by this pipeline, then to the SAX interfaces on its 
Serializer, then starts the generator. This would seem to be the logical place 
to add a cache.
      </class>
    </package>
  </package>
  
  
  
  1.1                  cocoon-2.1/src/documentation/xdocs/tabs.xml
  
  Index: tabs.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN" 
"tab-cocoon-v10.dtd">
  
  <tabs software="MyProj"
    title="MyProj"
    copyright="Foo"
    xmlns:xlink="http://www.w3.org/1999/xlink";>
  
    <!-- The rules are:
      @dir will always have /index.html added.
      @href is not modified unless it is root-relative and obviously specifies a
      directory (ends in '/'), in which case /index.html will be added
    -->
  
  
    <tab label="Home" dir=""/>
    <!-- Add new tabs here, eg:
    <tab label="How-Tos" dir="community/howto/"/>
    <tab label="XML Site" dir="xml-site/"/>
    -->
  
  </tabs>
  
  
  
  1.1                  
cocoon-2.1/src/documentation/xdocs/ctwig/sample/transformations/basic01/basic01-01.xml.ignore
  
  Index: basic01-01.xml.ignore
  ===================================================================
  <?xml version="1.0"?>
  <page>
        <title>Basic XML/XSL Transformation Example - BASIC01-01.XML</title>
        <greeting>Hello World</greeting>
  </page>
  
  
  
  1.1                  
cocoon-2.1/src/documentation/xdocs/ctwig/sample/transformations/basic01/basic01-01.xsl.ignore
  
  Index: basic01-01.xsl.ignore
  ===================================================================
  <?xml version="1.0"?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
version="1.0">
  
  <xsl:template match="page">
    <html>
                <head>
                        <title><xsl:value-of select="title"/></title>
                </head>
      <body>
        <h1><xsl:value-of select="title"/></h1>
                        <p><xsl:value-of select="greeting"/></p>
      </body>
    </html>
  </xsl:template>
  
  </xsl:stylesheet>
  
  
  1.1                  
cocoon-2.1/src/documentation/xdocs/ctwig/sample/transformations/basic02/basic02-01.xml.ignore
  
  Index: basic02-01.xml.ignore
  ===================================================================
  <?xml version="1.0"?>
  <xsp:page 
        xmlns:xsp="http://apache.org/xsp";
  >
  
  <page>
    <xsp:logic>
      String msg = "Hello World";
    </xsp:logic>
  
        <title>
      Basic XSP Processing Example - BASIC02-01.XML
        </title>
  
    <greeting>
      <xsp:expr>msg</xsp:expr>
    </greeting>
  </page>
  </xsp:page>
  
  
  
  1.1                  
cocoon-2.1/src/documentation/xdocs/ctwig/sample/transformations/basic03/basic03-01.xml.ignore
  
  Index: basic03-01.xml.ignore
  ===================================================================
  <?xml version="1.0"?>
  <xsp:page 
        xmlns:xsp="http://apache.org/xsp";
    xmlns:ctwig="http://www.pigbite.com/xsl";
  >
  
  <page>
        <title>
      Basic XSP/Logicsheet Processing Example - BASIC03-01.XML
        </title>
    <greeting>
      <ctwig:greeting/>
    </greeting>
  </page>
  </xsp:page>
  
  
  
  1.1                  cocoon-2.1/src/targets/compile-build.xml
  
  Index: compile-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Compilation Targets 
=================================================== -->
  
    <!-- compiles everything -->
    <target name="compile" depends="compile-core, compile-scratchpad, 
compile-deprecated"/>
  
    <!-- compiles the core -->
    <target name="compile-core" depends="prepare-core">
  
      <!-- copy those files that need to be in the classpath -->
      <copy todir="${build.dest}">
        <fileset dir="${java}">
          <include name="**/*.xsl"/>
          <include name="**/*.roles"/>
          <include name="**/*.xml"/>
          <include name="**/*.properties"/>
          <include name="**/*.js"/>
        </fileset>
      </copy>
  
      <!-- compile mock classes -->
      <javac srcdir="${mocks}"
             destdir="${build.mocks}"
             debug="${compiler.debug}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             target="${target.vm}"
             nowarn="${compiler.nowarn}"
             compiler="${compiler}"
             classpathref="classpath"/>
  
      <!-- compile core source files -->
      <javac srcdir="${java}"
             destdir="${build.dest}"
             debug="${compiler.debug}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             target="${target.vm}"
             nowarn="${compiler.nowarn}"
             compiler="${compiler}"
             classpathref="classpath"/>
   
    </target>
  
    <!-- compiles the scratchpad -->
    <target name="compile-scratchpad" depends="prepare" 
unless="unless.exclude.scratchpad">
      <mkdir dir="${build.scratchpad.src}"/>
      <mkdir dir="${build.scratchpad.dest}"/>
     
      <available classpathref="classpath"
                 property="activation.present"
                 classname="javax.activation.DataSource"/>
                     
      <copy todir="${build.scratchpad.src}" filtering="on">
        <fileset dir="${scratchpad.src}">
          <exclude name="**/components/axis/**" unless="activation.present"/>
          <exclude name="**/reading/AxisRPCReader.java" 
unless="activation.present"/>
          <exclude name="**/webservices/**" unless="activation.present"/>
        </fileset>
      </copy>
  
      <copy todir="${build.scratchpad.dest}">
        <fileset dir="${build.scratchpad.src}">
          <include name="**/*.xsl"/>
          <include name="**/*.wsdd"/>
          <include name="**/*.roles"/>
        </fileset>
      </copy>
  
      <javac srcdir="${build.scratchpad.src}"
             destdir="${build.scratchpad.dest}"
             debug="${compiler.debug}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             target="${target.vm}"
             compiler="${compiler}"
             classpathref="scratchpad.classpath"/>
    </target>
  
    <!-- compiles deprecated code -->
    <target name="compile-deprecated" depends="prepare,init-xpatch" 
unless="unless.exclude.deprecated">
      <mkdir dir="${build.deprecated}"/>
  
      <xpatch configuration="${build.dest}/org/apache/cocoon/cocoon.roles" 
              directory="${deprecated.conf}" 
              extension="xroles"/>
              
      <javac srcdir="${deprecated.src}"
             destdir="${build.deprecated}"
             debug="${compiler.debug}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             target="${target.vm}"
             compiler="${compiler}"
             classpathref="classpath"/>
    </target>
  
  <!-- Package Targets ======================================================= 
-->
  
    <!-- packages everything -->
    <target name="package" depends="package-core, package-scratchpad, 
package-deprecated"/>
  
    <!-- package the core -->
    <target name="package-core" depends="compile-core,block-roles">
      <jar jarfile="${build}/${name}.jar" manifest="${java}/Manifest.mf">
        <fileset dir="${build.dest}"/>
      </jar>
    </target>
  
    <!-- package the scratchpad -->
    <target name="package-scratchpad" depends="compile-scratchpad" 
unless="unless.exclude.scratchpad">
      <jar jarfile="${build}/${name}-scratchpad.jar">
        <fileset dir="${build.scratchpad.dest}"/>
      </jar>
    </target>
  
    <!-- package deprecated code -->
    <target name="package-deprecated" depends="compile-deprecated" 
unless="unless.exclude.deprecated">
      <jar jarfile="${build}/${name}-deprecated.jar">
        <fileset dir="${build.deprecated}"/>
      </jar>
    </target>
  
  <!-- Block Targets ========================================================= 
-->
  
    <!-- prepares the blocks build -->
    <target name="prepare-blocks" depends="init">
      <mkdir dir="${build.blocks}"/>
  
      <xslt in="${gump.descriptor}"
            out="${build.temp}/blocks-build.xml"
            processor="trax"
            style="${tools}/src/blocks-build.xsl"/>
    </target>
  
    <!-- patch the cocoon role file -->
    <target name="block-roles" depends="prepare-blocks,init-xpatch">
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="roles"/>
    </target>
  
    <!-- compiles and packages a single block -->
    <target name="block" depends="compile, prepare-blocks">
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="${block-name}-compile"/>
    </target>
    
    <!-- compiles and packages all blocks -->
    <target name="blocks" depends="compile,prepare-blocks">
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="compile"/>
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/docs-build.xml
  
  Index: docs-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Documentation Targets 
================================================= -->
  
    <target name="prepare-docs" depends="blocks">
  
      <!-- Set classpath for documentation -->
      <path id="documentation.classpath">
        <path refid="classpath"/>
        <fileset dir="${build.blocks}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${blocks}">
          <include name="*/lib/*.jar"/>
        </fileset>
        <path location="${tools.jar}"/>
        <path location="${build.context}/WEB-INF/classes"/>
      </path>
  
      <mkdir dir="${build.context}"/>
      <mkdir dir="${build.context}/images"/>
  
      <!-- make filtered copy of XML docs -->
      <copy todir="${build.context}" filtering="on">
        <fileset dir="${documentation}">
          <exclude name="images/**"/>
        </fileset>
      </copy>
  
      <!-- Copy images -->
      <copy todir="${build.context}/images" filtering="off">
        <fileset dir="${documentation}/images"/>
      </copy>
  
      <!-- Copy entity catalog and entities -->
      <copy todir="${build.context}/WEB-INF/entities" filtering="on">
        <fileset dir="${webapp}/WEB-INF/entities"/>
      </copy>
      <copy todir="${build.context}/WEB-INF/classes" filtering="on">
        <fileset dir="${webapp}/WEB-INF/classes"/>
      </copy>
      <copy todir="${build.context}" filtering="on" 
file="${webapp}/WEB-INF/logkit.xconf"/>
    </target>
  
    <!-- Set a variable if the generated docs are already up-to-date. -->
    <target name="docs_check" depends="prepare-docs">
      <uptodate property="docs.notrequired" 
targetfile="${build.docs}/index.html" >
        <srcfiles dir="." includes="changes.xml,todo.xml"/>
        <srcfiles dir="${build}" includes="jars.xml"/>
        <srcfiles dir="${documentation}/xdocs" includes="**/*.xml"/>
      </uptodate>
    </target>
  
    <!-- If generated docs are already up-to-date, print a message saying so. 
-->
    <target name="docs_done" depends="docs_check" if="docs.notrequired">
      <echo 
message="-------------------------------------------------------------"/>
      <echo message="Not rebuilding docs, as they are up-to-date:"/>
      <echo message="  ${build.docs}/index.html is more recent than"/>
      <echo message="  todo.xml, changes.xml, ${documentation}/xdocs/*.xml"/>
      <echo 
message="-------------------------------------------------------------"/>
    </target>
  
    <!-- Create docs -->
    <target name="docs" depends="prepare-docs, validate-xdocs, docs_done" 
unless="docs.notrequired" description="Builds the documentation">
      <mkdir dir="${build.docs}"/>
  <!--
      <java classname="org.apache.cocoon.Main" fork="true" 
dir="${build.context}" failonerror="true" maxmemory="128m">
        <arg value="-c."/>
        <arg value="-d../docs"/>
        <arg value="-w../temp/docs"/>
        <arg value="-b../brokenlinks.txt"/>
        <arg value="-k./logkit.xconf"/>
        <arg value="-u${build.docs.loglevel}"/>
        <arg value="-V"/>
        <arg value="index.html"/>
        <classpath>
          <path refid="documentation.classpath"/>
        </classpath>
      </java>
  -->    
  
      <java classname="org.apache.cocoon.Main" fork="true" 
dir="${build.context}" failonerror="true" maxmemory="128m">
        <arg value="-u${build.docs.loglevel}"/>
        <arg value="-x../../../cli.xconf"/>
        <arg value="index.html"/>
        <classpath>
          <path refid="documentation.classpath"/>
        </classpath>
      </java>
  
    </target>
  
    <!-- Prepares the printer-docs -->
    <target name="prepare-printer-docs" depends="prepare-docs">
      <mkdir dir="${build.context.printer}"/>
  
      <!-- copy prepared docs -->
      <copy todir="${build.context.printer}" filtering="off">
        <fileset dir="${build.context}"/>
      </copy>
  
      <!-- copy printer skin -->
      <copy todir="${build.context.printer}/stylesheets" filtering="off" 
overwrite="yes">
        <fileset dir="${build.context}/stylesheets/printer_skin"/>
      </copy>
    </target>
  
    <!-- Set a variable if the generated printer docs are already up-to-date. 
-->
    <target name="printer-docs_check" depends="init">
      <uptodate property="printer-docs.notrequired" 
targetfile="${build.docs.printer}/index.html" >
        <srcfiles dir="." includes="changes.xml,todo.xml"/>
        <srcfiles dir="${docs}" includes="**/*.xml"/>
      </uptodate>
    </target>
  
    <!-- If generated printer docs are already up-to-date, print a message 
saying so. -->
    <target name="printer-docs_done" depends="printer-docs_check" 
if="printer-docs.notrequired">
      <echo 
message="-------------------------------------------------------------"/>
      <echo message="Not rebuilding printer docs, as they are up-to-date:"/>
      <echo message="  ${build.docs.printer}/index.html is more recent than"/>
      <echo message="  todo.xml, changes.xml, ${docs}/*.xml"/>
      <echo 
message="-------------------------------------------------------------"/>
    </target>
  
    <!-- Create printer friendly docs -->
    <target name="printer-docs" depends="prepare-printer-docs, validate-xdocs, 
printer-docs_done" description="Builds printer-friendly documentation">
      <mkdir dir="${build.docs.printer}"/>
  
      <java classname="org.apache.cocoon.Main" fork="true" 
dir="${build.context.printer}" failonerror="true" maxmemory="128m">
        <arg value="-c."/>
        <arg value="-d../printer-docs"/>
        <arg value="-w../temp/printer"/>
        <arg value="-b../brokenlinks.txt"/>
        <arg value="-k./logkit.xconf"/>
        <arg value="-u${build.docs.printer.loglevel}"/>
        <arg value="-V"/>
        <arg value="index.html"/>
        <classpath>
          <path refid="documentation.classpath"/>
        </classpath>
      </java>
    </target>
  
  <!-- Javadoc/IDLDoc Targets ================================================ 
-->
  
    <!-- Create IDL API documentation -->
    <target name="idldocs" depends="prepare-core" 
unless="unless.exclude.idldocs" description="Builds the IDL API documentation 
for non-java language bindings">
      <mkdir dir="${build.idldocs}"/>
      <java classname="org.openorb.compiler.doc.IdlDoc">
        <arg value="-I${idl}"/>
        <arg value="-outdir:${build.idldocs}"/>
        <arg value="-all"/>
        <arg value="-html"/>
        <arg value="${idl}/main.idl"/>
      </java>
    </target>
  
    <!-- Check if javadocs have to be generated -->
    <target name="javadocs-check">
      <mkdir dir="${build.javadocs}"/>
      <condition property="javadocs.notrequired" value="true">
       <or>
        <uptodate targetfile="${build.javadocs}/packages.html" >
         <srcfiles dir= "${java}" includes="**/*.java,**/package.html"/>
         <srcfiles dir= "${deprecated.src}" 
includes="**/*.java,**/package.html"/>
        </uptodate>
        <istrue value="${unless.exclude.javadocs}"/>
       </or>
      </condition>
    </target>
  
    <!-- Creates Javadocs -->
    <target name="javadocs" depends="prepare-core, javadocs-check" 
unless="javadocs.notrequired" description="Builds the API documentation 
(javadocs)">
  
      <condition property="javadoc.additionalparam" value="-breakiterator -tag 
todo:all:Todo:">
        <equals arg1="1.4" arg2="${ant.java.version}"/>
      </condition>
      <condition property="javadoc.additionalparam" value="">
        <not><equals arg1="1.4" arg2="${ant.java.version}"/></not>
      </condition>
  
      <javadoc destdir="${build.javadocs}"
               author="true"
               version="true"
               use="true"
               noindex="false"
               splitindex="true"
               windowtitle="${Name} API ${version} [${TODAY}]"
               doctitle="${Name} API ${version}"
               bottom="Copyright &#169; ${year} Apache Software Foundation. All 
Rights Reserved."
               stylesheetfile="${resources.styles}/javadoc.css"
               useexternalfile="yes"
               additionalparam="${javadoc.additionalparam}">
  
        <link offline="true" href="http://avalon.apache.org/api";                
  packagelistloc="${resources.javadoc}/avalon"/>
        <link offline="true" 
href="http://xml.apache.org/xerces2-j/javadocs/api";  
packagelistloc="${resources.javadoc}/xerces"/>
        <link offline="true" href="http://xml.apache.org/xalan-j/apidocs";       
  packagelistloc="${resources.javadoc}/xalan"/>
        <link offline="true" href="http://java.sun.com/j2se/1.4.1/docs/api";     
  packagelistloc="${resources.javadoc}/j2se"/>
        <link offline="true" 
href="http://java.sun.com/j2ee/sdk_1.3/techdocs/api"; 
packagelistloc="${resources.javadoc}/j2ee"/>
  
        <packageset dir="${java}">
          <include name="**"/>
        </packageset>
        <packageset dir="${deprecated.src}">
          <include name="**"/>
        </packageset>
        <classpath refid="classpath"/>
      </javadoc>
  
    </target>
  
  <!-- Admin targets ========================================================= 
-->
  
    <!-- Creates the web site  -->
    <target name="site" depends="docs, javadocs">
      <mkdir dir="${site}"/>
      <copy todir="${site}" filtering="off">
        <fileset dir="${build.docs}"/>
      </copy>
      <copy todir="${site}/apidocs" filtering="off">
        <fileset dir="${build.javadocs}"/>
      </copy>
    </target>
  
    <!-- Create the announcements -->
    <target name="announcement" depends="prepare-docs">
      <copy file="announcement.xml" 
tofile="${build.context}\xdocs\announcement.xml" filtering="on"/>
      <xslt basedir="${build.context}\xdocs"
             destdir="${build}"
             style="${build.context}\stylesheets\announcement2txt.xsl"
             includes="announcement.xml"
             extension=".txt"
             force="true"/>
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/forrest-build.xml
  
  Index: forrest-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
  
    <target name="forrest" depends="prepare, forrest.init" 
description="Generates static HTML documentation">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site"/>
    </target>
  
    <target name="forrest.webapp" depends="forrest.init" description="Generates 
an unpackaged webapp of the website">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="webapp"/>
    </target>
  
    <target name="forrest.war" depends="forrest.init" description="Generates a 
.war file containing the website">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="war"/>
    </target>
  
    <target name="forrest.validate" depends="forrest.init" 
description="Validates XML documentation files">
      <ant antfile="${forrest.home}/forrest.antproxy.xml" target="validate"/>
    </target>
  
    <target name="forrest.init" depends="forrest.sethome, 
forrest.home.defined"/>
  
    <target name="forrest.sethome" depends="forrest.loadenv,
    forrest.checkenv, forrest.checkhome, forrest.check-build.properties,
    forrest.check-project.properties, forrest.check-ant.properties,
    forrest.check-.ant.properties"/>
  
    <target name="forrest.loadenv" unless="forrest.home.present">
      <property environment="env"/>
      <echo level="verbose">Forrest: Got ${env.FORREST_HOME}</echo>
    </target>
  
    <target name="forrest.checkenv" if="env.FORREST_HOME">
      <echo level="verbose">Found $FORREST_HOME..</echo>
      <property name="forrest.home" location="${env.FORREST_HOME}"/>
      <echo level="verbose">forrest.home set to ${forrest.home}</echo>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
  
    <target name="forrest.checkhome">
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
      <available file="build.properties" type="file" 
property="build.properties.present"/>
      <available file="project.properties" type="file" 
property="project.properties.present"/>
      <available file="ant.properties" type="file" 
property="ant.properties.present"/>
      <available file=".ant.properties" type="file" 
property=".ant.properties.present"/>
    </target>
  
    <!-- No we can't extract the commonalities below into an antcall'ed target,
    because it wouldn't be able to set forrest.home -->
    <target name="forrest.check-build.properties" unless="forrest.home.present"
    if="build.properties.present">
      <echo level="verbose">Forrest: Checking build.properties..</echo>
      <loadproperties srcfile="build.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
  
    </target>
  
    <target name="forrest.check-project.properties" 
unless="forrest.home.present"
    if="project.properties.present">
      <echo level="verbose">Forrest: Checking project.properties..</echo>
      <loadproperties srcfile="project.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.check-ant.properties" unless="forrest.home.present"
    if="ant.properties.present">
      <echo level="verbose">Forrest: Checking ant.properties..</echo>
      <loadproperties srcfile="ant.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.check-.ant.properties" unless="forrest.home.present"
    if=".ant.properties.present">
      <echo level="verbose">Forrest: Checking .ant.properties..</echo>
      <loadproperties srcfile=".ant.properties">
        <filterchain>
          <linecontains>
            <contains value="forrest.home"/>
          </linecontains>
        </filterchain>
      </loadproperties>
      <available file="${forrest.home}" type="dir" 
property="forrest.home.present"/>
    </target>
  
    <target name="forrest.home.defined" depends="forrest.sethome" 
unless="forrest.home.present">
      <property name="path" value="${user.home}/xml-forrest/build/dist/shbat"/>
      <pathconvert targetos="windows" property="winpath">
        <path>
          <pathelement location="${path}"/>
        </path>
      </pathconvert>
      <pathconvert targetos="unix" property="unixpath">
        <path>
          <pathelement
            location="${path}"/>
        </path>
      </pathconvert>
  
      <echo>
        ----------------------------------------------
        To run this target, you need Forrest installed.
        Please do the following:
  
        export CVSROOT=:pserver:[EMAIL PROTECTED]:/home/cvspublic
        cvs checkout xml-forrest
        cd xml-forrest
        build      (Windows)
        ./build.sh (Unix)
  
        Then either:
  
        - Set FORREST_HOME as the Forrest build instructions describe
        - Create a build.properties, with the forrest.home property pointing to
          the forrest shbat directory, eg:
  
          forrest.home=${winpath}  (Windows)
          forrest.home=${unixpath}  (Unix)
  
          (adjusting the path according to where your xml-forrest is)
        ----------------------------------------------
      </echo>
      <fail message="Need to define $${forrest.home}"/>
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/ide-build.xml
  
  Index: ide-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- IDE targets 
=========================================================== -->
  
    <!-- Generate the Emacs JDE project file -->
    <target name="emacs-project" depends="init" description="Generate the Emacs 
project files">
      <path id="jar.files">
        <fileset dir="${build.webapp}/WEB-INF/lib">
          <include name="*.jar"/>
        </fileset>
        <pathelement path="${build.context}/WEB-INF/classes"/>
      </path>
      <property name="jar.files" refid="jar.files"/>
      <copy file="${resources}/dev/emacs/prj.el.in" tofile="prj.el" 
filtering="yes">
        <filterset>
          <filter token="jar.files" value="${jar.files}"/>
          <filter token="src" value="${java}"/>
          <filter token="build.webapp" value="${build.webapp}"/>
        </filterset>
      </copy>
    </target>
  
    <!-- Build the Eclipse projects files -->
    <target name="eclipse-project" depends="init" description="Generate the 
Eclipse project files">
  
      
<echo>+---------------------------------------------------------------------------+</echo>
      <echo>                        ${fullname} ${version} [${year}]</echo>
      
<echo>+---------------------------------------------------------------------------+</echo>
      <echo> Building Eclipse Project Files</echo>
      <echo>+---------------------------| W A R N I N G 
|-------------------------------+</echo>
      <echo>          The project files are targeted for use with JVM 
${target.vm}</echo>
      
<echo>+---------------------------------------------------------------------------+</echo>
  
      <mkdir dir="${build}"/>
      <!-- prepare the various paths that will form the project -->
      <path id="srcs">
        <!-- main source dir -->
        <pathelement path="${src}/java"/>
        <!-- deprecated source dir -->
        <pathelement path="${src}/deprecated/java"/>
        <!-- scratchpad source dir -->
        <pathelement path="${src}/scratchpad/src"/>
        <!-- blocks source dirs -->
        <dirset dir="${blocks}">
          <include name="*/java"/>
          <include name="*/java${target.vm}"/>
        </dirset>
      </path>
  
      <path id="mockss">
        <dirset dir="${src}">
          <include name="**/mocks"/>
        </dirset>
      </path>
  
      <path id="libs">
        <!-- main libs -->
        <fileset dir="${lib}">
          <include name="core/*.jar"/>
          <include name="core/jvm${target.vm}/*.jar"/>
          <include name="optional/*.jar"/>
          <include name="local/*.jar"/>
          <include name="endorsed/*.jar"/>
        </fileset>
        <!-- scratchpad libs -->
        <fileset dir="${scratchpad}/lib">
          <include name="*.jar"/>
        </fileset>
        <!-- blocks lib -->
        <fileset dir="${blocks}">
          <include name="**/*.jar"/>
        </fileset>
        <!-- tools libs -->
        <fileset dir="${tools}/lib">
          <include name="*.jar"/>
          <exclude name="x*.jar"/>
        </fileset>      
      </path>
  
      <!-- convert paths to properties -->
      <property name="srcs" refid="srcs"/>
      <property name="mockss" refid="mockss"/>
      <property name="libs" refid="libs"/>
  
      <!-- expand properties in the template file -->
      <copy file="${resources}/dev/eclipse/classpath-tmpl.xml"
            tofile="${build.temp}/classpath-temp.xml"
            filtering="yes"
            overwrite="yes">
        <filterset>
          <filter token="SRC_DIRS" value="${srcs}"/>
          <filter token="LIBS" value="${libs}"/>
          <filter token="MOCKS_DIRS" value="${mockss}"/>
          <filter token="OUTPUT_DIR" value="${build.root}/eclipse/classes"/>
        </filterset>
      </copy>
  
      <!-- split the path in 'item' XML elements -->
      <replace file="${build.temp}/classpath-temp.xml"
               token="${path.separator}" value="&lt;/item&gt;&#xA; 
&lt;item&gt;"/>
      <!-- relativize file names by removing the current directory -->
      <replace file="${build.temp}/classpath-temp.xml"
               token="${user}${file.separator}" value=""/>
      <!-- and in case that fails, remove the base directory -->
      <replace file="${build.temp}/classpath-temp.xml"
               token="${basedir}${file.separator}" value=""/>
  
      <!-- replace platform-dependent path separator by '/' -->
      <replace file="${build.temp}/classpath-temp.xml"
               token="${file.separator}" value="/"/>
  
      <!-- now build the .classpath file -->
      <xslt in="${build.temp}/classpath-temp.xml" out="${basedir}/.classpath"
            processor="trax"
            style="${resources}/dev/eclipse/make-classpath.xsl"/>
  
      <!-- copy the project file (expand version) -->
      <copy file="${resources}/dev/eclipse/project"
            tofile="${basedir}/.project"
            overwrite="yes">
        <filterset>
          <filter token="VERSION" value="${version}"/>
        </filterset>
      </copy>
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/init-build.xml
  
  Index: init-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Initialization Targets 
================================================ -->
  
    <target name="init">
  
      <!-- Set the timestamps -->
      <tstamp/>
  
      <!-- Get the (constant) cocoon properties -->
      <property file="src/java/org/apache/cocoon/cocoon.properties"/>
  
      <!-- Detecting the current jvm -->
      <condition property="target.vm" value="1.4">
        <equals arg1="1.4" arg2="${ant.java.version}"/>
      </condition>
      <condition property="target.vm" value="1.3">
        <not>
          <equals arg1="1.4" arg2="${ant.java.version}"/>
        </not>
      </condition>
  
      <!-- The location of tools.jar, relative to the JAVA_HOME home. -->
      <property name="tools.jar" value="${java.home}/../lib/tools.jar"/>
      <available file="${tools.jar}" property="tools.jar.present"/>
  
      <!-- Allow users a chance to override without editing the main file -->
      <property file="${user.home}/cocoon.build.properties"/>
      <property file="local.build.properties"/>
  
      <!-- Get the build properties from an external file -->
      <property file="build.properties"/>
  
      <!-- Allow users a chance to override without editing the main file -->
      <property file="${user.home}/cocoon.blocks.properties"/>
      <property file="local.blocks.properties"/>
  
      <!-- Get the block properties from an external file -->
      <property file="blocks.properties"/>
  
      <!-- Use unless.exclude.XXX shadow props used in the
        unless target attributes -->
      <condition property="unless.exclude.webapp.documentation">
        <istrue value="${exclude.webapp.documentation}"/>
      </condition>
      <condition property="unless.exclude.webapp.javadocs">
        <istrue value="${exclude.webapp.javadocs}"/>
      </condition>
      <condition property="unless.exclude.webapp.idldocs">
        <istrue value="${exclude.webapp.idldocs}"/>
      </condition>
      <condition property="unless.exclude.webapp.scratchpad">
        <istrue value="${exclude.webapp.scratchpad}"/>
      </condition>
      <condition property="unless.exclude.webapp.samples">
        <istrue value="${exclude.webapp.samples}"/>
      </condition>
      
      <condition property="unless.exclude.scratchpad">
        <istrue value="${exclude.scratchpad}"/>
      </condition>
      <condition property="unless.exclude.deprecated">
        <istrue value="${exclude.deprecated}"/>
      </condition>
      <condition property="unless.exclude.javadocs">
        <istrue value="${exclude.javadocs}"/>
      </condition>
      <condition property="unless.exclude.idldocs">
        <istrue value="${exclude.idldocs}"/>
      </condition>
  
      <condition property="exclude.validate.config">
        <isfalse value="${validate.config}"/>
      </condition>
      <condition property="exclude.validate.xdocs">
        <isfalse value="${validate.xdocs}"/>
      </condition>
              
      <filter token="Name"                value="${fullname}"/>
      <filter token="name"                value="${fullname}"/>
      <filter token="year"                value="${year}"/>
      <filter token="version"             value="${version}"/>
      <filter token="date"                value="${TODAY}"/>
      <filter token="released.version"    value="${released.version}"/>
  
      <!-- Set classpath -->
      <path id="classpath">
        <fileset dir="${lib}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.endorsed}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.core}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.core}/jvm${target.vm}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.optional}">
          <include name="*.jar"/>
        </fileset>
        <path location="${build.mocks}"/>
        <path location="${build.dest}"/>
      </path>
  
      <!-- Set classpath for building ant tasks -->
      <path id="tasks.classpath">
        <path refid="classpath"/>
        <fileset dir="${tools.lib}">
          <include name="*.jar"/>
        </fileset>
        <path location="${tools.tasks.dest}"/>
      </path>
  
      <!-- Set classpath for scratchpad -->
      <path id="scratchpad.classpath">
        <path refid="classpath"/>
        <fileset dir="./src/scratchpad/lib">
          <include name="*.jar"/>
        </fileset>
      </path>
    </target>
    
    <target name="init-loader" depends="init">
      <!-- compile the loader -->
      <mkdir dir="${tools.loader.dest}"/>
      <javac srcdir="${tools.loader.src}"
             destdir="${tools.loader.dest}"
             debug="off"
             optimize="on"
             deprecation="on"
             target="1.3"
             nowarn="on"
             compiler="${compiler}"/>
    </target>
    
    <target name="init-tasks" depends="init">
      <!-- compile the ant tasks -->
      <mkdir dir="${tools.tasks.dest}"/>
      <javac srcdir="${tools.tasks.src}"
             destdir="${tools.tasks.dest}"
             debug="off"
             optimize="on"
             deprecation="on"
             target="1.3"
             nowarn="on"
             compiler="${compiler}"
             classpathref="tasks.classpath"/>
    </target>
    
    <target name="init-xpatch" depends="init-tasks">
      <!-- A task to patch xml files -->
      <taskdef name="xpatch" classname="XConfToolTask" 
classpath="${tools.tasks.dest}"/>
    </target>
    
    <target name="init-jing" depends="init">
      <!-- Jing is used in various targets for XML validation with RELAX NG -->
      <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask" 
classpathref="classpath"/>
    </target>
  
  <!-- Preparation Targets =================================================== 
-->
  
    <!-- Prepare the build directory -->
    <target name="prepare" depends="init">
      
<echo>+-------------------------------------------------------------------------------+</echo>
      <echo>                        ${fullname} ${version} [${year}]</echo>
      
<echo>+-------------------------------------------------------------------------------+</echo>
      <echo> Building with ${ant.version}</echo>
      <echo> using build file ${ant.file}</echo>
      <echo> Compiling with debug ${compiler.debug}, optimize 
${compiler.optimize}, deprecation ${compiler.deprecation}</echo>
      <echo>+-----------------------------| W A R N I N G 
|---------------------------------+</echo>
      <echo>               This build is targeted for use with JVM 
${target.vm}</echo>
      <echo>          Using this build on a virtual machine other than the 
one</echo>
      <echo>             it is targeted for may result in runtime errors.</echo>
      
<echo>+-------------------------------------------------------------------------------+</echo>
  
      <mkdir dir="${build}"/>
    </target>
  
    <!-- Prepare the build directories -->
    <target name="prepare-core" depends="prepare">
      <mkdir dir="${build.dest}"/>
      <mkdir dir="${build.mocks}"/>
    </target>
  
  <!-- Clean Targets ========================================================= 
-->
  
    <!-- Clean -->
    <target name="clean" depends="clean-cocoon,clean-webapp" 
description="Cleans the cocoon build and the webapp"/>
  
    <!-- Clean the cocoon build -->
    <target name="clean-cocoon" depends="init" description="Cleans the cocoon 
build">
      <!-- Delete the build directory -->
      <delete dir="${build}"/>
    </target>
  
    <!-- Clean the webapp -->
    <target name="clean-webapp" depends="init" description="Cleans the webapp">
      <delete dir="${build.webapp}"/>
    </target>
  
    <!-- Clean the distribution -->
    <target name="distclean" depends="clean" description="Cleans everything and 
brings back to original 'CVS checkout' state">
      <delete dir="${build.root}"/>
      <delete dir="${tools.tasks.dest}"/>
      <delete dir="${tools.loader.dest}"/>
      <delete file="${dist}/${Name}-${version}.tar.gz"/>
      <delete file="${dist}/${Name}-${version}.tar"/>
      <delete file="${dist}/${Name}-${version}.zip"/>
      <delete file="${dist}/${Name}-${version}-src.tar.gz"/>
      <delete file="${dist}/${Name}-${version}-src.tar"/>
      <delete file="${dist}/${Name}-${version}-src.zip"/>
      <delete file="${dist}/${Name}-${version}-bin.tar.gz"/>
      <delete file="${dist}/${Name}-${version}-bin.tar"/>
      <delete file="${dist}/${Name}-${version}-bin.zip"/>
      <delete file="${dist}/${Name}-${version}-samples.tar.gz"/>
      <delete file="${dist}/${Name}-${version}-samples.tar"/>
      <delete file="${dist}/${Name}-${version}-samples.zip"/>
      <delete dir="${dist.root}"/>
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/samples-build.xml
  
  Index: samples-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Samples Targets 
======================================================= -->
  
    <target name="samples" depends="prepare, init-xpatch" 
unless="unless.exclude.webapp.samples">
      <mkdir dir="${build.samples}"/>
  
      <javac srcdir="${samples}"
         destdir="${build.samples}"
         debug="${compiler.debug}"
         optimize="${compiler.optimize}"
         deprecation="${compiler.deprecation}"
         target="${target.vm}"
         compiler="${compiler}"
         classpathref="classpath"/>
  
      <!-- copy sample files -->
      <copy todir="${build.webapp.samples}" filtering="on">
        <fileset dir="${webapp.samples}">
         <exclude name="samples.xwelcome"/>
         <exclude name="old_sitemap.xmap"/>
         <exclude name="**/*.jpg"/>
         <exclude name="**/*.gif"/>
         <exclude name="**/*.png"/>
         <exclude name="i18n/**"/> <!-- filtering breaks UTF-8 files -->
        </fileset>
      </copy>
  
      <copy todir="${build.webapp.samples}" filtering="off">
        <fileset dir="${webapp.samples}">
         <include name="**/*.jpg"/>
         <include name="**/*.gif"/>
         <include name="**/*.png"/>
         <include name="i18n/**"/>
        </fileset>
      </copy>
  
      <!-- copy sample classes -->
      <copy todir="${build.webapp.classes}" filtering="off">
        <fileset dir="${build.samples}"/>
      </copy>
  
      <!-- patch the welcome page to tell we have samples to show -->
      <xpatch directory="${webapp.samples}" extension="xwelcome" 
configuration="${build.webapp}/welcome.xml"/>
    </target>
  
    <target name="scratchpad-samples" depends="prepare, init-xpatch" 
unless="unless.exclude.scratchpad">
   
      <!-- copy sample files -->
      <copy todir="${build.webapp.samples}" filtering="on">
        <fileset dir="${scratchpad.samples}">
         <exclude name="**/*.jpg"/>
         <exclude name="**/*.gif"/>
         <exclude name="**/*.png"/>
        </fileset>
      </copy>
  
      <copy todir="${build.webapp.samples}" filtering="off">
        <fileset dir="${scratchpad.samples}">
         <include name="**/*.jpg"/>
         <include name="**/*.gif"/>
         <include name="**/*.png"/>
        </fileset>
      </copy>
  
      <!-- patch the samples page to tell we have scratchpad samples to show -->
      <xpatch directory="${scratchpad.samples}" extension="xsamples" 
configuration="${build.webapp.samples}/samples.xml"/> 
    </target>
      
    <target name="block-samples" depends="prepare" 
unless="unless.exclude.webapp.samples">
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="samples"/>
    </target>
    
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/test-build.xml
  
  Index: test-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Test targets 
=========================================================== -->
  
    <!-- Runs all tests -->
    <target name="test" depends="junit.tests, anteater.tests" description="Runs 
all tests"/>
  
    <!-- Runs JUnit tests -->
    <target name="junit.tests" depends="compile" description="Runs the unit 
tests">
      <mkdir dir="${build.test}"/>
  
      <!-- Copy test files to build test dir -->
      <copy todir="${build.test}" filtering="on">
        <fileset dir="${test}" excludes="**/*.java"/>
      </copy>
  
      <!-- Compile tests -->
      <javac srcdir="${test}"
             destdir="${build.test}"
             debug="${compiler.debug}"
             optimize="${compiler.optimize}"
             deprecation="${compiler.deprecation}"
             target="${target.vm}"
             fork="true">
        <classpath refid="classpath"/>
        <classpath refid="scratchpad.classpath"/>
        <classpath>
          <pathelement path="${build.dest}" />
          <pathelement path="${build.scratchpad.dest}" />
          <!-- FIXME Resolver tests depend on deprecated stuff -->
          <pathelement path="${build.deprecated}" />
        </classpath>
      </javac>
      <junit printsummary="yes" haltonfailure="yes" fork="yes">
        <classpath>
          <pathelement location="${build.test}" />
          <pathelement location="${build.dest}" />
          <pathelement location="${build.scratchpad.dest}" />
          <!-- FIXME Resolver tests depend on deprecated stuff -->
          <pathelement path="${build.deprecated}" />
          <pathelement path="${java.class.path}" />
        </classpath>
        <classpath refid="classpath"/>
        <classpath refid="scratchpad.classpath"/>
        <formatter type="plain" usefile="no" />
        <batchtest>
          <fileset dir="${build.test}">
            <include name="**/*TestCase.class"/>
            <include name="**/*Test.class" />
            <exclude name="**/AllTest.class" />
            <exclude name="**/*$$*Test.class" />
            <exclude name="**/Abstract*.class" />
          </fileset>
        </batchtest>
      </junit>
    </target>
  
    <!-- Anteater tests  -->
    <target name="anteater.tests" description="Runs the functional tests">
      <property name="host" value="localhost"/>
      <property name="port" value="8888"/>
      <property name="base" value="/"/>
  
      <!-- FIXME: Anteater invocation is platform specific
      <exec executable="cmd">
        <arg line="/C C:\Java\anteater-0.9.15\bin\anteater.bat -f 
src/test/anteater/all-tests.xml -Dhost=${host} -Dport=${port} -Dbase=${base}"/>
      </exec>
      <exec executable="anteater">
        <arg line="-f src/test/anteater/all-tests.xml -Dhost=${host} 
-Dport=${port} -Dbase=${base}"/>
      </exec>
      -->
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/validate-build.xml
  
  Index: validate-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Validation targets 
==================================================== -->
  
    <!-- Check if all the JAR files are properly declared in lib/jars.xml    -->
    <target name="check-jars" depends="init">
      <path id="all.jars">
        <fileset dir="${lib}">
          <include name="**/*.jar"/>
        </fileset>
      </path>
  
      <property name="all.jars" refid="all.jars"/>
      <copy file="${lib}/jars.xml.tmpl" tofile="${build.temp}/current-jars.xml" 
filtering="yes" overwrite="yes">
        <filterset>
          <filter token="JARS" value="${all.jars}"/>
        </filterset>
      </copy>
  
      <!-- split the path in 'jar' XML elements -->
      <replace file="${build.temp}/current-jars.xml" token="${path.separator}" 
value="&lt;/jar&gt;&#xA; &lt;jar&gt;"/>
      <!-- relativize file names by removing the current directory -->
      <replace file="${build.temp}/current-jars.xml" 
token="${user}${file.separator}lib${file.separator}" value=""/>
      <!-- and incase that fails, remove the base directory -->
      <replace file="${build.temp}/current-jars.xml" 
token="${basedir}${file.separator}lib${file.separator}" value=""/>
  
      <!-- replace platform-dependent path separator by '/' -->
      <replace file="${build.temp}/current-jars.xml" token="${file.separator}" 
value="/"/>
  
      <xslt in="${lib}/jars.xml" out="${build.temp}/jars.xml"
             processor="trax"
             style="${tools}/src/check-jars.xsl">
        <param name="current-files" 
expression="../../${build.temp}/current-jars.xml"/>
      </xslt>
    </target>
  
    <!-- Validate configuration files. -->
    <target name="validate-config" depends="init-jing" 
unless="exclude.validate.config">
      <echo message="Validating configuration files"/>
  
      <echo message="Validating cocoon.xconf using RELAX NG ..."/>
      <jing rngfile="${build.webapp}/WEB-INF/entities/any.rng">
        <fileset dir="${build.webapp}/WEB-INF" includes="cocoon.xconf"/>
      </jing>
    </target>
  
    <!-- Validation of xdocs  -->
    <target name="validate-xdocs" depends="prepare-docs,init-jing" 
unless="exclude.validate.xdocs">
      <echo message="Conducting validation of core XML documentation."/>
  
      <echo message="Validating all **/book.xml instances using RELAX NG ..."/>
      <jing rngfile="${webapp}/WEB-INF/entities/book-v01.rng">
        <fileset dir="${build.context}" includes="**/book.xml"/>
      </jing>
  
      <echo message="Validating all xdocs/**/*.xml instances using DTDs ..."/>
      <xmlvalidate failonerror="true" lenient="no" warn="yes">
        <!-- FIXME: we can use xmlcatalog with Ant-1.6 -->
        <fileset dir="${build.context}/xdocs" includes="**/*.xml"
                 
excludes="drafts/*.xml,dictionary.xml,catalog-test.xml,ctwig/sample/**/*.xml"/>
      </xmlvalidate>
  
      <echo message="Validating the documentation sitemap.xmap using RELAX NG 
..."/>
      <jing rngfile="${webapp}/WEB-INF/entities/sitemap-v06.rng">
        <fileset dir="${build.context}" includes="sitemap.xmap"/>
      </jing>
  
  <!--    <echo message="Validating all documentation stylesheets using RELAX 
NG ..."/>
      <jing rngfile="${webapp}/WEB-INF/entities/xslt-20020523.rng">
        <fileset dir="${build.context}/stylesheets" includes="**/*.xsl"/>
      </jing>-->
    </target>
  
  <!--</project>-->
  
  
  
  1.1                  cocoon-2.1/src/targets/webapp-build.xml
  
  Index: webapp-build.xml
  ===================================================================
  <!--<?xml version="1.0"?>
  <project default="webapp" basedir="." name="Apache Cocoon Targets">-->
    <!-- Webapp targets ==================================================== -->
  
    <target name="prepare-webapp" depends="blocks, package">
      <mkdir dir="${build.webapp}"/>
  
      <copy file="${webapp}/welcome.xml" tofile="${build.webapp}/welcome.xml" 
filtering="on"/>
      <copy file="${webapp}/welcome.xslt" tofile="${build.webapp}/welcome.xslt" 
filtering="on"/>
      <copy file="${resources.logos}/cocoon-button-powered-158.gif" 
tofile="${build.webapp}/resources/images/powered.gif"/>
      <copy file="${resources.logos}/cocoon.ico" 
tofile="${build.webapp}/resources/images/cocoon.ico"/>
      <copy file="${resources.styles}/cocoon.css" 
tofile="${build.webapp}/resources/styles/cocoon.css"/>
  
      <copy file="${webapp}/sitemap.xmap" 
tofile="${build.webapp}/sitemap.xmap"/>
  
      <copy todir="${build.webapp}/stylesheets">
        <fileset dir="${webapp}/stylesheets">
          <include name="**/*.xslt"/>
        </fileset>
      </copy>
          
      <copy todir="${build.webapp}/WEB-INF" filtering="on">
        <fileset dir="${webapp}/WEB-INF">
          <include name="entities/**"/>
          <include name="classes/**"/>
          <include name="*.x*"/>
        </fileset>
      </copy>
  
      <copy file="${build}/${name}.jar" 
tofile="${build.webapp.lib}/${name}-${version}.jar"/>
  
      <copy todir="${build.webapp.lib}">
        <fileset dir="${lib}/endorsed">
          <include name="*.jar"/>
          <exclude name="servlet*.jar"/>
        </fileset>
        <fileset dir="${lib.core}">
          <include name="*.jar"/>
          <exclude name="servlet*.jar"/>
        </fileset>
        <fileset dir="${lib.core}/jvm${target.vm}">
          <include name="*.jar"/>
        </fileset>
        <fileset dir="${lib.optional}">
          <include name="*.jar"/>
          <exclude name="servlet*.jar"/>
        </fileset>
        <fileset dir="${lib.local}">
          <include name="*.jar"/>
          <exclude name="servlet*.jar"/>
        </fileset>
      </copy>
  
      <copy todir="${build.webapp.lib}">
        <fileset dir="${build.blocks}">
          <include name="*-block.jar"/>
        </fileset>
        <mapper type="glob" from="*-block.jar" to="cocoon-*-block.jar"/>
      </copy>
  
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="lib"/>
  
      <ant antfile="${build.temp}/blocks-build.xml"
           inheritAll="true"
           inheritRefs="false"
           target="patch"/>
    </target>
  
    <target name="prepare-webapp-samples" depends="prepare-webapp, samples, 
block-samples, scratchpad-samples" unless="unless.exclude.webapp.samples"/>
   
    <target name="prepare-webapp-scratchpad" depends="prepare-webapp, 
compile-scratchpad" unless="unless.exclude.webapp.scratchpad">
      <copy file="${build}/${name}-scratchpad.jar" 
tofile="${build.webapp.lib}/${name}-${version}-scratchpad.jar"/>
    </target>
   
    <target name="prepare-webapp-deprecated" 
depends="prepare-webapp,init-xpatch" unless="unless.exclude.deprecated">
      <copy file="${build}/${name}-deprecated.jar" 
tofile="${build.webapp.lib}/${name}-${version}-deprecated.jar"/>
      <xpatch directory="${deprecated.conf}" extension="xconf" 
configuration="${build.webapp}/WEB-INF/cocoon.xconf"/>
    </target>
  
    <target name="prepare-webapp-idldocs" depends="idldocs" 
unless="unless.exclude.webapp.idldocs">
      <mkdir dir="${build.webapp.idldocs}"/>
  
      <copy todir="${build.webapp.idldocs}" filtering="off">
        <fileset dir="${build.idldocs}"/>
      </copy>
  
      <!-- patch the welcome page to tell we have idldocs to show -->
      <xpatch directory="${idl}" extension="xwelcome" 
configuration="${build.webapp}/welcome.xml"/>    
    </target>
    
    <target name="prepare-webapp-javadocs" depends="javadocs" 
unless="unless.exclude.webapp.javadocs">
      <mkdir dir="${build.webapp.javadocs}"/>
  
      <copy todir="${build.webapp.javadocs}" filtering="off">
        <fileset dir="${build.javadocs}"/>
      </copy>
  
      <!-- patch the welcome page to tell we have javadocs to show -->
      <xpatch directory="${resources.javadoc}" extension="xwelcome" 
configuration="${build.webapp}/welcome.xml"/>    
    </target>
      
    <target name="prepare-webapp-docs" depends="validate-xdocs" 
unless="unless.exclude.webapp.documentation">
      <mkdir dir="${build.webapp.docs}"/>
      
      <copy todir="${build.webapp.docs}" filtering="on">
        <fileset dir="${documentation}">
          <exclude name="**/*.jpg"/>
          <exclude name="**/*.gif"/>
          <exclude name="**/*.png"/>
                <exclude name="*.xwelcome"/>
        </fileset>
      </copy>
  
      <copy todir="${build.webapp.docs}" filtering="off">
        <fileset dir="${documentation}">
          <include name="**/*.jpg"/>
          <include name="**/*.gif"/>
          <include name="**/*.png"/>
        </fileset>
      </copy>
  
      <!-- patch the welcome page to tell we have documentation to show -->
      <xpatch directory="${documentation}" extension="xwelcome" 
configuration="${build.webapp}/welcome.xml"/>    
    </target>
    
    <target name="webapp" 
depends="prepare-webapp,prepare-webapp-samples,prepare-webapp-docs,prepare-webapp-javadocs,prepare-webapp-idldocs,prepare-webapp-deprecated,prepare-webapp-scratchpad,validate-config,init-loader"/>
  
    <target name="war" depends="webapp">
      <!-- A task to create manifest for webapp. -->
      <taskdef name="manifest" classname="ManifestToolTask" 
classpath="${tools.tasks.dest}"/>
      <!-- Create WAR manifest -->
      <manifest directory="${build.webapp.lib}" 
manifest="${build.webapp}/WEB-INF/Manifest.mf"/>
      <!-- Package WAR file -->
      <jar jarfile="${build.war}"  
manifest="${build.webapp}/WEB-INF/Manifest.mf">
        <fileset dir="${build.webapp}"/>
      </jar>
    </target>
  
  <!--</project>-->
  
  
  

Reply via email to