<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!DOCTYPE status [
<!ELEMENT status (developers, todo, changes)>
<!ELEMENT developers (person+)>
<!ELEMENT person EMPTY>
<!ATTLIST person
  name CDATA #REQUIRED
  email CDATA #REQUIRED
  id CDATA #REQUIRED
>
<!ELEMENT todo (actions+)>
<!ELEMENT actions (action+)>
<!ATTLIST actions
  priority (high | medium | low) #REQUIRED
>
<!ELEMENT changes (release+)>
<!ELEMENT release (action+)>
<!ATTLIST release
  version CDATA #REQUIRED
  date CDATA #REQUIRED
>
<!ELEMENT action (#PCDATA | link | br | code | ul | strong)*>
<!ATTLIST action
  context (build | code | docs) #IMPLIED
  assigned-to CDATA #IMPLIED
  dev CDATA #IMPLIED
  type (add | fix | remove | update) #IMPLIED
  fixes-bug CDATA #IMPLIED
  due-to CDATA #IMPLIED
  due-to-email CDATA #IMPLIED
>
<!ELEMENT code (#PCDATA)>
<!ELEMENT br EMPTY>
<!ELEMENT strong (#PCDATA)>
<!ELEMENT link (#PCDATA)>
<!ATTLIST link
  href CDATA #REQUIRED
>
<!ELEMENT ul (li)+>
<!ELEMENT li (#PCDATA | link | br | code | ul)*>
<!ENTITY eacute           "&#x000E9;">
<!ENTITY ouml             "&#x000F6;">
<!ENTITY uuml             "&#x000FC;">
<!ENTITY ccedil           "&#x000E7;">
]>

<!-- SVN $Id: status.xml 1456447 2013-03-14 14:11:35Z cdamioli $ -->

<status>
 <developers>
  <!-- in strict alphabetical order -->
  <person name="Donald Ball" email="balld@apache.org" id="DB"/>
  <person name="Nicola Ken Barozzi" email="nicolaken@apache.org" id="NKB"/>
  <person name="Ross Burton" email="rossb@apache.org" id="RB"/>
  <person name="Mark Butler" email="butlermh@apache.org" id="MB"/>
  <person name="Ugo Cei" email="ugo@apache.org" id="UC"/>
  <person name="Tony Collen" email="tony@apache.org" id="ATC"/>
  <person name="Marcus Crafter" email="crafterm@apache.org" id="MC"/>
  <person name="David Crossley" email="crossley@apache.org" id="DC"/>
  <person name="Torsten Curdt" email="tcurdt@apache.org" id="TC"/>
  <person name="C&#233;dric Damioli" email="cdamioli@apache.org" id="CD"/>
  <person name="Bertrand Delacr&#233;taz" email="bdelacretaz@apache.org" id="BD"/>
  <person name="Bruno Dumon" email="bruno@apache.org" id="BRD"/>
  <person name="Daniel Fagerstrom" email="danielf@apache.org" id="DF"/>
  <person name="Gerhard Froehlich" email="froehlich@apache.org" id="GF"/>
  <person name="Pierpaolo Fumagalli" email="pier@apache.org" id="PF"/>
  <person name="Antonio Gallardo" email="antonio@apache.org" id="AG"/>
  <person name="Leszek Gawron" email="lgawron@apache.org" id="LG"/>
  <person name="Simone Gianni" email="simoneg@apache.org" id="SG"/>
  <person name="Ralph Goers" email="rgoers@apache.org" id="RG"/>
  <person name="Vadim Gritsenko" email="vgritsenko@apache.org" id="VG"/>
  <person name="Christian Haul" email="haul@apache.org" id="CH"/>
  <person name="J&#246;rg Heinicke" email="joerg@apache.org" id="JH"/>
  <person name="Jorg Heymans" email="jheymans@apache.org" id="JHS"/>
  <person name="Unico Hommes" email="unico@apache.org" id="UH"/>
  <person name="Geoff Howard" email="ghoward@apache.org" id="GH"/>
  <person name="Bernhard Huber" email="huber@apache.org" id="BH"/>
  <person name="Ivelin Atanasoff Ivanov" email="ivelin@apache.org" id="IAI"/>
  <person name="Jasha Joachimsthal" email="jasha@apache.org" id="JSJ"/>
  <person name="Jason Johnston" email="jjohnston@apache.org" id="JJ"/>
  <person name="Grzegorz Kossakowski" email="gkossakowski@apache.org" id="GK"/>
  <person name="Matthew Langham" email="mlangham@apache.org" id="ML"/>
  <person name="Berin Loritsch" email="bloritsch@apache.org" id="BL"/>
  <person name="Stefano Mazzocchi" email="stefano@apache.org" id="SM"/>
  <person name="Michael Melhem" email="michaelm@apache.org" id="MM"/>
  <person name="Stephan Michels" email="stephan@apache.org" id="SMS"/>
  <person name="John Morrison" email="morrijr@apache.org" id="JM"/>
  <person name="Alfred Nathaniel" email="anathaniel@apache.org" id="AN"/>
  <person name="Steven Noels" email="stevenn@apache.org" id="SN"/>
  <person name="Christopher Oliver" email="coliver@apache.org" id="CO"/>
  <person name="Giacomo Pati" email="giacomo@apache.org" id="GP"/>
  <person name="Max Pfingsthorn" email="mpfingsthorn@apache.org" id="MPF"/>
  <person name="Konstantin Piroumian" email="kpiroumian@apache.org" id="KP"/>
  <person name="Marc Portier" email="mpo@apache.org" id="MPO"/>
  <person name="Ovidiu Predescu" email="ovidiu@apache.org" id="OP"/>
  <person name="Jean-Baptiste Quenot" email="jbq@apache.org" id="JBQ"/>
  <person name="Jeremy Quinn" email="jeremy@apache.org" id="JQ"/>
  <person name="Reinhard P&#246;tz" email="reinhard@apache.org" id="RP"/>
  <person name="Gianugo Rabellino" email="gianugo@apache.org" id="GR"/>
  <person name="Ricardo Rocha" email="ricardo@apache.org" id="RR"/>
  <person name="Peter Royal" email="proyal@apache.org" id="PAR"/>
  <person name="Paul Russell" email="prussell@apache.org" id="PR"/>
  <person name="Andrew Savory" email="asavory@apache.org" id="AS"/>
  <person name="Diana Shannon" email="shannon@apache.org" id="DS"/>
  <person name="Davanum Srinivas" email="dims@yahoo.com" id="DM"/>
  <person name="Jeff Turner" email="jefft@apache.org" id="JT"/>
  <person name="Upayavira" email="upayavira@apache.org" id="UV"/>
  <person name="Sylvain Wallez" email="sylvain@apache.org" id="SW"/>
  <person name="Carsten Ziegeler" email="cziegeler@apache.org" id="CZ"/>
  <person name="Volunteer needed" email="cocoon-dev@apache.org" id="open"/>
 </developers>

  <todo>
   <actions priority="high">
    <action context="code" assigned-to="all">
      Test, test, test :-)
    </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.2: 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)
    </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 refactoring of samples
      See info at BRANCH_2_1_X/src/documentation/xdocs/plan/samples.xml (
   <link href="http://cocoon.apache.org/2.1/plan/samples.html">refactoring guidelines</link> document).
    </action>

    <action context="code" assigned-to="open">
      Finish moving the scratchpad stuff in main trunk.
    </action>
   </actions>

   <actions priority="medium">
    <action context="code">
      Ensure that recyclable components always release their references, even when
      they are not pooled. The easiest way is to make them disposable and clean up
      in dispose.
    </action>

    <action context="code">
      Lucene is writing info to stdout when searching.
    </action>

    <action context="code">
      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>

    <action context="code" assigned-to="MPO">
      Remove ContainerWidget concept from cforms.
    </action>
   </actions>
  </todo>

  <changes>
  <release version="2.1.12" date="March 14 2013">
    <!-- Leave this entry about raising minimum Java to 1.4 at the top for 2.1.12! -->
    <action dev="all" type="update">
      Starting with 2.1.12 the minimum required Java version will be 1.4.2.
    </action>
    <action dev="DC" type="update" fixes-bug="COCOON-2333">
      Core: Update xml-commons-resolver to 1.2
    </action>
    <action dev="CD" type="add" fixes-bug="COCOON-2288" due-to="Laurent Medioni" due-to-email="lmedioni@temenos.com">
      Allow usage of SLF4J for traces
    </action>
    <action dev="CD" type="fix" fixes-bug="COCOON-1529" due-to="Johannes Textor">
      I18nTranformer should consume and stop propagating start/endPrefixMapping of its namespace
    </action>
    <action dev="CD" type="fix" fixes-bug="COCOON-2069" due-to="Jeroen Reijn">
      Cocoon 2.1 is not initialized when building without samples
    </action>
    <action dev="CD" fixes-bug="COCOON-2310" type="update">
      Serializers block: Added support of XHTML5 in the XHTMLSerializer
    </action>
    <action dev="CD" fixes-bug="COCOON-2307" type="fix">
      Core: When interrupted, the ResourceReader may store incomplete data in the cache
    </action>
    <action dev="CD" fixes-bug="COCOON-2314" type="update">
      Core: Allow to override the upload parameters in CocoonServlet
    </action>
    <action dev="AG" type="update">
      Core: Update xercesImpl to 2.11.0 and xml-apis to 1.4.01.
    </action>
    <action dev="JSJ" type="fix" fixes-bug="COCOON-2104" due-to="Andrew Cave" due-to-email="ajcave@ualberta.ca">
      Add base URI fixup support to XIncludeTransformer
    </action>
    <action dev="JSJ" type="fix" fixes-bug="COCOON-2041" due-to="Edward Riede" due-to-email="edriede@yahoo.com">
      Repository block: WebDAV Returns improper status on PUT
    </action>
    <action dev="JSJ" type="update" fixes-bug="COCOON-2289" due-to="Cédric Damioli" due-to-email="cedric.damioli@anyware-services.com">
      FOP block: Backport from FOPNGSerializer (C2.2) to FOPSerializer. Upgraded FOP dependency from 0.20.5 to 0.95.
    </action>
    <action dev="JSJ" type="add" fixes-bug="COCOON-2278" due-to="Nico Verwer" due-to-email="nverwer@email.com">
      XSP block: Make SOAPHelper use https, not just http
    </action>
    <action dev="SW" type="fix" fixes-bug="COCOON-2286" due-to="Cédric Damioli" due-to-email="cedric.damioli@anyware-services.com">
      Serializer block: charset data won't load if there's a space in the path to the jar file (e.g "C:\Program Files\MyApp\...")
    </action>
    <action dev="JSJ" type="fix" fixes-bug="COCOON-2257">
      JCR block: Missing modCount attribute in JCR sample content.
    </action>
    <action dev="AG" type="update">
      Updated ant to 1.7.1. This ant detects correctly java 1.6.
    </action>
    <action dev="JH" type="update" fixes-bug="COCOON-1887" due-to="Andrew Stevens" due-to-email="stevensa@users.sourceforge.net">
      Change HostSelector to be case-insensitive according to RFC3986 section 3.2.2.
    </action>
    <action dev="JH" type="add" fixes-bug="COCOON-2243" due-to="Benjamin Boksa" due-to-email="benjamin@boksa.de">
      Handle case in ApplicationUtil.isUserInRole(..) when User is null.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1822" due-to="Karen Torres &amp; Rafael Márquez" due-to-email="ktorres@agssa.net &amp; rmarquez@agssa.net">
      Forms: MultiValueField list-type="double-listbox" does not work correctly in ajax enabled forms.
    </action>
    <action dev="JSJ" type="fix" fixes-bug="COCOON-2228">
      StripNameSpacesTransformer does not strip namespace prefix of attributes
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-2169" due-to="Mark Lundquist" due-to-email="lundquist.mark@gmail.com">
      ImageOp block: If parameter width or height in resize operation is zero, use the original image size.
      If both are zero, then handle as no-op.  Set default values to zero to allow using that feature by
      leaving out the parameters.
    </action>
    <action dev="AN" type="add" fixes-bug="COCOON-2133" due-to="Robin Wyles" due-to-email="reb@robinwyles.com">
      ImageOp block: Addition of "allow-enlarge" parameter to resize operation.
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-2213" due-to="Jasha Joachimsthal" due-to-email="j.joachimsthal@onehippo.com">
      Mail block: Allow mime-type to explicitly set a charset as in mime-type="text/html;charset=UTF-8".
    </action>
    <action dev="RP" type="fix">
      Mail block: Make a difference between plain text mails and mails that have a multi-part body.
      If the mail-body has set the mime-type="text/plain", then the message body isn't send as
      body part but as simple content.  That avoids getting a plain text-message without attachment
      being marked as mail with attachment.
    </action>
    <action dev="JH" type="update">
      Core: Cocoon's pipeline buffer increases from an initial buffer size of 8192 bytes to the configurable flush
      buffer size rather than allocating the complete buffer beforehand.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2209" due-to="Reynaldo Porras" due-to-email="rporras@agssa.net">
      POI Block: formatted style regions stop creating style at 2000 rows.
    </action>
    <action dev="AS" type="fix" fixes-bug="COCOON-2152" due-to="Ellis Pritchard" due-to-email="epritcha@wiley.com">
      Eventcache: Events are persisted and restored and sample works
    </action>
    <action dev="AN" type="update">
      POI Block: Update to poi-3.0.2.
    </action>
    <action dev="VG, JH" type="fix" fixes-bug="COCOON-2063">
      HTML: Fix encoding issue in NekoHTMLTransformer. Fix similar issue in NekoHTMLGenerator when reading a request
      parameter value.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1825" due-to="Vincent Demay" due-to-email="vincent@demay-fr.net">
      Forms: Fix @id handling on fi:group/fi:struct element in conjunction with AJAX requests.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2192" due-to="Steven Dolg" due-to-email="steven.dolg@indoqa.com">
      Core: Fix CachingOutputStream not caching all content or leading to ArrayIndexOutOfBoundsException when using
      write(byte[], int, int).
    </action>
    <action dev="JH" type="update" fixes-bug="COCOON-2168">
      Core: Set the default output buffer size of the pipeline to 1,048,576 (1 MB) rather than -1 (complete buffering)
      to avoid potential OutOfMemoryErrors on too large output.
    </action>
    <action dev="AN" type="add">
      Core: In Cocoon 2.2 the org.apache.cocoon.environment.Session interface
      is deprecated, and the return type of getSession() changes to
      vanilla javax.servlet.HttpRequest.
      For migrating from Cocoon 2.1 to 2.2, replace in your custom code
      all calls to getSession() by getCocoonSession().  That allows for
      a common codebase usable on both version.
    </action>
    <action dev="JH" type="add">
      Core: Allow multiple file uploads of the same field name. If there are multiple file uploads Request.get(String)
      will return a Vector. If there is only one file upload it will return the Part as it did before. This is now the
      same behavior as for inline parts.
    </action>
    <action dev="AG" type="update">
      Core: Update commons-lang to 2.4.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2186">
      Forms: Fix suggest list for which the initial value was not displayed.
    </action>
    <action dev="JH" type="fix">
      Core: Fix synchronization issues in ContinuationsManager implementation.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2178" due-to="Harald Entner" due-to-email="harald.entner@workflow.at">
      Forms: Dispatch only one TreeSelectionEvent on multiple selection rather than one event for each selected tree item.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2109" due-to="Miguel Cuervo" due-to-email="miguel.cuervo@cgi.com">
      Core: Fix clean up of continuations.
    </action>
    <action dev="JH" type="fix">
      Javaflow: Minimize the data that's stored with ContinuationContext to limit the Continuation's memory footprint.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2163" due-to="Carlos Chávez" due-to-email="cchavez@agssa.net">
      Forms: Widget Label is not Show/Hide when we change the widget state in ajax mode.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-1985">
      Use current HTTP request as a pipeline lock object instead of current
      thread. Resolves deadlock when request is processed in multiple threads.
    </action>
    <action dev="JH" type="fix">
      Core: Close streams properly after copying Parts (MultipartParser). Allow to access InputStream of PartInMemory
      multiple times.
    </action>
    <action dev="CZ" type="fix">
      Portal: Remove user management tools.
    </action>
    <action dev="VG" type="fix">
      Core: Fix flow scripts reload check logic.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2020" due-to="Mark Lundquist" due-to-email="lundquist.mark@gmail.com">
      Forms: CAPTCHA &lt;input&gt; element should have autocomplete="off"
    </action>
    <action dev="AN" type="add" fixes-bug="COCOON-2065" due-to="Dominique De Munck" due-to-email="dominique.demunck@gmail.com">
      Lucene block: Added optimize-frequency configuration parameter to LuceneIndexTransformer.
      This gives a huge performance increase on large Lucene indexes when not optimizing after every update.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2058" due-to="Ralph Collett" due-to-email="ralph.collett@semantico.com">
      Forms Block: Fix ambiguous rule issue with Forms stylesheets when using Saxon.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-2164" due-to="Nico Verwer" due-to-email="nverwer@email.com">
      Validation Block: Fix error in JaxpResolver#resolveResource(..) where publicId and systemId where swapped.
    </action>
    <action dev="VG" type="fix">
      Forms Block: Fixed concurrency issue in form definition builders code. If you have custom
      widgets, please implement WidgetDefinitionBuilder.buildWidgetDefinition(Element, WidgetDefinitionBuilderContext)
      method. Do not use WidgetDefinitionBuilder.buildWidgetDefinition(Element) method, it is intended to be
      implemented only by the top level widget (Form).
    </action>
    <action dev="JH" type="add" fixes-bug="COCOON-2149" due-to="Ellis Pritchard" due-to-email="ellis@nukinetics.com">
      Add capability to IncludeTransformer to strip the root element from included XML content.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-2159" due-to="Pawel Pesz" due-to-email="webmaster@insert.net.pl">
      Auth Block: Fix error in PipelineSecurityHandler which prevented additional data to be added
      to the user properties.
    </action>
    <action dev="RG" type="fix" fixes-bug="COCOON-2064">
      Fix javadoc in PropertySettings. RunningMode is not supported in 2.1.x
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2158">
      Core: XMLByteStreamCompiler hard-coded limits of 0xffff Strings prevents large XML documents
            from being handled in Cocoon.
    </action>
  </release>
  <release version="2.1.11" date="December 31 2007">
    <action dev="RG" type="fix" fixes-bug="COCOON-1574">
      Created XPathXMLFileModule to address issues with XMLFileModule. XPathXMLFileModule supports variable
      replacement and caching of documents in ehcache and expressions as soft references.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2052" due-to="Robin Wyles" due-to-email="rob@robinwyles.com">
      Forms: Allow Ajax submission of forms with empty upload field.
    </action>
    <action dev="CZ" type="add">
      Portal: New SiteProfileManager providing the same profile to several users based on a configured key.
    </action>
    <action dev="CZ" type="fix">
      Portal: Some memory consumption improvements for the user profiles.
    </action>
    <action dev="AG" type="update">
      Core: Update xalan to 2.7.1.
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-1990" due-to="Robert Hoffmann" due-to-email="roberth@mit.edu">
      Sitemap: Redirect to cocoon:/foo did not work in sub-sitemap when it is in same directory as the root sitemap.
    </action>
    <action dev="AG" type="update">
      Core: Update xercesImpl to 2.9.1.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2146" due-to="Ellis Pritchard" due-to-email="ellis@nukinetics.com">
      Event Cache Block: Restore serializability of persistent cache when using event-aware cache.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-2129" due-to="Robin Wyles" due-to-email="rob@robinwyles.com">
      Mail Block: Fix setting of URL message body.
    </action>
    <action dev="JH" type="add" fixes-bug="COCOON-1354" due-to="Jochen Seifarth" due-to-email="jochen.seifarth@web.de">
      &lt;map:serialize status-code=&quot;{}&quot;/&gt; supports variable resolution.
    </action>
    <action dev="VG" type="fix">
      XMLDB Block: Fix collection URLs in XMLDBSource. Fixes URL resolution and 'Mount DB' sample.
    </action>
    <action dev="VG" type="update">
      XMLDB Block: Update Xindice to 1.1 release.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1440" due-to="Krystian Nowak" due-to-email="krystian@man.poznan.pl">
      POI Block: Color string normalization.
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-2098" due-to="Andreas Deininger" due-to-email="andreas@deininger.net">
      build.sh: Allow for quoted shell arguments containing spaces.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2027" due-to="Jan Oberst" due-to-email="mail@janoberst.com">
      CForms: Handling of empty responses in AJAX Forms with IFrame transport.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2059" due-to="Alexander Klimetschek" due-to-email="alexander.klimetschek@mindquarry.com">
      Ajax: ajax/common.js makes use of deprecated dojo.animation.Timer
    </action>
    <action dev="AN" type="update">
      XSP block: Upgrade Eclipse compiler to version 3.1.0 to allow the use of Java5 syntax in XSPs.
      (Latest released Eclipse version is 3.2.2 but use 3.1.0 to be consistent with the version
      picked up by the Maven build in trunk).
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-2077" due-to="Ellis Pritchard">
      Core, QDox: Fixed getInputStream() in XModuleSource and QDoxSource:
      Set up XMLSerializer in a component way, i.e. retrieve it from ServiceManager.
    </action>
    <action dev="GK" type="update" fixes-bug="COCOON-2073" due-to="Alexander Klimetschek" due-to-email="alexander.klimetschek@mindquarry.com">
      Dojo toolkit upgraded to 0.4.3 version. It contains fix for security bug. See http://dojotoolkit.org/releaseNotes/0.4.3.
    </action>
    <action dev="JJ" type="fix" fixes-bug="COCOON-1315" due-to="Gunnar Brand" due-to-email="g.brand@interface-business.de">
      I18n (ParamSaxBuffer): when substitution params like {0} are split over multiple character
      events, do not write out extra garbage characters.
    </action>
    <action dev="RG" type="fix">
      Portal: Marked PreparePortalAction, CopletSetDataAction, and ObjectModelAction ThreadSafe
    </action>
    <action dev="AG" type="update">
      Core: Update log4j to 1.2.14, commons-io to 1.3.1, commons-lang to 2.3 and jakarta-regexp to 1.5.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2023" due-to="Larry Ruiz" due-to-email="lruiz@agssa.net">
      CForms: MultivalueEditorWithSuggestion doesn't add values to the listbox on Internet Explorer.
    </action>
    <action dev="VG" type="fix">
      CForms: Submit widget now inherits validate attribute value from the
      ancestor widget, if it is specified.
    </action>
    <action dev="CZ" type="fix">
      Serializers block: Correctly handle content of script and style tag as cdata for html.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2013" due-to="Larry Ruiz" due-to-email="lruiz@agssa.net">
      CForms: MultivalueEditorWithSuggestion, extended multivalueeditor widget with suggestion list.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-2011" due-to="Paul Friedman" due-to-email="paul.friedman@quoininc.com">
      CForms: CFormsSuggest widget does not implement the onValueChanged event.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1927" due-to="Richard Frovarp">
      Core: EHCache now uses the configured cache directory instead of using the default of java.io.tempdir.
    </action>
    <action dev="CZ" type="update">
      Core: Update ehcache to 1.2.3.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1984" due-to="Mark Lundquist">
      Template block: Add missing toString implementation to TemplateObjectModelHelper.ParametersMap.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1998" due-to="Woonsan Ko">
      Portal block: CocoonPortlet needs to allow overriding servlet-path parameter with preferences.
    </action>
    <action dev="JJ" type="fix" fixes-bug="COCOON-2000" due-to="Abbas Mousavi">
      CForms: Fix "Serialization parameter {indent} must have the value yes or no" error
      in Form.prototype.saveXML() when using Saxon.
    </action>
    <action dev="CZ" type="add">
      Core: Exipres caching pipeline can now cache the content forever (by setting cache-expires
      to a negative value).
    </action>
    <action dev="VG" type="add">
      Core: In store janitor, add an option to cleanup all stores on each janitor
      run. Default behavior is to cleanup one store at a time.
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-1985" due-to="Ellis Pritchard">
      Core: Fix deadlock in caching pipeline when used in combination with include transformer.
    </action>
    <action dev="BRD" type="update">
      CForms: introduce a new dojo-based popup-picker for dates, times and datetimes.
      For correct localization, supply a "dojo-locale" parameter to the forms styling XSLT (see samples).
    </action>
    <action dev="BRD" type="add">
      CForms: add support for a "timeStyle" attribute on the formatting date convertor, so
      that the time style can (optionally) be specified independently from the date style.
    </action>
    <action dev="CZ" type="fix">
      Portal block: Fix truncation of included portlets in html include serializer.
    </action>
    <action dev="CZ" type="fix">
      Auth block: Fix checking of double logins for the same security handler.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1979" due-to="Rob Berens">
      HSQLDB block: Fix startup problems with newer HSQLDB versions and upgrade to 1.8.0.7.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1979" due-to="Rob Berens">
      Core: Check for reloading of javascript files loaded by cocoon.load().
    </action>
    <action dev="JH" type="add" fixes-bug="COCOON-1471" due-to="Robin Wyles">
      Forms block: Add method to create binding from DOM tree.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1977" due-to="Ellis Pritchard">
      Core: Fix threading issue with internal cache in ResourceReader.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1976" due-to="Rob Berens">
      POI Block: Prevent NPE in ElementProcessorSerializer on characters before first startElement.
    </action>
    <action dev="JQ" type="update">
      Updating Dojo to 0.4.1.
      <ul>
        <li>use namespaces for loading widgets</li>
        <li>cleanup of client-side libraries into cocoon.forms.common</li>
        <li>deprecation and replacement of functions in forms_lib.js cocoon.js CFormsForm.js</li>
        <li>all cforms forms now use a dojo widget (forms:SimpleForm or forms:AjaxForm)</li>
      </ul>
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1776" due-to="Vincent Demay">
      Portal Block: Applied and improved patch for reloading bookmarks based on their (file) validity.
    </action>
    <action dev="CZ" type="fix">
      Portal Block: Fix handling of missing special parameters for forms in NewEventLinkTransformer.
    </action>
    <action dev="CZ" type="fix">
      Auth Block: Make isUserInRole a static method.
    </action>
    <action dev="JQ" type="fix">
      Fixes to forms and ajax samples.
    </action>
  </release>
  <release version="2.1.10" date="December 21 2006">
    <action dev="JH" type="fix" fixes-bug="COCOON-1811" due-to="Rob Berens">
      Core: Allow dynamic loading of JavaScript objects even when scope is locked.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1916" due-to="Rob Berens">
      CForms: Always set viewData for flow script functions (if it's not available set it to null).
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1969" due-to="Jeroen Reijn">
      Javaflow OJB Sample: Fix "No method 'showEmployee' found".
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1970" due-to="Jeroen Reijn">
      The JavaFlow OJB sample overwrote the first entry on insert instead of adding a new entry.
      This has been fixed.
    </action>
    <action dev="CZ" type="remove">
      Core: Removed the buggy WildcardHelper. Use the new improved WildcardMatcherHelper.
    </action>
    <action dev="CZ" type="add">
      Profiler block: Add statistics component.
    </action>
    <action dev="CZ" type="add">
      Databases block: Add support for iBatis to use configured Excalibur data sources in iBatis.
    </action>
    <action dev="AS" type="fix" fixes-bug="COCOON-1965" due-to="Jeroen Reijn">
      CForms: The filterfield widget was not defined for the forms manager.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1962" due-to="Carlos Chávez" due-to-email="cchavez@agssa.net">
      CForms: Numeric based suggestion list should initialzate to the corresponding suggested text.
    </action>
    <action dev="BRD" type="update">
      Updated Rhino (Javascript engine) to version 1.6R5.
      This version is licensed under MPL, while previous versions were licensed under NPL,
      which was a problem since software licensed under NPL cannot be included in Apache products.
      The new version should be compatible with the previous version, though it does
      not support the constructs "catch (continue|break|return)" which were available
      in Cocoon's Rhino fork.
    </action>
    <action dev="AG" type="update">
      Updated xercesImpl to 2.9.0 and xml-apis to 1.3.04.
    </action>
    <action dev="JQ" type="add">
      Ajax: upload progress bar widget.<br/>
      <ul>
        <li>A new dojo widget to display file upload progress for forms (and cforms).</li>
        <li>Ajax-enabled cforms can now submit file-upload fields in the background.</li>
        <li>New system pipelines for Blocks (/_cocoon/system/[blockname]/**).</li>
        <li>Sitemaps can now call flowscripts written in a static namespaced style.</li>
        <li>Added JSON Serialization utilities for flowscript.</li>
        <li>You can now get i18n translations from Stings in flowscript.</li>
      </ul>
    </action>
    <action dev="VG" type="add">
      Core: Add ability to pre-load i18n catalogues in I18nTransformer.
      Removed references to defunct cache-on-startup configuration.
    </action>
    <action dev="JJ" type="add" fixes-bug="COCOON-1879">
      CForms: Added @whitespace attribute to fd:field widget, to control how leading
      and trailing whitespace characters are handled when reading submitted values.
      Accepted values are: "trim" (default), "trim-start", "trim-end", and "preserve".
    </action>
    <action dev="VG" type="update">
      Mail: Improve MailSender interface: added setBody(Object), setBodyURL
      methods, deprecated setCharset, setBody(String), setBodyFromSrc,
      setBodyFromSrcMimeType methods. Support byte[], InputStream as body and
      attachment objects.
    </action>
    <action dev="VG" type="fix">
      Mail: Log exceptions from mail attachments - JavaMail does not preserve
      cause exception.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1936" due-to="Jeroen Reijn" due-to-email="j.reijn@hippo.nl">
      Lucene: Add <code>analyzer</code> parameter to <code>SearchGenerator</code>
      as stated by the docs.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1894" due-to="Geurt Wisselink" due-to-email="gwk@home.nl">
      Databases: Added support for the SQL:XML tag in SQLTransformer.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1878">
      Validation: Replaced references to constant declarations in
      <code>javax.xml.XMLConstants</code>, which are not in the official API.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1692" due-to="Suzan Foster" due-to-email="suzan.foster@nerocmediaware.nl">
      CForms: Tree widget not handling on-selection-change events correctly.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1883" due-to="Fabian Linz" due-to-email="f.linz@gmx.de">
      XSP: SOAPHelper does no longer accept only replies with an XML declaration.
    </action>
    <action dev="AG" type="update">
      Updated commons-lang to 2.2 and bsf to 2.4.0.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1900" due-to="Gabriele Columbro" due-to-email="columbro@gmail.com">
      CForms: Add a <code>name</code> attribute to a booleanfield in output mode to
      make it easily accessible in JavaScript.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1867" due-to="Gabriele Columbro" due-to-email="columbro@gmail.com">
      CForms: BeanConvertor uses a WeakHashMap in the wrong way.
    </action>
    <action dev="AG" type="fix" due-to="Christofer Dutz" due-to-email="christofer.dutz@univativ.de">
      AJAX: Fix cocoon suggest sample.
    </action>
    <action dev="AG" type="update">
      Deprecate method org.apache.cocoon.components.flow.FlowHelper.unwrap(Object).
      This method will be removed in 2.2 release. Use org.apache.cocoon.components.flow.util.PipelineUtil.unwrap(Object) instead.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1196">
      XSP: Use namespace-uri and not the namespace-prefix to select parameters
      in logicsheet-util.xsl.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-1462">
      Databases: Check for null LOBs.
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1866" due-to="Ellis Pritchard" due-to-email="ellis@nukinetics.com">
      JXTemplate: Fix an ArrrayIndexOutOfBoundsException with jx:comment.
    </action>
    <action dev="AS" type="fix" fixes-bug="COCOON-1818" due-to="Jasha Joachimsthal">
      Apply patch to handle malformed recipient address exception correctly.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-1906" due-to="Lars Trieloff" due-to-email="lars@trieloff.net">
      CForms: Apply patch to disambiguate toSAX method call.
    </action>
    <action dev="VG" type="update">
      Core: Move BackgroundEnvironment from Cron block into the Core.
    </action>
    <action dev="VG" type="fix">
      Core: i18n transformer was loosing whitespaces in i18n:text, i18n:translate,
      i18n:param elements if they had mixed content.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1919" due-to="Guillaume Déflache" due-to-email="guillaume@anyware-tech.com">
      CForms: In AbstractWidgetDefinitionBuilder, methods "setValidators",
      "setCreateListeners", and "setCommonProperties" now have visibility "protected"
      instead of "private"
    </action>
    <action dev="AN" type="fix">
      Core: Rewrite of WildcardMatcherHelper where the heavy-lifting is left to the regexp library.
      That fixes a false positive where "menu/foo/bar.xml" was matched by "menu/*.xml" in the old
      implementation.  The new code also removes the over-greedyness of '**' that "**/*/*" can now
      be matched successfully.
    </action>
    <action dev="AG" type="update">
      Updated xercesImpl to 2.8.1.
    </action>
    <action dev="VG" type="update">
      CForms: FormManager now caches form definitions created from Source or URI.
    </action>
    <action dev="AN" type="fix">
      Core: Off-by-1 bug in WildcardMatcher found pattern matches which were not there.
    </action>
    <action dev="AN" type="fix">
      Core: '**' in complex WildcardMatcher pattern did not match an empty pathstep.
    </action>
    <action dev="AN" type="fix">
      XSP block: Using document('') in logicsheet caused NPE.
    </action>
    <action dev="VG" type="fix">
      CForms: Repeater identity binding was failing on save if widget path was
      given.
    </action>
    <action dev="VG" type="fix">
      CForms: Inherit fb:on-delete-row, fb:on-insert-row, fb:identity repeater
      bindings from the parent. Fix detection of 'simple' mode.
    </action>
    <action dev="AN" type="add">
      ZipArchiveSerializer: Set time stamp of ZIP entries to last modification
      time of source file.
    </action>
    <action dev="AG" type="update">
      Updated ehcache to 1.2.2.
    </action>
    <action dev="AN" type="add">
      XSP block: Add example for on-the-fly generation of ZIP file.
    </action>
    <action dev="AN" type="fix">
      XSP block: Suppress xmlns:xsp namespace declaration on XSP generated root element.
    </action>
    <action dev="VG" type="add">
      Repository: Add CachingSource source implementation (from trunk).
    </action>
    <action dev="JJ" type="fix">
      ImageOp: Send info/debug messages to the log rather than System.out.println
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1815" due-to="Frédéric Glorieux" due-to-email="frederic.glorieux@ajlsm.com">
      Core: CopySourceAction generate NPE.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1849" due-to="Mark Lundquist" due-to-email="mlundquist2@comcast.net">
      CForms: Removed debug logging left in AggregateFieldDefinitionBuilder.java.
    </action>
    <action dev="MPO" type="fix" fixes-bug="COCOON-1687" >
      CForms: Reverting incompatible change introduced in version 2.1.9.  When binding a widget with value null, XML
      elements are no more deleted.  The behaviour is now the same as in version 2.1.8.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1889" due-to="Jeroen Goubert" due-to-email="jgou@schaubroeck.be">
      CForms: Tiny typo in JavaScriptJXPathBinding.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1678" due-to="Jeroen Reijn" due-to-email="j.reijn@hippo.nl">
      CForms: HTMLArea unable to set target and title to a "link".
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1758" due-to="Carlos Chávez" due-to-email="cchavez@agssa.net">
      CForms: Form locale never used in JXMacros.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1885" due-to="Ard Schrijvers" due-to-email="a.schrijvers@hippo.nl">
      Core: EHDefaultStore returns in the size() method the wrong number of keys.
    </action>
    <action dev="CZ" type="add">
      CForms block: JavaClassValidatorBuilder supports Configurable validator implementations. New AbstractJavaValidator
                    implementation supports generation of customized fail messages.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1882" due-to="Holger Wahlen" due-to-email="hwahlen@pironet-ndh.com">
      Core: ZipArchiveSerializer causes &quot;Too many open files&quot; exception.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1854" due-to="Andrew Stevens" due-to-email="ats37@hotmail.com">
      Browser selector should have Opera before MSIE.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1880" due-to="Conal Tuohy" due-to-email="conal.tuohy@vuw.ac.nz">
      Lucene Block: Allow LuceneIndexTransformer to index large documents (with more than 10k terms).
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1876" due-to="Don Grodecki" due-to-email="don@browsersoft.com">
      XML-DB Block: XMLDBTransformer blows up Saxon.
    </action>
    <action dev="GP" type="fix">
      Switched to the new WildcardMatcherHelper for all wildcard matching which is a rewrite
      of the WildcardHelper.
    </action>
    <action dev="AG" type="update">
      Updated quartz to 1.5.2.
    </action>
    <action dev="AG" type="add" due-to="Ard Schrijvers" due-to-email="a.schrijvers@hippo.nl">
      EHDefaultStore: Allow users to configure disk-persistent parameter. In earlier cocoon
      versions this ehcache parameter was always true. It defines whether or not the disk
      store persists between restarts of the Virtual Machine. The default value is true.
    </action>
    <action dev="CZ" type="fix">
      The predefined variables "parameters" and "cocoon.parameters" now both point to the
      parameters object in JXTemplateGenerator and the template block. (cocoon.parameters did
      point to a properties object).
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1862" due-to="Igor Naumov" due-to-email="igornaumov@hotmail.com">
      HSQLDB Block: Workaround for HSQLDB improper shutdown in SAP NetWeaver.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1864" due-to="Dennis Dam" due-to-email="d.dam@hippo.nl">
      CForms Block: RepeaterJXPathBinding - order of row is inverted.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1861" due-to="Igor Naumov" due-to-email="igornaumov@hotmail.com">
      Naming Block: Check for Null URI in LDAPTransformer.
    </action>
    <action dev="CZ" type="add">
      Add the CoWarp contribution by Carsten Ziegeler from the Osoco open source project (http://osoco.sourceforge.net/cowarp/).
    </action>
    <action dev="CZ" type="update">
      Deprecate session-fw and authentication-fw block. These blocks will be removed in further releases.
    </action>
    <action dev="VG" type="fix">
      Databases: Read CLOBs using getCharacterStream, delegate character decoding
      to the database. Revert to old behavior if clob-encoding parameter is present.
    </action>
    <action dev="CZ" type="add">
      Portal Block: Add support for input modules in start uri for application coplet.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-1247">
      Databases: Support multiple results in SQLTransformer.
    </action>
    <action dev="VG" type="fix" fixes-bug="COCOON-1552">
      Databases: Fix NPE in SQLTransformer in error handling code.
    </action>
    <action dev="VG" type="update">
      Databases: Support CLOBs in SQLTransformer when returned as stored procedure
      parameters, or as columns in a cursor returned by stored procedure.
    </action>
    <action dev="VG" type="fix">
      Databases: Fix reading of the CLOBs in SQLTransformer.
    </action>
    <action dev="AG" type="add" due-to="Carlos Chávez &amp; Eric Meyer" due-to-email="cchavez@agssa.net &amp; emeyer@quoininc.com">
      CForms Block: Add multiple repeater drag &amp; drop dojo sample.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1857" due-to="Brian Vargas" due-to-email="ardvaark-apachebugs@procrastinators.org">
      Set instrumentation manager on child component managers to enable
      instrumentation of all components including sitemap components.
    </action>
    <action dev="AG" type="update">
      Updated dojo to 20060614.
    </action>
    <action dev="CZ" type="fix">
      Fix bug in wildcard matcher where a uri containing a pattern twice did not always match. For example,
      the uri "hallo.xml.xml" did not match "*.xml".
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1848" due-to="Vincent Demay" due-to-email="vincent.demay@anyware-tech.com">
      CForms: Using setRequired in Ajax mode does not generate bu:replace.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1847" due-to="Guillaume Déflache" due-to-email="guillaume@anyware-tech.com">
      AJAX Block: Error popup window not resizable/scrollable.
    </action>
    <action dev="CZ" type="add">
      CForms: Load and save model phase events are now send.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1741" due-to="Freek Segers" due-to-email="freek.segers@nerocmediaware.nl">
      CForms: Output widget does not initialize from &lt;fd:initial-value&gt;.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1744" due-to="Tim Williams" due-to-email="williamstw@gmail.com">
      Template block: NullPointerException.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1489" due-to="Jason Johnston" due-to-email="cocoon@lojjic.net">
      XIncludeTransformer: XInclude transformer does not handle fallback correctly.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1266" due-to="Martin Kuck" due-to-email="martin.kuck@multi-m.de">
      ResourceReader fails to add HTTP headers.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1840" due-to="Guillaume Déflache" due-to-email="guillaume@anyware-tech.com">
      XMLFileModule: file-specific configuration ignored.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1625" due-to="Aleksander Bandelj" due-to-email="aleksander.bandelj@academa.si">
      HTTPRequest: Redundant copying between container and form encoding.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1694" due-to="Pier Fumagalli" due-to-email="pier@betaversion.org">
      Error decommissioning component: org.apache.cocoon.components.store.impl.EHDefaultStore.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1839" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
      exception2html.xslt: &lt;script /&gt; causes IE display problem.
    </action>
    <action dev="BD" type="fix">
      Tour block: SVG samples now use the correct SVG 1.1 namespace.
    </action>
    <action dev="AG" type="add" fixes-bug="COCOON-1515" due-to="Andrew Stevens" due-to-email="ats37@hotmail.com">
      RequestGenerator: Add remoteUser() information.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1110">
      XIncludeTransformer: xi:fallback fail when use parse="text".
    </action>
    <action dev="AG" type="add" fixes-bug="COCOON-1753" due-to="Jason Johnston" due-to-email="cocoon@lojjic.net">
      XInclude transformer uses href fragment rather than xpointer attribute (spec conformance).
      The XInclude 1.0 spec (see http://www.w3.org/TR/xinclude/#include_element) states the following
      about the href attribute:
      <br/>
      'Fragment identifiers must not be used; their appearance is a fatal error.'
      <br/>
      Cocoon's XIncludeTransformer incorrectly allows xpointer fragments to be specified using
      a fragment identifier in the href attribute. The correct way to support xpointers is the
      'xpointer' attribute on xi:include, which the transformer does not currently recognize.
    </action>
    <action dev="AG" type="update">
      Cocoon htmlunit testcases are now compatible with htmlunit 1.8.
    </action>
    <action dev="AG" type="update">
      Updated xmlunit to 1.0 and junit to 3.8.2.
    </action>
    <action dev="SG" type="add">
      Added calculated fields implementation.
    </action>
    <action dev="SG" type="update">
      Updated XReporter expressions to latest version (see http://issues.cocoondev.org/browse/XRP-113 ).
    </action>
    <action dev="CZ" type="add">
      CForms: Java event listeners can now implement Configurable, LogEnabled, and Contextualizable.
    </action>
    <action dev="BRD" type="fix">
      CForms: added a Repeater.moveRow2(from, to) method, which in contrast to the
      Repeater.moveRow method inserts the row at the exact to-index specified.
    </action>
    <action dev="BD" type="fix" due-to="Vince" due-to-email="vince@indo-chine.org">
      FOP block depends on XSP block (for samples)
    </action>
    <action dev="RG" type="update">
      Portal: PageLabels can now be configured to be part of the url.
    </action>
    <action dev="RG" type="update">
      Made the pool-max values in the html block's generators externally configurable. Made sitemap
      reloading externally configurable. Made pipeline amd encodeURLTransformer pool-max values
      externally configurable.
    </action>
    <action dev="BRD" type="fix">
      CForms/Ajax: when the Ajax-update contained an empty textarea, IE failed to parse this correctly,
      displaying '&lt;/span>&lt;/div>' in the textarea. Fixed by adding an explicit closing tag for
      textareas.
    </action>
    <action dev="BRD" type="fix">
      CForms: widgets in unions lost their value when switching between union cases.
    </action>
    <action dev="AG" type="update">
      Updated axis to 1.4 and commons-collections to 3.2.
    </action>
    <action dev="SG" type="add" fixes-bug="COCOON-1804">
      Added a lightweight FOM_SimpleCocoon class, and placed it in the javascript scope when there isn't
      already a scope defined. This way, even when using javaflow, you have access to the cocoon
      object (with request etc..) from javascript snippets in definition.
    </action>
    <action dev="SG" type="add" fixes-bug="COCOON-1782">
      Added CSS classes in cocoon forms default XSLs.
    </action>
    <action dev="AG" type="update">
      Updated ehcache to 1.2.
    </action>
    <action dev="RG" type="fix" fixes-bug="COCOON-1742">
      The JDK 1.4 version of the EncodeURLTransformer did not work properly as it was not matching just the
      beginning of the string as the Jakarta-regexp version does. The transformer was corrected to only match
      the beginning of the string.  In 2.1.9 this error can be circumvented by configuring the transformer and
      adding "*" to the end of each pattern.
    </action>
    <action dev="AS" type="add" fixes-bug="COCOON-1845" due-to="Maurizio Pillitu" due-to-email="m.pillitu@thebug.it">
      As with all the AbstractTextSerializer based serializers, the XHTMLSerializer should handle the omit-xml-declaration to not put the XML declaration as first line of the serialized document.
      This prevents many rendering problems in Internet Explorer. Default behaviour is to send the xml declaration as before.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1511" due-to="James Bates" due-to-email="james.bates@amplexor.com ">
      Commandline interface: the user-agent is now correctly set in the request headers (and not in the request parameters).
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1716">
      RandomNumberModule: does not returns random number in the range (min,max) as expected.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1721" due-to="Georg Hüttenegger" due-to-email="georg.huettenegger@gmx.at">
      Performance Issue/JavaScriptFlowScript: If &lt;reload-scripts&gt; is set to false,
      don't check for last modification time of javascript source files.
    </action>
    <action dev="AN" type="fix">
      XSP block: Fix regression introduced in 2.1.8 that under specific circumstances logicsheets
      were not applied, leading to compilation errors.  This manifested itself only if
      a) two XSPs referred to the same custom logicsheet by a relative location path,
      b) the custom logicsheet used another logicsheet, and
      c) the built-in logicsheet's namespace was not mentioned in xsp:page.
      The compilation errors occurred always when calling the second XSP for the first time.
      Fix also race condition which could lead to similar XSP compilation errors under high load
      when accessing the same logicsheet for the first time.
    </action>
    <action dev="CZ" type="fix">
      Template block: Make the template block usable with JDK 1.3+ and enable it by default.
    </action>
    <action dev="JBQ" type="fix">
      CForms: Fix inplace editing samples
    </action>
    <action dev="CZ" type="add" fixes-bug="COCOON-1820">
      CForms: Add id, state and listening attributes to the transformed form-template element (jx macros
              and forms transformer).
    </action>
    <action dev="AN" type="add">
      XSP block: Use private methods to call start/endElement in xsp.xsl.
      That generates smaller bytecode allowing to compiler larger XSPs before hitting the
      64k limit for the size of the generate() method.
    </action>
    <action dev="SG" type="add" fixes-bug="COCOON-1781 COCOON-1685">
      Forms block: modified ProcessingPhase to add a PROCESSING_INITIALIZE phase instead of the spurious
      double READ_FROM_REQUEST_VALUE sent before. Made a ProcessingPhaseListener configurable from
      form definition with on-processing-phase and adapted the JavaScript widget listener to support
      processing phase events.
    </action>
    <action dev="SG" type="add" fixes-bug="COCOON-1801">
      Forms block: added repeater events. Repeater now sends row added, deleted etc.. events.
      The listener can be added in definition with an on-repeater-modified element. Added support
      for these events in JavaScript listener.
    </action>
    <action dev="SG" type="fix" fixes-bug="COCOON-1844">
      Passing the default locale while parsing initial-value on a form if no locale attribute was specified.
    </action>
  </release>
  <release version="2.1.9" date="April 7 2006">
    <action dev="JBQ" type="fix">
      Fix caching problems in ImageReader: image was not regenerated when allow-enlarging or fit-uniform sitemap
      parameters were changed
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1809" due-to="Rob Berens" due-to-email="rberens@osirion.nl">
      CForms: Added event handling for group of type "choice" (allow formsOnShow attribute)
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1808" due-to="Rob Berens" due-to-email="rberens@osirion.nl">
      CForms: Added method StaticSelectionList.addItem(Object value, String label)
    </action>
    <action dev="CZ" type="add">
      CForms: add dynamic id to Form object. This allows to use the same form model several times on
              the same page, for example if the form is used in a portal.
    </action>
    <action dev="RG" type="add">
      Configuration values can now be set externally. The properties that can be modified can be identified by
      looking at the property files in WEB-INF/properties. The properties can be overriden by specifying them as
      system properties when invoking Cocoon or by placing them in a property file and identifying its location via
      the "org.apache.cocoon.settings" system property. The default Cocoon script sets this to ./cocoon.properties.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1814" due-to="Mark Lundquist" due-to-email="mlundquist2@comcast.net">
      Deprecated method o.a.c.environment.Environment.getOutputStream() still used internally.
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1639" due-to="Andrew Stevens" due-to-email="ats37@hotmail.com">
      Added the NekoHTMLTransformer.  Updated the NekoHTMLGenerator's setup bits to allow for setting parser features as
      well as properties, and provided a sample neko.properties configuration file.
    </action>
    <action dev="AG" type="update">
      Updated asm to 2.2.1, asm-util to 2.2.1 groovy to 1.0-jsr-05 and antlr to 2.7.6.
    </action>
    <action dev="BRD" type="add" fixes-bug="COCOON-1806" due-to="Simone Gianni" due-to-email="s.gianni@thebug.it">
      CForms: added an fd:java validator to make it easy to implement custom
      WidgetValidator's in Java (for use in the form definition).
    </action>
    <action dev="AG" type="update">
      Updated commons-io to 1.2.
    </action>
    <action dev="SW" type="add">
      Ajax: rewrote everything with Dojo, added a new "PartialLink" widget using
      the "target" attribute on links to partially update the page.
    </action>
    <action dev="SW" type="add">
      Forms: many Ajax-related new features.<br/>
      <ul>
        <li>Rewrote almost everything using Dojo</li>
        <li>Added a Dojo widget for repeaters, allowing drag and drop reordering of
            rows (but not on Safari) and clicking in rows to select them.</li>
        <li>Added a Dojo widget for inplace editing.</li>
        <li>Added a Dojo widget for suggestion-lists. It works in relation with a new
            &lt;fd:suggestion-list&gt; element in form definitions.</li>
        <li>Added a new selection/suggestion-list implementation based on a JS code
            snippet in the form definition.</li>
        </ul>
    </action>
    <action dev="BRD" type="update">
      Forms: updated Daisy HTML cleaner component to version 1.4.1 (was 1.1).
    </action>
    <action dev="BRD" type="add">
      Added the template block from Cocoon 2.2. This block contains a refactored implementation
      of the JXTemplate generator, which should be compatible with the existing one and is thus
      usable as a drop-in replacement. It should provide better performance, and some new features,
      such as Javascript expressions using @{...} syntax. It is used by having type="newjx"
      on map:generate, or by changing the mapping of the "jx" generator type to the new
      implementation class.
    </action>
    <action dev="JHS" type="fix" fixes-bug="COCOON-1728" due-to="Paul Focke" due-to-email="paul@outerthought.org">
      Apples can now access components declared in mounted sitemaps.
    </action>
    <action dev="AG" type="update">
      Updated xercesImpl to 2.8.0 and xml-apis to 1.3.03.
    </action>
    <action dev="JHS" type="fix" fixes-bug="COCOON-1779" due-to="Andrew Stevens" due-to-email="ats@hotmail.com">
      JUnit tests for LocaleAction.
    </action>
    <action dev="JHS" type="fix" fixes-bug="COCOON-1335" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
      Incompatible change for RoleFilterTransformer: Removed dependency on FilterTransformer. Be careful to update your
      sitemap to reflect this. Also thanks to Andrew Stevens for updating the patch against recent branch and Doug
      Bennet for the reminder.
    </action>
    <action dev="AS" type="add" fixes-bug="COCOON-1789" due-to="Simone Gianni" due-to-email="s.gianni@thebug.it">
      Add Char datatype to forms.
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1729" due-to="Rolf Metternich" due-to-email="rolf.metternich@ahafabrik.de">
      Allow to add multiple rows at once to a Repeater using &lt;fd:repeater-action command="add-row" number-of-rows="5" ...&gt;
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1796" due-to="Freek Segers" due-to-email="freek.segers@nerocmediaware.nl">
       TraversableGenerator calls resolveURI() twice but release() only once.
    </action>
    <action dev="CZ" type="fix">
      Portal Block: Remove "external" attribute from coplet links.
    </action>
    <action dev="CZ" type="fix">
      Portal Block: Fix handling of several instances of the same portlet where all instances
                    showed the contents of the last portlet instance.  This only  applies to JSR-168 portlets,
                    not to coplets.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1707" due-to="Sébastien Grimault" due-to-email="sgrimault@jouve.fr">
      Allow configuration of initial context in LDAPTransformer.  Example:
      &lt;ldap:initial-context name="com.sun.jndi.ldap.connect.timeout" value="5000"/&gt;
    </action>
    <action dev="DC" type="add" fixes-bug="COCOON-1206" due-to="Miles Elam" due-to-email="miles@geekspeak.org">
       html block: Add CleanupTransformer. Enables indent html, add relevant line-breaks,
       and remove any namespaces that are not wanted.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1371" due-to="George Georgovassilis" due-to-email="georgeg@open.gr">
      Allow ImageReader to process other image formats than JPEG
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1785" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
       Form block: I18nMessage - null parameter values causes NPE.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1786" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
       Ajax block: BrowserUpdateTransformer can get into invalid state - must override recycle().
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1279">
      Fix caching-point pipelines.  Remove the undocumented smart-caching parameter.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1066" due-to="Antonio Fiol" due-to-email="antonio.fiol@gmail.com">
      LDAPTransformer can optionally output the DN of every returned entry as an
      attribute.  To enable, use &lt;ldap:dn-attribute&gt;dn&lt;/ldap:dn-attribute&gt;
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1705" due-to="Warrell Harries" due-to-email="toulouse@vodafone.net">
      Fix handling of &lt;ldap:execute-replace&gt; causing NPE in LDAPTransformer
    </action>
    <action dev="CZ" type="update">
      JCR block: To build the JCR block, the jcr-api-1.0.jar has to be downloaded by the user
                 prior to building the block. Have a look at the readme in the jcr block for
                 more information.
    </action>
    <action dev="RG" type="update">
      Mark Forms block stable. Make dream team sample work with it.
    </action>
    <action dev="RG" type="fix">
      Portal: Corrected problem with many ClassNotFoundExceptions occurring inside of the class loader by eliminating the
      usage of Castor deriveByClass in portal configurations. This change significantly improves performance of the portal
      login.
    </action>
    <action dev="RG" type="fix" fixes-bug="COCOON-1742">
      When compiling with Java 1.4 or higher, EncodeURLTransformer was modified to use JDK 1.4 regular expressions
      instead of Jakarta regexp improving performance and avoiding possible stack overflows.
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1778" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
       Cron block: NPE calling QuartzJobScheduler.fireJob if the job is a CronJob.
    </action>
    <action dev="JBQ" type="fix">
      In cocoon.sh, use shell built-in command "exec" to replace sh's process
      instead of forking a new process for executing the "java" command, useful
      for proper service management
    </action>
    <action dev="BRD" type="add" >
      CForms: binding: implemented support for a new attribute "jxpath-factory"
      (can be used on any binding element) to change the factory used by JXPath
      when it needs to create new paths (currently this is fixed to the
      DOMFactory). This is useful when using non-DOM, non-bean data models.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1344" due-to="Jonas Ekstedt" due-to-email="ekstedt@ibg.uu.se">
      CForms: call dispose() on every DatatypeBuilder if needed
    </action>
    <action dev="JBQ" type="add" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      CForms: Java event listeners can now implement Serviceable to get a ServiceManager and Initializable.
    </action>
    <action dev="JBQ" type="fix" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      CForms: when building the query string in AJAX mode, do not include &lt;input type="button"&gt;
    </action>
    <action dev="AG" type="fix" fixes-bug="COCOON-1771" due-to="Eric Meyer" due-to-email="eric.meyer@quoininc.com">
      cocoon.ajax.Fader runtime error when style uses abreviated form #ccc in IE6.0sp2.
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1301" due-to="Niclas Hedhman" due-to-email="niclas@apache.org">
      Added the imageop block, an Image Operation Reader providing a fairly
      flexible and powerful Image Reader that is capable of performing a stack
      of Effects, such as Scaling, color manipulation and coordination
      transforms, in a pluggable manner.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1465">
      Add WEB-INF/classes to loader's classpath for cli and precompile
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1715">
      Allow to run Cocoon CLI by adding servlet.jar in the classpath.  Turn off cli's debug messages by default.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1681" due-to="Antonio Fiol" due-to-email="antonio.fiol@gmail.com">
      Fix a bug in DirectoryGenerator: when using cocoon: changes were not detected
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1238" due-to="Bart Molenkamp" due-to-email="b.molenkamp@bizzdesign.nl">
      CForms: Incompatible change for &lt;fb:custom&gt;: the base context is now passed instead of the relative context.
      <strong>Please change corresponding classes and use getXpath() to create the relative context yourself</strong>.
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1238" due-to="Bart Molenkamp" due-to-email="b.molenkamp@bizzdesign.nl">
      CForms: Java classes used in &lt;fb:custom&gt; can now implement Serviceable to get a ServiceManager
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1558" due-to="Jochen Kuhnle" due-to-email="werbung@kuhnle.net">
      CForms: fix &lt;ft:validation-error&gt; handling when used with FormsTemplateTransformer
    </action>
    <action dev="AG" type="update">
      Updated db-ojb to 1.0.4.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1695">
       Allow AbstractTextSerializer to be used with Saxon
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1704">
       Disable Error Message when SAXON is used as the XSLT transformer
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1699" due-to="Paul Focke" due-to-email="paul@outerthought.org">
       CForms: Enable MultiValueFields with checkbox style to be disabled
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1719">
       IncludeTransformer: source must not be cached if an error occurs
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1651" due-to="Tom Green" due-to-email="tom@slaxicon.org">
       Fix a bug in CForms: Null locator in EffectPipe triggers NPE
    </action>
    <action dev="JBQ" type="add" fixes-bug="COCOON-1170" due-to="Simon Mieth" due-to-email="simon.mieth@t-online.de">
      Added a "precompile" target for the cocoon startup script.  It precompiles
      all XSPs found in the webapp.
    </action>
    <action dev="CZ" type="fix" fixes-bug="COCOON-1698" due-to="Guillaume Deflache" due-to-email="guillaume@anyware-tech.com">
      Portal block: Fix handling of caching-global-use-attributes bug in CachingCopletAdapter.
    </action>
    <action dev="AG" type="update">
      Updated log4j to 1.2.13, quartz to 1.5.1.
    </action>
    <action dev="JBQ" type="add">
      CForms: Added the sendForm(uri, viewData) function to Form.js, useful to display a form without the need to create
      a continuation.  Useful along with the new processForm(viewData) function that updates the form values from the
      current request.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1720">
       Fix a bug in CForms: Form.js overwriting the CFormsInstance attribute in viewData
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1736" due-to="Daniele Madama" due-to-email="d.madama@pro-netics.com">
       Fix a bug in CForms library when extending a field
    </action>
    <action dev="JBQ" type="fix" due-to="Philippe Laplanche" due-to-email="philippe.laplanche@horus-si.com">
       CSVGenerator now looks for the sitemap parameter "process-headers" (with
       the s at the end) as told in the documentation.  Accepts a new sitemap
       parameter "max-records" which allows to limit the number of records to
       read.  Fixes a caching bug: the same result was returned notwithstanding
       the modification of separator or escape character.
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1610" due-to="Thomas Lutz" due-to-email="mattom@gmx.at">
       Add ids to CForms validation messages, so that they can be unit-tested
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1627" due-to="Aurélien DEHAY" due-to-email="ad@zorel.org">
      Permit the choice of attributes to augment in AugmentTransformer
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1621" due-to="Marco Rolappe" due-to-email="m_rolappe@web.de">
      Allow to use a &lt;fd:value-count> validation rule with &lt;fd:multivaluefield>
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1731" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      Allow to extend JXPathBinding outside the org.apache.cocoon.forms.binding package
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1687" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      When saving a cform, remove xml elements if the value of the widget is null.
      Symptom is eg date field initialized to 1970-01-01
    </action>
    <action dev="JBQ" type="fix" fixes-bug="COCOON-1259">
      XMLDBTransformer can use username/password to access XMLDB.
      Note that DatabaseManager.getCollection() accepts null values for user and
      password, see
      http://xmldb-org.sourceforge.net/xapi/api/org/xmldb/api/DatabaseManager.html#getCollection(java.lang.String,%20java.lang.String,%20java.lang.String)
    </action>
   <action dev="CZ" type="add">
      Portal Block: Provide user name to portlets.
    </action>
   <action dev="CZ" type="fix">
      Portal Block: Make wsrp event adapter thread safe, fix error in disposing wsrp
                    producer and update portals bridges to 1.0.
    </action>
   <action dev="AG" type="update">
     Replace deprecated library excalibur-io 1.1 with commons-io 1.1.
     The file excalibur-io-1.1.jar is no longer part of the cocoon distribution.
     Note: All the packages under org.apache.avalon.excalibur.io.* can be found under
     org.apache.commons.io.*. Please update the imports in your code.
   </action>
   <action dev="AG" type="update">
      Updated asm to 2.1, asm-util to 2.1 and groovy to 1.0-jsr-04.
    </action>
    <action dev="AN" type="fix">
      XSP block: Reintroduce locally scoped xspAttr in xsp.xsl to improve backwards compatibility for pre-2.1.9
      logicsheets.  (Suggestion by Vadim Gritsenko).
    </action>
    <action dev="JH" type="fix" fixes-bug="COCOON-1700">
      I18n: XMLResourceBundle checks now for both the new and the old namespace.
    </action>
    <action dev="SW" type="add">
      XMLDB: heavy refactoring. The source is now traversable (like file and jcr) and has two specific
      methods: <code>createId</code> to create a new document ID for a collection, and and <code>getBinaryOutputStream</code>
      to write binary data to the database.
    </action>
    <action dev="AN" type="add">
      XSP block: Instrument {#expr} interpolation to produce Cocoon stacktrace for parse errors.
    </action>
    <action dev="CZ" type="fix">
      Portal block: Fix possible encoding problems with JSR 168 portlets.
    </action>
    <action dev="CZ" type="add">
      Portal block: Support external form actions in HTML transformation.
    </action>
    <action dev="AN" type="fix" fixes-bug="COCOON-1691" due-to="Feliciano Borrego" due-to-email="felibv@gmail.com">
      Database block: Renaming AttributeImpl xspAttr to _xspAttr was not applied to ESQL logicsheet.
      That caused compliation errors in all XSPs using it.
    </action>
    <action dev="MPF" type="add">
      Core: Error handling fixed in map:aggregate (ContentAggregator). Now, no content is prepended to the
      result of any error handling pipeline.
    </action>
    <action dev="MPF" type="add">
      Core: Caching pipelines (CachingProcessingPipeline, ExpiresCachingProcessingPipeline, ...) will now check
      if the content they are trying to generate is already being generated by another caching pipeline.
      If so, they will wait for that content to appear in the Cache and use that content instead of
      re-generating it and possibly causing high load on the server.
    </action>
    <action dev="MPF" type="add">
      Core: ExpiresCachingProcessingPipeline will not set up a pipeline anymore when a cached
      version of it is available. Any cached response will now serve quickly, no matter how
      complex the actual pipeline is.
    </action>
  </release>
  <release version="2.1.8" date="November 18 2005">
    <action dev="AG" type="fix" fixes-bug="COCOON-1365" due-to="Maurice Jumelet" due-to-email="maurice@jumelet.net">
      POST method in cinclude:includexml is broken.
    </action>
    <action dev="CZ" type="update">
      Forms block: If a field is required or not can be changed during form processing.
                   Applied patch by Philipp Schmidt (philipp.schmidt@gmail.com).
    </action>
    <action dev="SW" type="update">
      Forms block:
      <ul>
         <li>Automatic submit-on-change. Fields which have value-changed listeners are now by default submitted
             automatically, meaning adding <code>&lt;fi:styling submit-on-change="true"/&gt;</code> is no
             more necessary. For those cases where a field with event listeners should not be automatically
             submitted, set <code>submit-on-change</code> to <code>false</code>.
         </li>
         <li>Introduce a naming convention for stylesheet-generated IDs: they should all start with the
             widget's ID followed by a ":" and a name. The use of ":", which is forbidden in widget names,
             avoids conflicts with other widgets in the form. All stylesheets have been updated to this convention.<br/>
             This change can break applications that use document.getElementById() to access some of the generated
             elements (notably "foo-input" that's used for the &lt;input&gt; of the "foo" widget), but this notation is now
             a public contract that will be taken care of in the future.
         </li>
         <li>Along with field, aggregatefield and booleanfield, you can now add value-changed listeners on output
             and upload widgets.
         </li>
         <li>Widget validators can now return not only a boolean value, but also a String or an XMLizable (such as
             I18nMessage) which are used to set a validation error on the widget.
         </li>
         <li>The <code>&lt;fi:styling submit-on-change="output"/&gt;</code> is no more available, as it was
             intrinsically broken as a field whose value is not submitted is reset. Use the "output" widget state to
             achieve the same effect.
         </li>
      </ul>
    </action>
    <action dev="SW" type="fix" fixes-bug="36381" due-to="Jason Johnston" due-to-email="cocoon@lojjic.net">
      Forms block: Fix HTML rendering of booleanfields in output state.
    </action>
    <action dev="SW" type="fix" fixes-bug="37005" due-to="Philipp Schmidt" due-to-email="philipp.schmidt@gmail.com">
      Forms block: Fix ArrayIndexOutOfBoundException in the library subsystem.
    </action>
    <action dev="CZ" type="fix">
      Portal Block: Only remove layout if a layout remove event is fired (and not with each layout event).
    </action>
    <action dev="CZ" type="fix" fixes-bug="36471" due-to="Armaz Mellati" due-to-email="armaz@uninett.no">
      Fix bug with session:getxml when path is a text-element and IncludeXMLConsumer
      when including text nodes.
    </action>
    <action dev="CZ" type="update">
      Update Pluto to final release 1.0.1.
    </action>
    <action dev="CZ" type="update">
      Portal block: Deprecate AbstractUserProfileManager and AuthenticationProfileManager.
    </action>
    <action dev="CZ" type="fix" fixes-bug="33152" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      Portal block: Add title to basket item in the portal sample.
    </action>
    <action dev="CZ" type="fix" fixes-bug="37115,29405" due-to="Philippe Gassmann" due-to-email="phil@anyware-tech.com">
      Portal block: Fix history aspect when coplets are used.
    </action>
    <action dev="VG" type="fix" fixes-bug="35905">
      Do not flush and close output stream, servlet container
      will take care of it.
    </action>
    <action dev="CZ" type="add">
      Portal Block: Include coplet instance id in window renderer; ignore
      javascript: urls during url rewriting.
    </action>
    <action dev="RG" type="fix" fixes-bug="32784">
      Portal Block: Allow Full screen mode to show navigation.
    </action>
     <action dev="RG" type="fix" fixes-bug="34802" due-to="Roy Huang" due-to-email="roy_huang@nbmgroup.com">
      Portal Block: PageLabelLinkService generated the wrong url when using 3 layer tabs with showallnav.
    </action>
    <action dev="VG" type="fix" fixes-bug="30894">
      Databases block: Support stored procedures returning result set in SQLTransformer.
    </action>
    <action dev="BD" type="add">
      Bricks-cms example application created (distributed separately), see http://wiki.apache.org/cocoon/BricksCms
    </action>
    <action dev="LG" type="update">
      Improved blocks build exclusion/inclusion. See blocks.properties for more info.
    </action>
    <action dev="VG" type="update">
      I18n: Refactored XMLResourceBundle to use transient store instead of
      private cache. Added reload check interval parameter. Support dynamic
      additions and removals of resource bundles, without need to restart
      Cocoon.
    </action>
    <action dev="CZ" type="update">
      JavaDocs and documentation are no longer copied to the webapp.
    </action>
    <action dev="BD" type="update" due-to="Sandor Spruit" due-to-email="sandor@cs.uu.nl">
      build.sh: use --noconfig option to avoid problems with local ant settings.
      Does not apply to build.bat, windows ant scripts do not have this option.
    </action>
    <action dev="BD" type="update">
      cocoon.sh and cocoon.bat (done by CZ): "servlet" is now the default action.
    </action>
    <action dev="VG" type="update">
      Update Avalon framework to 4.3, Avalon LogKit to 2.1, Excalibur Instrument to 2.1,
      Excalibur Logger to 2.1, Excalibur Pool to 2.1, Excalibur SourceResolve to 2.1,
      Excalibur Store to 2.1, Excalibur XMLUtils to 2.1 and Excalibur Database to 2.1.
    </action>
    <action dev="JHS" type="fix" fixes-bug="30796" due-to="Max Pfingsthorn" due-to-email="m.pfingsthorn@hippo.nl">
      Fix OutofBoundsException when form element does not have an action attribute
    </action>
    <action dev="RG" type="fix" fixes-bug="34802" due-to="Roy Huang" due-to-email="roy_huang@nbmgroup.com">
      Portal Block: PageLabelLinkService generated the wrong url when using 3
      layer tabs with showallnav.
    </action>
    <action dev="SW" type="add">
      CForms block: new Tree widget, heavily inspired by Swing's JTree. Features Ajax, selection listeners,
      and a lightweight data model with two implementations: a generic one, and a source-based one to build
      file explorers.
    </action>
    <action dev="JHS" type="add" fixes-bug="36781" due-to="Thomas Lutz" due-to-email="mattom@gmx.at">
      CForms: The repeater widget now supports min and max-size attributes.
    </action>
    <action dev="VG" type="add">
      Moved support for zip: sources from scratchpad into the core.
    </action>
    <action dev="SW" type="add" due-to="Jean-Christophe Kermagoret" due-to-email="jck@bluexml.org">
      CForms: Small change to the calendar styling which now shows dropdowns
      to choose the time when the date format includes time also.
    </action>
    <action dev="AG" type="update">
      Updated quartz to 1.5.0.
    </action>
    <action dev="JH" type="update" fixes-bug="28056">
      Midi Block: Marked as stable.
    </action>
    <action dev="CZ" type="update" fixes-bug="32994" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
      Portal Block: Provide sample for caching uri coplet adapter (Gallery coplet).
    </action>
    <action dev="CZ" type="fix">
      Portal Block: Add missing interface CopletInstanceEvent to FullScreenCopletEvent.
    </action>
    <action dev="JH" type="update" fixes-bug="35475" due-to="Mark Lundquist" due-to-email="mlundquist2@comcast.net">
      CForms: Improved error message for wrong content type on upload.
    </action>
    <action dev="JH" type="fix" fixes-bug="35162" due-to="Jochen Kuhnle" due-to-email="werbung@kuhnle.net">
      XSP: EclipseJavaCompiler chokes on warnings. Changed to errors.
    </action>
    <action dev="JH" type="fix" fixes-bug="33318" due-to="Dan Durkin" due-to-email="ddurkin@scilearn.com">
      CForms: Fixed JavaScript error in forms-lib.js when using keyword <code>undefined</code> and Mac IE 5.0.
    </action>
    <action dev="AG" type="add" fixes-bug="31600" due-to="Jason Johnston" due-to-email="apache.bugs@lojjic.net">
      Caching support for XInclude Transformer
    </action>
    <action dev="SW" type="add" due-to="Max Pfingsthorn" due-to-email="max.pfingsthorn@gmail.com">
      CForms block: new form libraries features. You can now define form definition and binding
      library files and import them for reuse and/or extension in regular definition and binding files.
      <br/>
      This is the result of the Max Pfingsthorn's Google Summer of Code (GSoC) project.
    </action>
    <action dev="SW" type="update">
      When the upload size exceeds the configured limit, a RejectedPart is associated to the request
      rather than throwing a exception at the servlet level. This allows the application to handle
      oversized uploads and provide meaningful messages. The upload widget in CForms has been updated
      to use this new feature.
      <br/>
      Uploads are now allowed in the provided web.xml, but with a low 100 kbytes limit to allow samples
      to be functional without endangering security.
    </action>
    <action dev="AG" type="update">
      Updated log4j to 1.2.12, asm to 2.0, asm-util to 2.0,
       groovy to 1.0-jsr-03.
    </action>
    <action dev="JHS" type="fix" fixes-bug="35538" due-to="Mark H. Butler" due-to-email="mark-h.butler@hp.com">
      Deli block updated to use the latest revision of DELI. This uses a more robust method of loading configuration
      files that should ensure DELI works on different apps servers or deployed as a WAR.
    </action>
    <action dev="JHS" type="fix" fixes-bug="29712" due-to="Gunnar Brand" due-to-email="g.brand@interface-business.de">
      MultipartParser now removes partially uploaded files
    </action>
    <action dev="JHS" type="add" fixes-bug="35462" due-to="Luca Morandini" due-to-email="lmorandini@ieee.org">
      Added ImageMap widget.
    </action>
    <action dev="JHS" type="fix" fixes-bug="36326" due-to="Eric Caron" due-to-email="eric@plauditdesign.com">
      Added percentage-dimensions and jpeg quality handling to the ImageReader.
    </action>
    <action dev="LG" type="fix" fixes-bug="35845" due-to="Henric Mueller" due-to-email="henric@trillian.se">
      JXTG: jx:formatDate and jx:formatNumber allows for specifying locale string instead of a Locale object
    </action>
    <action dev="PF" type="add">
      Added a new "validation" block abstracting the concept of XML validation and providing access to schemas
      and validation tools from within Cocoon pipelines and/or Cocoon components. As of right now, the
      "validation" block supports the RELAX-NG grammar using JING and the XML-Schema grammar using Xerces.
    </action>
    <action dev="SW" type="add">
      Add a "cocoon.exit()" method to flowscript, which allows to exit the current flowscript invocation without
      creating a continuation.
    </action>
    <action dev="SW" type="fix" fixes-bug="35575" due-to="Jean-Baptiste Quenot" due-to-email="jbq@anyware-tech.com">
      XMLdb block: Don't rely on the sitemap components to stream the contents of a xmldb source.
    </action>
    <action dev="SW" type="fix" fixes-bug="35574" due-to="Jean-Baptiste Quenot" due-to-email="jbq@anyware-tech.com">
      CForms block: Escape apostrophes in validation messages formatted as JavaScript alerts.
    </action>
    <action dev="AG" type="fix" fixes-bug="36373" due-to="Johan Stuyts" due-to-email="j.stuyts@hippo.nl">
      getTime(...) of CocoonLogFormatter implemented incorrectly
    </action>
    <action dev="VG" type="update">
      SourceWritingTransformer supports all allowed nodes when using
      <code>source:write</code> to create new document.
    </action>
    <action dev="VG" type="update">
      LocaleMatcher can save resulting locale into request, session or cookie
      (if configured).
    </action>
    <action dev="CZ" type="add">
      Portal block: Add WSRP consumer support (through WSRP4J).
    </action>
    <action dev="AG" type="update">
      Updated hsqldb to 1.8.0.2.
    </action>
    <action dev="CZ" type="fix">
      Portal block: Fix bugs in CachingURICopletAdapter - store cache information in temporary attributes.
                    This bug fix introduces incompatible changes: the cache validity attribute is not
                    used anymore, use the cache temporary attribute instead and update your code to
                    use temporary attributes instead of (persistent) attributes.
    </action>
    <action dev="AG" type="update">
      Updated jakarta-regexp to 1.4.
    </action>
    <action dev="CZ" type="add">
      Portal block: Allow portlet adapter to stream html content through the pipeline using the NekoHTML parser.
    </action>
    <action dev="CZ" type="add" fixes-bug="36240" due-to="Jens Maukisch" due-to-email="jmaukisch@s-und-n.de">
      Portal block: Use OJB and the HSQLDB for authentication of the portal sample.
    </action>
    <action dev="AN" type="fix">
      XSP block: Move AttributeImpl in xsp.xsl to class scope.
      That allows top-level xsp:logic to define markup generating methods.
      Variable xspAttr renamed to _xspAttr to be avoid breaking existing
      XSPs which already use that trick.
    </action>
    <action dev="AN" type="fix">
      XSP block: Add xsp:expr and various other contexts where text must be
      passed through XSLTExtension:escape in order to preserve non-ASCII
      characters in Java string constants independently of the XSP source file
      and compiler expected encodings.
    </action>
    <action dev="VG" type="update">
      Faces block: Updated MyFaces libraries to the SVN r233484, get rid of patched
      version.
    </action>
    <action dev="CZ" type="add">
      Portal block: Add support for portal bridges and add CoWarp for authentication.
    </action>
    <action dev="CZ" type="add">
      Portal block: Add global caching to caching uri adapter.
    </action>
    <action dev="AG" type="update">
      Updated xalan to 2.7.0.
    </action>
    <action dev="AG" type="add">
      Add geronimo-specs-javamail-1.3.1-rc5 and geronimo-spec-activation-1.0.2-rc4.jar. This jars replace mock classes for mail block.
    </action>
    <action dev="SW" type="fix">
     JXTemplate: ensure JXPath expressions can use namespace prefix mappings declared in the template document.
    </action>
    <action dev="CZ" type="update">
     Updated Axis to 1.2.1 and wsdl4j to 1.5.1.
    </action>
    <action dev="AG" type="update">
      Updated xercesImpl to 2.7.1, xml-apis to 1.3.02, log4j to 1.2.11, nekohtml to 0.9.5,
      geromino-spec-jms and geronimo-spec-jta to M3.
    </action>
    <action dev="BD" type="update">
      Webapp context is now configurable when starting with the included Jetty webserver. Setting
      JAVA_OPTIONS=-Dcontext=blah/, for example will make the Cocoon webapp available at
      /blah/ instead of / which stays the default.
    </action>
    <action dev="SW" type="update">
      Update Rhino+continuations so that JavaScriptException has the same API as the official 1.6 version. This
      is allows to access location and nested exceptions for Cocoon stacktraces.
    </action>
    <action dev="SW" type="fix">
      Complete refactoring of error handling in TraxTransformer and XSLTProcessor so that actual error messages
      are displayed rather than the useless RuntimeException usually reported by Xalan. These messages include
      both stylesheet compilation errors and warnings, and outputs of <code>&lt;xsl:message terminate="yes"&gt;</code>.
      <br/>
      Using this feature requires to change the XSTLProcessor class in <code>cocoon.xconf</code> to
      <code>org.apache.cocoon.components.xslt.TraxProcessor</code>.
    </action>
    <action dev="AN" type="add">
      XSP block: Extend {#expr} interpolation parser to understand {}, "}", '}'
      as not being the closing brace.
      The previously implemented mechanism #} to escape braces within the
      statement is no longer supported.
    </action>
    <action dev="SW" type="add">
      Added Cocoon stacktraces. This is based on location classes in the new org.apache.cocoon.util.location package
      and a refactoring of the exception management to attach locations to exceptions.
    </action>
    <action dev="AG" type="update">
      Updated hsqldb to 1.8.0.
    </action>
    <action dev="AN" type="add">
      XSP block: Implement {#expr} interpolation also for logicsheets.
    </action>
    <action dev="SW" type="add">
      New org.apache.cocoon.util.location package, providing utilities to track locations in XML documents and
      the objects built from these documents.
    </action>
    <action dev="SW" type="fix" fixes-bug="35618" due-to="Jean-Baptiste Quenot" due-to-email="jbq@anyware-tech.com">
      Mail block: Allow any of the Cocoon-provided protocols to be used for attachments in SendMailTransformer.
      This means that "cocoon:" URLs are no more rewritten as external http requests.
    </action>
    <action dev="CZ" type="add" fixes-bug="35521" due-to="Mark Lundquist" due-to-email="mlundquist2@comcast.net">
      Added the <code>empty:</code> source than either generates empty documents
      or documents containing just a root node.
    </action>
    <action dev="CZ" type="fix" fixes-bug="35457" due-to="Doug Bennett" due-to-email="dbennett1556@netscape.net">
      Fix NPE in RequestGenerator when request.getHeaderNames() returns null.
    </action>
    <action dev="CZ" type="fix" fixes-bug="29506" due-to-email="tobias@lentus.se">
      Fix wrong caching behaviour in DirectoryGenerator.
    </action>
    <action dev="CZ" type="add">
      Portal block: Add easier to use event handling mechanism by introducing the new Receiver interface.
                    Deprecated Publisher, Subscriber, Filter and Register.
    </action>
    <action dev="JH" type="update">
      Moved following components into core: TraversableGenerator, XPathTraversableGenerator (both from repository
      block), CSVGenerator (from scratchpad block), FragmentExtractorTransformer and FragmentExtractorGenerator
      (both from batik block).
    </action>
    <action dev="BD" type="add" due-to="Christian Stocker" due-to-email="chregu@bitflux.ch">
      XSLTAL block added, presentation templating transformer based on the Zope TAL syntax.
    </action>
    <action dev="BD" type="update">
      TraxTransformer: new default-src configuration parameter, used if src is not specified.
    </action>
    <action dev="AN" type="add" fixes-bug="28045" due-to="Jon Evans" due-to-email="jon.evans@misgl.com">
      Added CookieModule as a more convinient way to access cookie values as {cookie:query}
      in alternative to {request:cookies[name='query']/value}.
    </action>
    <action dev="AN" type="add" fixes-bug="33388" due-to="Andrew Stevens" due-to-email="ats37@hotmail.com">
      Added parameter "show-cocoon-version" to web.xml for configuring whether X-Cocoon-Version
      response header should be sent.  Default is true.
      In a security paranoid environment you may want to set it to false in order to hide from
      the outside world which Cocoon version you are running.
    </action>
    <action dev="AN" type="add" fixes-bug="35228" due-to="Jochen Kuhnle" due-to-email="werbung@kuhnle.net">
      XSP block: Added short-cut notation {#expr} for interpolation of
      XSP expressions in attribute values and text nodes.
      Removed wrapping of all text nodes from XSP source into &lt;xsp:text&gt;
      elements before passing them to logicsheets.
      (This feature was not used by the standard logicsheets but check your
      custom logicsheets whether they depend on it.)
    </action>
    <action dev="CZ" type="add">
      Portal block: Convert PortletPortalManager into portal manager aspect.
    </action>
    <action dev="CZ" type="add">
      CForms block: Make all WidgetValidatorBuilders ThreadSafe. Reset validation errors
                    before validating a field.
    </action>
    <action dev="CZ" type="add">
      Portal block: Add portal manager aspects for more flexible portal processing.
    </action>
    <action dev="CZ" type="add">
      CForms block: Add isValid() method to a Widget.
    </action>
    <action dev="VG" type="add" fixes-bug="29817" due-to="Patrick Herber" due-to-email="patrick@arpage.ch">
      POI Block: Added HSSFGenerator.
    </action>
    <action dev="VG" type="add" fixes-bug="35435" due-to="Nico Verwer" due-to-email="nverwer@email.com">
      Added getSitemapURIPrefix method to the Request interface.
    </action>
    <action dev="AG" type="update">
      Updated commons-digester to 1.7, commons-lang to 2.1, xercesImpl to 2.7.0.
    </action>
    <action dev="UH" type="add" due-to="Johan Stuyts">
      Mail block: The SendMailTransformer can now configure the smtp port.
    </action>
    <action dev="VG" type="fix" fixes-bug="33097">
      Fixed reloading of the i18n catalogues (regression introduced in 2.1.7).
    </action>
    <action dev="UH" type="add" due-to="Johan Stuyts">
      JMS block: Connection failures can now be recovered from. The default JMSConnectionManager implementation
      detects when JMS connections are severed and schedules reconnection attempts with the cron scheduler
      in order to re-establish the connection. As soon as reconnection was successful it notifies its listeners
      so that they may recover as well and refresh their JMS sessions. The provided abstract MessageListener
      and JMS publisher that users are recommended to use as base classes for their concrete JMS needs have been
      updated to use this mechanism.
    </action>
    <action dev="BD" type="add" fixes-bug="35364" due-to="Askild Aaberg Olsen" due-to-email="askild@xangeli.com">
      Forms block: sqldatabase sample added, demonstrates "zero java code" editing of SQL data
      using the SQLTransformer.
    </action>
    <action dev="SW" type="fix" fixes-bug="35311" due-to="Jeffrey Kirby" due-to-email="jeff.kirby@wicourts.gov">
      CForms block: Ensure FormHandler is always called when a field's value change.
    </action>
    <action dev="RP" type="update">
      CForms block: The default HTML stylesheets have been moved into the jar packages. If they should
      be extended in custom stylesheets, import or include them using the resource protocol:
      <code>&lt;xsl:include href="resource://org/apache/cocoon/forms/resources/forms-advanced-field-styling.xsl"/&gt;</code>.
    </action>
    <action dev="RP" type="add">
      CForms block: The form and container widgets can take up <code>ValidationError</code>s. As those widgets
      don't have a natural place where the error message should appear, the <code>&lt;ft:validation-error id="[widget-id]"/&gt;</code>
      has to be used. Currently this tag is only supported by the jxtemplate macro library.
    </action>
    <action dev="SW" type="fix">
      Fix some multithreading issues when a background thread or cron job uses the "cocoon:" protocol, that
      caused the background request pipeline to be recycled by the parent thread during its execution.<br/>
      To use multiple threads to process a request (e.g. parallel include), background processing must use
      the <code>org.apache.cocoon.environment.CocoonRunnable</code> wrapper that ensures that the environment
      context of the main request is properly inherited by tasks running in the background.
    </action>
    <action dev="CZ" type="update">
      Mail block: Make internal protocol handling for attachments in SendMailTransformer
      configurable and properly release all sources.
    </action>
    <action dev="CZ" type="update">
      Move expires pipeline implementation out of the scratchpad.
    </action>
    <action dev="CZ" type="add">
      Add setter action to set values in the object model, request or session.
    </action>
    <action dev="AG" type="update">
      Updated ant to 1.6.5.
    </action>
    <action dev="SW" type="add">
      CForms block: add a new <code>&lt;fd:true-param-value&gt;</code> configuration to
      booleanfield definitions, to allow specifying a value different from "<code>true</code>"
      for the checkbox.
    </action>
    <action dev="CZ" type="update">
      Set the content-length of a response when the pipeline buffers the content
      (which is the default).
    </action>
    <action dev="AN" type="fix" fixes-bug="32935">
      XSP Block: Double check and attempt again to load program object from cache.
      This avoids that simultaneous requests recompile the same XSP over and over again.
    </action>
    <action dev="SW" type="fix">
      When receiving a multipart request, also add parameters given on the URL to the
      request parameters.
    </action>
    <action dev="BD" type="fix">
      EHDefaultStore.store throws more descriptive exception if key or value
      are not Serializable.
    </action>
    <action dev="AG" type="update">
      Cforms block: Caching selection list for best performance inside repeaters.
      Deprecate <code>@dynamic</code> in <code>&lt;fd:selection-list&gt;</code>
      in favor of <code>@cache</code>. Posible <code>@cache</code> values are:
      <ul>
        <li><code>static</code> => equivalent to old <code>@dynamic="false"</code></li>
        <li><code>none</code> => equivalent to old <code>@dynamic="true"</code></li>
        <li><code>request</code> => is new, similar to <code>cache="none"</code>, but caching the selection list per request. Useful to improve performance inside repeaters.</li>
      </ul>
    </action>
    <action dev="AG" type="update">
      Updated ant to 1.6.4, batik to 1.6, db-ojb to 1.0.3.
    </action>
    <action dev="SW" type="add">
      CForms block: add automatic AJAX features. When <code>&lt;ft:form-template&gt;</code>
      has an <code>ajax="true"</code> attribute, partial page updates are performed rather
      than full page reloads.
    </action>
    <action dev="AG" type="fix" fixes-bug="32728" due-to="Thomas Scheithauer" due-to-email="cocoon-t3@gmx.de">
      SearchGenerator return has-previous false when meet the no. 2 page.
    </action>
    <action dev="BD" type="add" fixes-bug="25352" due-to="Johan Stuyts" due-to-email="j.stuyts@hippo.nl">
      The new "annotations" namespace (http://apache.org/cocoon/sitemap/annotations/1.0)
      can be used to add information to sitemaps. The sitemap processor ignores this information,
      which can be used for documentation purposes.
    </action>
    <action dev="AN" type="fix" fixes-bug="32934">
      XSP Block: Race condition could lead to duplicate application of same logicsheet
      with spurious compilation errors or undefined runtime behaviour.
    </action>
    <action dev="UC" type="add">
      CForms block: added CAPTCHA validator.
    </action>
    <action dev="VG" type="add">
      IncludeTransformer moved from the scratchpad into the core. It has following
      features:
      <ul>
        <li>Supports caching, with configurable caching key.</li>
        <li>Supports parallel include processing in multiple threads.</li>
        <li>Included source URIs resolved relative to the document URI.</li>
        <li>Supports recursive include processing (includes in included files).</li>
        <li>Supports fallback element processing.</li>
        <li>Supports inclusion of files as text.</li>
      </ul>
    </action>
    <action dev="JH" type="fix">
      Enabled the synchronization on Cocoon's session wrapper by assuring that only
      one wrapper exists per servlet session.
    </action>
    <action dev="VG" type="fix" fixes-bug="25098">
      Databases: SQLTransformer: Support queries nested into insert/delete/update
      queries. Return number of rows updated by insert/delete/update queries as
      <code>returncode</code> element.
    </action>
    <action dev="VG" type="fix">
      Databases: SQLTransformer: Each query can now have connection with own
      database connection configuration parameters. Queries with same configuration
      will share single database connection. You can force queries to create private
      connection using <code>own-connection</code> configuration parameter.
    </action>
    <action dev="VG" type="fix">
      Databases: SQLTransformer: Each query can now have own output namespace and
      prefix. If desired output namespace already in use, existing prefix will be
      used.
    </action>
    <action dev="VG" type="fix" fixes-bug="27440" due-to="Philipp Matthias Hahn" due-to-email="pmhahn@titan.lahn.de">
      Databases: SQLTransformer: Support multiple nested queries within one query.
    </action>
    <action dev="VG" type="update">
      Databases: Changes in SQLTransformer:
      <ul>
        <li>By default, output resulting XML using 'sql' namespace prefix.</li>
        <li>Accept non-namespaced attributes in the input XML,
        and prefer them over attributes in SQLTransformer namespace.</li>
        <li>Support configured namespace, instead of hardcoded value.</li>
      </ul>
    </action>
    <action dev="VG" type="fix" fixes-bug="31634" due-to="Martin Holz" due-to-email="holz@fiz-chemie.de">
      Databases: SQLTransformer: Output attributes on rowset element with
      empty namespace.
    </action>
    <action dev="VG" type="fix" fixes-bug="25203">
      Databases: SQLTransformer: Avoid declaring duplicate namespaces.
    </action>
    <action dev="VG" type="remove">
      Databases: Removed xml-encoding parameter from the SQLTransformer configuration.
      The latest SQLTransformer has no byte to character conversions.
    </action>
    <action dev="AG" type="update">
      Updated ant to 1.6.3.
    </action>
    <action dev="VG" type="update">
      OJB Block: Added support for OJB 1.1.
    </action>
    <action dev="VG" type="update">
      AbstractSAXTransformer gets <code>transformer-factory</code> configuration
      parameter.
    </action>
    <action dev="VG" type="update">
      XMLFileModule gets <code>cache-expressions</code> configuration parameter.
    </action>
    <action dev="AG" type="fix" fixes-bug="33100" due-to="Juan Jose Pablos" due-to-email="cheche@apache.org">
      form(NOT_FOUND is not a function) error caused by wrong documentation.
    </action>
    <action dev="AG" type="fix" fixes-bug="34591" due-to="Jorg Heymans" due-to-email="jh@domek.be">
      Fix ContextPathModule name in javadocs.
    </action>
    <action dev="SW" type="add">
       New JCR block that adds a "jcr:" protocol to access and modify repository contents.
    </action>
    <action dev="BD" type="add">
      New HTMLTransformer sample in html block.
    </action>
    <action dev="VG" type="fix" fixes-bug="34400" due-to="Markus Bussemer" due-to-email="markus.bussemer@voeb-zvd.de">
      Faces Block: ValidateLongRangeTag, ValidateDoubleRangeTag should use long
      and double to set minimum and maximum, not int.
    </action>
    <action dev="VG" type="fix">
      Fixed caching of a pipeline aggregating non cacheable pipelines via
      <code>cocoon:</code> protocol.
    </action>
    <action dev="VG" type="update">
      Stacktrace of the ResourceNotFound exception is logged only in DEBUG level,
      otherwise only exception message is logged.
    </action>
    <action dev="SW" type="fix">
      Fix environment handling to allow the root sitemap to be at an abitrary location
      and not only in the main webapp context directory.
    </action>
    <action dev="VG" type="fix">
      Updated excalibur-pool to 2.0.0, excalibur-datasource to 1.2.0.
      Fixes problem of database connections pools not coming up after
      database outage.
    </action>
    <action dev="AG" type="update">
      Updated groovy to 1.0-jsr-01, jdtcore to 3.0.2.
    </action>
    <action dev="BD" type="add" fixes-bug="34294" due-to="Alfred Nathaniel" due-to-email="Alfred.Nathaniel@swx.com">
      New set of automated tests based on HtmlUnit
    </action>
    <action dev="VG" type="update">
      Add support for namespaced XML elements to the JXPath based input
      modules (includes JXPathMetaModule, XMLFileModule, and others).
    </action>
    <action dev="AG" type="fix" fixes-bug="34325" due-to="Joachim Breitsprecher" due-to-email="jb@dserv.net">
      XInclude transformer does not handle fallback correctly.
    </action>
    <action dev="VG" type="update">
      Deprecate EventRecorder (in o.a.c.t.helpers package). It will be
      removed starting with Cocoon 2.2.
    </action>
    <action dev="VG" type="fix" fixes-bug="26107">
      XSP Block: Note in the documentation that XSP namespace must be declared
      on the <code>xsp:page</code> element.
    </action>
    <action dev="CZ" type="fix" fixes-bug="33963" due-to="John Yonosh" due-to-email="jyonosh@fcg.com">
      Fix NPE in DOMStreamer.stream().
    </action>
    <action dev="CZ" type="fix">
      Portal block: Make portal manager available through portal component manager.
    </action>
  </release>
  <release version="2.1.7" date="March 23 2005">
   <action dev="AG" type="update">
     Updated hsqldb to 1.7.3.3.
   </action>
   <action dev="VG" type="fix">
     Fix caching of i18n bundles with expires validities.
   </action>
   <action dev="VG" type="add">
     Implemented error handling for the internal requests. Error handling for
     internal requests can be configured using the <code>when</code> attribute
     on the <code>handle-errors</code> element. Supported values for
     <code>when</code> attribute are: <ul>
     <li><code>external</code>: This error handler should be used only on
     external requests (default);</li>
     <li><code>internal</code>: This error handler should be used only on
     internal requests;</li>
     <li><code>always</code>: This error handler can be used for all
     requests.</li>
     </ul>
     Currently, if internal error handling is enabled, only the inner most
     error handler will be used for errors which happened during internal
     pipeline processing. See samples for usage details.
   </action>
   <action dev="VG" type="fix">
     Sitemap now properly throws ResourceNotFound exception for not matched
     requests even if last pipeline marked as an internal pipeline.
   </action>
   <action dev="VG" type="fix">
     Sitemap handle-errors now reports an error if generator is missing, or
     if type attribute (deprecated) specified and generator is present.
   </action>
   <action dev="AG" type="update">
     Updated quartz to 1.4.5, jcs to 1.2.5-dev-20050313.
   </action>
   <action dev="SW" type="update">
     Refactored the Deprecation class: the "forbidden-deprecation-level" parameter in web.xml
     allows to raise deprecation exceptions depending on the log level. For example, DEBUG
     allows no deprecations (strict mode), and FATAL_ERROR allows all (tolerant mode).
     Default is ERROR, allowing messages up to WARN.
   </action>
   <action dev="SW" type="add">
     A flowscript's file encoding can now be specified by a comment on the script's
     very first line, in the form "<code>// encoding = xxxx</code>". Otherwise, the
     default platform encoding is used.
   </action>
   <action dev="JQ" type="add">
     Added QueryBean as a standalone block, copied over from 2.2.0. Removed
     the original from the Lucene Block. Stores Favourites using OJB in HSQLDB.
   </action>
   <action dev="SW" type="update">
     CForms: separate <code>FormattingDateConvertor</code> that uses
     <code>java.text.SimpleDateFormat</code> and <code>Icu4jDateFormatter</code>
     that uses ICU4J. There was previously an automatic switch to ICU4J if the
     library was present in the classpath, which sometimes caused some strange
     results as it behaves a bit differently.
   </action>
   <action dev="BD" type="fix">
     Tour block: fix "shapes" sample using if/else in flowscript
     instead of switch.
   </action>
   <action dev="VG" type="update">
     Build: Added exclude.all.blocks and include.all.blocks properties
     to quickly toggle all blocks on or off.
   </action>
   <action dev="AG" type="update">
     Updated antlr to 2.7.5, groovy to 1.0-beta-10, jetty to 4.2.23
   </action>
   <action dev="VG" type="update">
     OJB Block: Marked as stable.
   </action>
   <action dev="all" type="update">
    Make Cocoon compilable and buildable using JDK 5.0.
   </action>
   <action dev="CZ" type="update">
    Remove scratchpad block - the scratchpad area is only available in trunk.
   </action>
   <action dev="AG" type="update">
     Deprecated Pizza compiler support in XSP. To be removed in Cocoon 2.2.
   </action>
   <action dev="VG" type="update">
     CForms: JavaSelectionList implementations can now be Contextualizable and
     can build SelectionLists with XMLizable labels.
   </action>
   <action dev="CZ" type="fix" fixes-bug="10277">
     Change the mime-type setting of a reader. See also bug #25121.
   </action>
   <action dev="LG" type="fix" fixes-bug="33836" due-to="Niklas Therning" due-to-email="niklas@trillian.se">
     Fix thread safety problem in JXTemplateGenerator.setup() concerning template script reparsing.
   </action>
   <action dev="LG" type="add">
     Polish i18n for CForms.
   </action>
   <action dev="VG" type="update">
     OJB Block: Renamed JdoPMF component to JDO, OdmgImplementation to ODMG, and
     removed PBFactory component - please use OJB PersistenceFactory API directly.
   </action>
   <action dev="VG" type="fix">
     Runnable Manager: Fix bug preventing scheduling of two different jobs at the same time.
   </action>
   <action dev="SW" type="add">
     Many changes in CForms block.
     <br/>
     Widgets:
     <ul>
       <li>add <code>Widget.getDefinition()</code> to access the definition that was used to create the widget.</li>
       <li>make widget definitions immutable once setup. This is necessary with the previous change as a definition
           is shared by all of the widgets it creates and modifying it could lead to weird behaviors.</li>
       <li>new "output" widget state, where values are displayed but not read on the request. The difference with
           "disabled" is that "output" widgets are displayed as plain text and not as disabled inputs.</li>
       <li>add <code>on-create</code> event listeners that are called when a widget is created.</li>
       <li>deprecate "struct" in favor of "group" in definition, template and binding. More work is needed on the
           relation between ft:group and fi:group provided by forms-page-styling.xsl</li>
     </ul>
     <br/>
     Field:
     <ul>
       <li>a field's selection list can be removed by setting it to null. This previously re-installed the widget
           definition's selection list.</li>
       <li>a field can have an optional initial value defined using &lt;initial-value locale="..."&gt;...&lt;/initial-value&gt;.
           The "locale" attribute is used to convert the value text into an object as defined by the datatype's convertor.
           This feature is also available on AggregateField and BooleanField (for which locale is useless).</li>
     </ul>
     <br/>
     Form.js :
     <ul>
       <li>added "fun" and "ttl" parameters to <code>Form.showForm()</code>, which now has the exact
           same parameters as cocoon.sendPageAndWait().</li>
       <li>the argument of <code>new Form(...)</code> can now be either a String or a DOM Element.
           Accepting an Element allows the use of any kind of dynamic process to build the form
           definition.</li>
       <li><code>Form.showForm()</code> now uses a single continuation, which saves memory and speeds
           up processing by shortening the continuation chain when the user has a long interaction
           with the form.</li>
       <li>"ttl" parameter added to <code>Form.showForm()</code>, which has the same meaning as for cocoon.sendPageAndWait().</li>
       <li>new "cleanupHook" property on Form: this is a function that is called each time the form is displayed.
           This is similar to the "fun" parameter of cocoon.sendPageAndWait().</li>
       <li>new "restoreHook" property on Form: this is a function that is called each time the continuation is called back,
           to restore if needed the execution environment before processing the request.</li>
     </ul>
     <br/>
     Actions:
     <ul>
       <li>the "action-command" attribute is deprecated and replaced by "command" which is now optional, except on
           repeater-action and row-action where it indicates what to do.</li>
       <li>new "insert-rows" repeater-action that insert new rows before the selected rows in a repeater</li>
     </ul>
     <br/>
     Styling: styling "output" is deprecated and will be removed in 2.1.8. The "output" widget state should be
     used instead.
   </action>
   <action dev="TC" type="add" fixes-bug="30417">
     Added best-fit-while-keeping-aspect-ratio option to the ImageReader
   </action>
   <action dev="VG" type="fix" fixes-bug="33319" due-to="Adam Ratclife" due-to-email="adam@prema.co.nz">
     Resource Reader: Make sure response is cacheable when expires parameter is not set.
   </action>
   <action dev="VG" type="add" fixes-bug="28973" due-to="Andrew Thornton" due-to-email="andrew@caret.cam.ac.uk">
     Mail Block: Add support for replyTo.
   </action>
   <action dev="UV" type="add">
     CocoonBean can now process a URL to a SAX ContentHandler (skipping the serialiser), via cocoon.process(uri, handler).
   </action>
   <action dev="VG" type="update">
     OJB Block: Integrated OJB logging with Cocoon logging.
   </action>
   <action dev="CZ" type="update">
     Add a deprecation logger that gives hint about used deprecated stuff.
   </action>
   <action dev="AG" type="update">
     Updated commons-transaction to 1.0.1, castor to 0.9.6, groovy to beta-9, quartz to 1.4.4.
   </action>
   <action dev="SW" type="update">
     Remove restrictions on the flowscript object model (FOM): the objects available through the
     <code>cocoon</code> object (request, session, response, etc) now provide the full API of the
     corresponding Java classes.
   </action>
   <action dev="CZ" type="fix">
     CForms: forms generator and template transformer now use the same object model as the JXTG: access
             to objects have to use the "cocoon" object, like "cocoon/continuation/id".
   </action>
   <action dev="RP" type="add">
     hsqldb: make name and path of database parameterizable - this way the database can be located outside of Cocoon
   </action>
   <action dev="CZ" type="fix" fixes-bug="32987" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Apply patch for a better exception handling in the Meta-InputModule when an input module is not found.
   </action>
   <action dev="JH" type="fix" fixes-bug="33097">
     Fixed caching of i18n bundles when using multiple locations.
   </action>
   <action dev="SW" type="fix" fixes-bug="33178" due-to="Jean-Baptiste Quenot" due-to-email="jbq@anyware-tech.com">
     Fix handling of environment context when returning from a pass-through sitemap mount.
   </action>
   <action dev="CZ" type="add" fixes-bug="33287" due-to="Jens Maukisch" due-to-email="jmaukisch@s-und-n.de">
     Portal Block: Add portal tools framework contribution.
   </action>
   <action dev="CZ" type="add">
     Build system: External blocks can be built together with Cocoon.
   </action>
   <action dev="RG" type="fix" fixes-bug="33091">
     Refreshing a page with a JSR-168 portlet in it could cause unexpected results. JSR-168 urls can
     now be configured to contain the data required to generated the required events.
   </action>
   <action dev="AG" type="add">
     Add &lt;compiler-compliance-level&gt; parameter for java XSP compiler.
     This new parameter allow to specify the java code source version used to compile the XSP code.
     It is useful to run cocoon using java 1.5 while using source code for 1.4.
     Posible values:
           1.3 = Java version 1.3
           1.4 = Java version 1.4
           1.5 = Java version 1.5
           auto = The version of the JVM where cocoon is running. (Default value).

     NOTE: The parameter is optional to keep backward compatibility.
           The parameter currently works only with Sun Javac compiler.
           The eclipse compiler version 3.0.1 currently does not support java 1.5.
           The pizza compiler does not support java 1.5.
   </action>
   <action dev="RG" type="fix" fixes-bug="32838" due-to="Roy Huang" due-to-email="lingererhuang@hotmail.com">
     PageLabel url's were not properly encoded.
   </action>
   <action dev="AG" type="update">
     Updated quartz to 1.4.3, nekodtd to 0.1.11, nekohtml to 0.9.4
     castor to 0.9.5.4, commons-digester to 1.6, groovy to 1.0-beta-8, asm to 1.5.2
     and asm-util to 1.5.2.
   </action>
   <action dev="AG" type="add">
     Added commons-transaction 1.0 and commons-codec 1.3. Both are needed by slide 2.1.
   </action>
   <action dev="AG" type="update">
     Updated jakarta-slide-webdavlib to 2.1, jdom to 1.0, slide-kernel to 2.1, slide-stores to 2.1, slide-webdavservlet to 2.1.
   </action>
   <action dev="RG" type="add">
     Portal now allows Cocoon to be deployed as a war (only supports local JSR-168 portlets) and
     allows external portlets to be in a war.
   </action>
   <action dev="SW" type="fix" fixes-bug="31668">
     CForms: the parser used to read form files now uses the EntityResolver defined in cocoon.xconf.
   </action>
   <action dev="AG" type="fix" fixes-bug="32620" due-to="Micah Dubinko" due-to-email="mdubinko@snapbridge.com">
     Tiny typo in AbstractTextSerializer
   </action>
   <action dev="RG" type="fix" fixes-bug="32645">
     Modified PortletURLProviderImpl.toString() to create a copy of itself and register that with the event.
   </action>
   <action dev="LG" type="add">
     ContinuationsManager default implementation can now store continuations in user session.
     Continuations are not available outside user session and invalidated automatically
     when session gets invalidated by servlet container. This is a good security option for web applications.
   </action>
   <action dev="AG" type="fix" fixes-bug="32083" due-to="Mark H. Butler" due-to-email="mark-h.butler@hp.com">
     Update Deli to x031104 (include over 300 vendor, operator and third party profiles)
   </action>
   <action dev="AG" type="update">
     Updated hsqldb to 1.7.3, lucene to 1.4.3, ehcache to 1.1, log4j to 1.2.9.
   </action>
   <action dev="TC" type="add">
     Paranoid: make the classloader implementation configurable
   </action>
   <action dev="AG" type="fix" fixes-bug="32408" due-to="Juan Jose Pablos" due-to-email="cheche@che-che.com">
     Typo on the date-selector doc.
   </action>
   <action dev="AG" type="fix" fixes-bug="30043" due-to="Micah Dubinko" due-to-email="mdubinko@snapbridge.com">
     xml2html.xslt does not work on IE.
   </action>
   <action dev="RG" type="fix" fixes-bug="32417">
     Portal: attributes "javax.portlet.request" and "javax.portlet.response" were not set for JSR-168
     portlets running in the Cocoon webapp.
   </action>
   <action dev="RP" type="add">
    CForms: added HTMLCleaning convertor (taken from Outerthought's Daisy) that cleans
            up the result by HTMLArea fields. The cleanup process, that is based upon
            Nekohtml can be configured. One confiugration is available at
            resource://org/apache/cocoon/forms/datatype/convertor/HtmlCleanerConfiguration.xml
            and guarantees valid XHTML
     <br/>
     Example:
     <code>
&lt;fd:datatype base="string"&gt;
  &lt;fd:convertor type="htmlcleaner"
      config="resource://org/apache/cocoon/forms/datatype/convertor/HtmlCleanerConfiguration.xml"/&gt;
&lt;/fd:datatype&gt;
     </code>
   </action>
   <action dev="RP" type="add">
    CForms: 'htmlarea' fields can be directly configured in cForms templates
    <br/>
    Example configuration (within the &lt;conf&gt; part the variable conf contains
    the configuration object of HTMLArea
    <code>
&lt;fi:styling type="htmlarea" rows="8" style="width:100%"&gt;
  &lt;conf&gt;
    conf.statusBar = false;
    conf.sizeIncludesToolbar = false;
    conf.fullPage = false;
    conf.toolbar = [
      [ "bold", "italic", "separator",
        "subscript", "superscript", "separator",
        "insertorderedlist", "insertunorderedlist",
        "outdent", "indent", "separator",
        "inserthorizontalrule", "separator",
        "copy", "cut", "paste", "space", "undo", "redo",
        "separator", "showhelp"]
      ];
  &lt;/conf&gt;
&lt;/fi:styling&gt;
    </code>
   </action>
   <action dev="RP" type="fix">
     CForms: fields styled as 'htmlarea' can be used in tables (workaround for strange IE behaviour)
   </action>
   <action dev="SW" type="add">
     CForms: add a new "link" styling for action widgets, that renders the action
     as an hypertext link.
   </action>
   <action dev="RG" type="update" fixes-bug="28360" due-to="Nico Verwer" due-to-email="nverwer@email.com">
     DateInputModule now accepts date format string when specified in a sitemap.
   </action>
   <action dev="RG" type="add">
     Portal: Added support for storing JSR-168 Portlet preferences.
   </action>
   <action dev="JH" type="fix" fixes-bug="32342">
     Batik block: Fixed handling for empty extract URIs when matching on null
     namespace URIs.
   </action>
   <action dev="GP" type="add">
     Allow attribute values to be matches as well for EncodeURLTransformer.
   </action>
   <action dev="BRD" type="fix">
     Multipart requests: use container encoding for decoding requests, in order to have consistent
     handling between normal requests and multipart requests.
   </action>
   <action dev="BRD" type="fix" due-to="Neil Bacon" fixes-bug="31887" due-to-email="nbacon@pinnaclesoftware.com.au">
     I18n (ParamSaxBuffer): handle case where substitution params like {0} are split over multiple character events.
   </action>
   <action dev="LG" type="fix">
     Fix: Continuation can only be invoked for the interpreter it was originally created for.
   </action>
 </release>
 <release version="2.1.6" date="November 19 2004">
   <action dev="AG" type="fix" fixes-bug="23118" due-to="Jorg Heymans" due-to-email="jh@domek.be">
     Lucene: SearchGenerator incorrectly counts previous-index. Reported by: Tomasz Nowak (tnowak-p@netventure.pl)
   </action>
   <action dev="AG" type="update">
     Updated iText to 1.1.
   </action>
   <action dev="AG" type="fix" fixes-bug="32011" due-to="wchao@yahoo.com" due-to-email="wchao@yahoo.com">
     Fix: buildList() in AbstractDatabaseAction generates incorrect parameter list.
   </action>
   <action dev="AG" type="fix" fixes-bug="32124" due-to="Leo Leonid" due-to-email="tek@leonid.de">
     Fix: Webmail sample broken.
   </action>
   <action dev="AG" type="fix" fixes-bug="32214" due-to="Rick Tessner" due-to-email="rick@apache.org">
     Fix: Context directory not required to be writable by the CLI.
   </action>
   <action dev="CZ" type="fix" fixes-bug="32199">
     Portal: If a coplet has an error, the error-uri has been called twice. This is fixed now.
   </action>
   <action dev="VG" type="remove">
     Flowscript: Deprecated support for passing sitemap parameters into flowscript
     function as positional arguments. Use cocoon.parameters instead. Support will
     be removed completely in Cocoon 2.2.
   </action>
   <action dev="RG" type="fix" fixes-bug="32159" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Portal: Request content length and content type are required in portlet ActionRequest
     for custom upload handling.
   </action>
   <action dev="RG" type="add" fixes-bug="31857">
     Portal: Added support for page labels.
   </action>
   <action dev="RG" type="fix" fixes-bug="31854">
     Javaflow: JavaInterpreter initialize method was not thread safe.
   </action>
   <action dev="RG" type="add" fixes-bug="31229">
     Portal: Generate subnavigation for non-selected tabs.
   </action>
   <action dev="VG" type="fix">
     Scratchpad block: Restored CastorTransformer support for context beans,
     restored bean lookup logic, fixed sample.
   </action>
   <action dev="SW" type="fix">
     The CocoonBean now creates its own private logger hierarchy, thus avoiding to
     pollute the CocoonServlet hierarchy when called in that context (e.g. when
     generating a static site from a CMS).
   </action>
   <action dev="GP" type="add" fixes-bug="31760">
     Added replacement for Excalibur Event package in
     org.apache.cocoon.components.thread and migrated most classes using their own
     threads to that package.
   </action>
   <action dev="AG" type="update">
     Updated antlr to 2.7.4, db-ojb to 1.0.1.
   </action>
   <action dev="TC" type="fix" fixes-bug="31297" due-to="Nikolaus Rath" due-to-email="Nikolaus@rath.org">
     Javaflow block: Support inherited methods.
   </action>
   <action dev="TC" type="add">
     Javaflow block: Add parameter support.
   </action>
   <action dev="SW" type="add">
     CForms block: added widget states. All widgets can now have an "active" (default), "disabled" or "invisible"
     state. Updated the stylesheets accordingly to use HTML's disabled inputs.
   </action>
   <action dev="AG" type="fix" fixes-bug="29945" due-to="Christoph Gaffga" due-to-email="cgaffga@triplemind.com">
     Scratchpad block: BetwixtTransformer: removed deprecation warning with
     latest betwixt.
   </action>
   <action dev="SW" type="fix" fixes-bug="25951">
     Flowscript: enforce the explicit declaration of variables in the global
     scope (attached to the session). This avoids the implicit declaration of
     variables in the global scope when the 'var' keyword is missing, which
     leads to weird bugs difficult to track down, especially with continuations.
   </action>
   <action dev="ATC" type="update">
     Deprecated the PHP block since the PHP servlet the generator depends on
     never worked properly. Explicitly excluded the PHP block from blocks.properties.
   </action>
   <action dev="VG" type="fix" fixes-bug="27176" due-to="Guillaume Deflache" due-to-email="guillaume@anyware-tech.com">
     XSP Block: Add space="strip" attribute support for &lt;xsp:page&gt;
     element. When present, all extra whitespace from XSP source is stripped.
   </action>
   <action dev="VG" type="fix" fixes-bug="30849">
     XMLDB Block: Fix NullPointerException in XMLDBTransformer if specified
     collection does not exist.
   </action>
   <action dev="AG" type="fix" fixes-bug="31564" due-to="Gunnar Brand" due-to-email="g.brand@interface-business.de">
     XSP - JXPath logicsheet: Allow use relative contexts in &lt;jxpath:for-each&gt;.
           Add a new tag &lt;jpath:set-lenient lenient="true|false"&gt;.
   </action>
   <action dev="AG" type="update">
     Updated commons-httpclient to 2.0.2, groovy to 1.0-beta-7, commons-betwixt to 0.6.
   </action>
   <action dev="VG" type="update">
     Flow invocations (function calls or continuation invocations) should always
     result in a response. Flowscripts with no response are prohibited.
   </action>
   <action dev="CZ" type="add" due-to="Juergen Seitz" due-to-email="Juergen.Seitz@Basf-It-Services.Com">
     Portal block: Apply batch for configuring the type handling in the Castor converter.
   </action>
   <action dev="CZ" type="fix" fixes-bug="30250" due-to="Sal Mangano" due-to-email="smangano@ureach.com">
     Fix bug in SessionPropagatorAction.
   </action>
   <action dev="CZ" type="fix" fixes-bug="22707" due-to="Jeff Ramsdale" due-to-email="jefe182@earthlink.net">
     Fix syntax error in build.bat on Windows ME.
   </action>
   <action dev="CZ" type="fix" fixes-bug="29996" due-to="Christian Mayrhuber" due-to-email="christian.mayrhuber@gmx.net">
     Portal block: Apply patch for rendering a link of the selected tab in TabContentAspect.
   </action>
   <action dev="CZ" type="fix" fixes-bug="29951" due-to="Christian Mayrhuber" due-to-email="christian.mayrhuber@gmx.net">
     Portal block: Apply patch for handling GET method when no enctype is set in CopletTransformer.
   </action>
   <action dev="TC" type="fix" fixes-bug="31545">
     Throw a more meaningful exception if charset classes are missing.
   </action>
   <action dev="TC" type="fix" fixes-bug="30874">
     Fixes the SQLTransformer not to close the statement twice.
   </action>
   <action dev="TC" type="fix" fixes-bug="30994">
     Change constructor to be public in order to fix bug 30270.
   </action>
   <action dev="JH" type="add" fixes-bug="29715" due-to="Nuno Santos" due-to-email="nsantos@electroplus.pt">
     Forms block: added possibility to add a SelectionList based on Java.
   </action>
   <action dev="AG" type="fix" fixes-bug="28680" due-to="David Crossley" due-to-email="crossley@apache.org">
     HTML serialization has no space between publicId and systemId.
     Updated xalan to 2.6.1-dev-20041008T0304.
   </action>
   <action dev="VG" type="add">
     Scratchpad block: Implemented support of parallel loading of included
     sources in the IncludeTransformer.
   </action>
   <action dev="AG" type="update">
     Updated commons-lang to 2.0-20041007T2305. Needed for Java 5 compatibility (enum is a keyword).
   </action>
   <action dev="AG" type="update">
     Updated jdt-core to 3.0.1.
   </action>
   <action dev="VG" type="add">
     Faces block: Added JSF CarStore demo.
   </action>
   <action dev="VG" type="fix">
     Flow preserves global variables on sitemap reload.
   </action>
   <action dev="SW" type="add">
     Forms block: Implementation of the CForm template language using JX macros,
     allowing smart page layout that depends on the widgets state and value.
   </action>
   <action dev="AG" type="remove">
     Remove jisp from distribution.
   </action>
   <action dev="AG" type="fix" fixes-bug="31493" due-to="Rob Berens" due-to-email="rberens@osirion.nl">
     XSP logicsheet jpath.xsl: incorrect call to JXPathContext.compile.
   </action>
   <action dev="VG" type="fix" fixes-bug="28485">
     Mail block: Support multiple SMTP servers, not only default one.
   </action>
   <action dev="VG" type="fix" fixes-bug="24760">
     Mail block: Add support for authenticated SMTP server connections.
   </action>
   <action dev="VG" type="fix">
     Cron block: JobScheduler's fireJob method now supports jobs calling Cocoon
     pipelines.
   </action>
   <action dev="VG" type="fix">
     Allow recursive Flow invocations with processPipelineTo.
   </action>
   <action dev="SW" type="fix">
     Forms block: rename <code>fd:on-activate</code> to <code>fd:on-action</code> on
     <code>fd:row-action</code> and <code>fd:repeater-action</code> for consistency
     with <code>fd:action</code> and <code>fd:submit</code>.
   </action>
   <action dev="CZ" type="update">
     Cache the mime-type of readers and serializers.
   </action>
   <action dev="AG" type="fix" fixes-bug="30372" due-to="Johnson Hsu" due-to-email="johnson@soho.club.tw">
     The daylight time cause error when timezone is CST. Updated icu4j to 3.0.
   </action>
   <action dev="AG" type="fix" fixes-bug="31407" due-to="Mark H. Butler" due-to-email="mark-h.butler@hp.com">
     Upgrading DELI block from version 0.9.8 to x020904.
   </action>
   <action dev="VG" type="update">
     Add support for translating attribute values which contain i18n expressions
     rather than complete i18n key.
   </action>
   <action dev="SW" type="add">
     Forms block: allow widget attributes which were only accessible programmatically
     to be set in the form definition. This allows e.g. generic form processing code
     to find widgets having a particular attribute.
   </action>
   <action dev="SW" type="update">
     Mail block: the MailSender now gets its source resolver from the service manager.
     This allows its use from flowscript where the old SourceResolver is not available.
   </action>
   <action dev="VG" type="fix">
     AbstractSAXTransformer namespaceURI and defaultNamespaceURI must never
     be null. When extending AbstractSAXTransformer make sure to set
     defaultNamespaceURI in the constructor.
   </action>
   <action dev="VG" type="add">
     Faces block: Initial implementation of JavaServer Faces for Cocoon.
   </action>
   <action dev="VG" type="add">
     Taglib block: Initial implementation of BodyTag.
   </action>
   <action dev="VG" type="update">
     Portal block: Changed pathInfo and servletPath logic. pathInfo always starts
     with '/', while servletPath always has no '/' at the end.
   </action>
   <action dev="AG" type="fix" fixes-bug="31134" due-to="Ralph Goers" due-to-email="Ralph_Goers@dslextreme.com">
     JXPathMetaModule incorrectly checks for null parameter (can't happen)
     instead of empty string.
   </action>
   <action dev="VG" type="fix">
     Cron block: Fixed memory leak, QuartzJobExecutor was not releasing pipelines.
   </action>
   <action dev="AG" type="update">
     Updated jexl to 1.0, lucene to 1.4.1.
   </action>
   <action dev="DC" type="add" fixes-bug="30321" due-to="Colin Adams">
     Selector for matching the request headers using a regular expression.
     Simple content negotiation, e.g. serve XHTML if browser indicates it
     accepts application/xhtml+xml and HTML otherwise; potentially do
     automatic i18n according to the accept-language header.
   </action>
   <action dev="NKB" type="add">
     New @pass-through attribute for the sitemap mount node.
     If true, processing will resume in the base sitemap just after the mount node
     if the mounted sitemap has not already generated output (usually if no match
     is found). Previous behaviour was always to throw a ResourceNotFoundException.
     The attribute defaults to "false" for backwards compatibility.
   </action>
   <action dev="CZ" type="add">
     Portal block: New Group Based Profile Manager.
   </action>
   <action dev="VG" type="update">
     Cron block: Add support for persistent job stores, type "tx" and "cmt".
   </action>
   <action dev="VG" type="fix">
     Cron block: Fix TestCronJob pipeline call functionality.
   </action>
   <action dev="AG" type="fix" fixes-bug="30065" due-to="Johnson Hsu" due-to-email="johnson@soho.club.tw">
     GetInstance don't work with upgrade from db-ojb-1.0rc6.
   </action>
   <action dev="AG" type="update">
     Updated rhino to 1.5r4-20040629T1232,
     xreporter-expression to 20040701, ehcache to 0.9.
   </action>
   <action dev="CZ" type="fix" fixes-bug="26854">
     A redirect is now possible, if it's called from flow. This also fixes bug #26571.
   </action>
   <action dev="CZ" type="add" fixes-bug="30688" due-to="John Lianoglou" due-to-email="john@arachnedesign.net">
     Mail block: Add ability to specify mime-type for email body text parameter in the mail transformer.
   </action>
   <action dev="CZ" type="fix">
     Fix potential memory leaks in CForms/Woody Template Transformer and JXTemplateGenerator.
   </action>
   <action dev="VG" type="fix" fixes-bug="29765" due-to="Rui Alberto L. Gon&ccedil;alves" due-to-email="rui-l-goncalves@ptinovacao.pt">
     XMLDB Block: Add ability to delete collections with XMLDBTransformer.
   </action>
   <action dev="VG" type="update">
     Reworked LocaleAction and LocaleMatcher to have similar logic and
     configuration.
     <br/><strong>NOTE:</strong> Sitemap variable "lang" renamed to
     "language", removed configuration parameters: "language-attribute",
     "country-attribute", "variant-attribute".
   </action>
   <action dev="UV" type="add">
     Added LocaleMatcher for file based internationalization.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27260">
     Make implementation of Cocoon protocol compliant with the Source interface.
   </action>
   <action dev="AG" type="update">
     Update ant to 1.6.2, commons-jxpath to 1.2, commons-beanutils to 1.7,
     POI to 2.5.1-final-20040804, commons-httpclient to 2.0.1, nekohtml to 0.9.3,
     hsqldb to 1.7.2, jcs to 1.1-dev-20040811, quartz to 1.4.2, asm to 1.4.3,
     asm-util to 1.4.3 and groovy to 1.0-beta6.
   </action>
   <action dev="CZ" type="fix">
     Mail block: The mail transformer ignored configured toAddresses from a
     pipeline parameter. This is fixed now.
   </action>
   <action dev="AG" type="fix" fixes-bug="28209" due-to="Enrico Maccias" due-to-email="enrico.maccias@free.fr">
     Fixing BetwixtTransformer does not marshal Collections properly (java.lang.OutOfMemoryError).
   </action>
   <action dev="AG" type="update">
     Update qdox to 1.5 and jdt-core to 3.0.0.
   </action>
   <action dev="AG" type="fix" fixes-bug="30038" due-to="Jorg Heymans" due-to-email="jh@domek.be">
     Fixing lucene-block samples dependencies.
   </action>
   <action dev="AG" type="update">
     Update lucene to 1.4.
   </action>
   <action dev="UH" type="add">
     Enhanced JMS support by adding a JMSConnectionManager component to the JMS block.
     This component replaces the JMSConnection component which only supported
     publish/subscribe messaging and which mixed some concerns. Two abstract classes:
     AbstractMessageListener and AbstractMessagePublisher should be used as basis for
     custom publish/subscribe components.
   </action>
   <action dev="UH" type="add">
     Still in the scratchpad area at the time of this writing, added a
     CachedSource proxy subclass for Sources that implement TraversableSource and
     InspectableSource (for instance WebDAVSource).
   </action>
   <action dev="UV" type="add">
     Added a NekoHTMLGenerator to HTML block. This is a simpler HTML parser than
     JTidy, which preserves more of the original HTML, primarily just balancing
     closing tags.
   </action>
   <action dev="TC" type="add" fixes-bug="29935" due-to="Leszek Gawron" due-to-email="ouzo@wlkp.org">
     Added support for stripping root elements in the CIncludeTransformer.
   </action>
   <action dev="VG" type="add">
     Portal block: Added ManagedCocoonPortlet, to be used together with
     CocoonServlet or CocoonPortlet.
   </action>
   <action dev="TC" type="add" fixes-bug="28015" due-to="Frank Taffelt" due-to-email="frank.taffelt@interface-business.de">
     POI block: cell spanning.
   </action>
   <action dev="AG" type="fix" fixes-bug="23002">
     POI block: processing of tags "vcenter", "hcenter", "monochrome", "draft",
     "Header", "Footer" in "gmr:PrintInformation". Initial support for
     "Margins" ("top", "bottom", "left", "right", "header", "footer").
   </action>
   <action dev="AG" type="fix" fixes-bug="23002" due-to="Viktor Skladovs" due-to-email="skladov@his.de">
     POI block: processing of tags "grid", "orientation and "paper" in
     "gmr:PrintInformation".
   </action>
   <action dev="AG" type="fix" fixes-bug="24433">
     Fix JXTemplate generator does not handle format-number(number, '$#,##0.00').
   </action>
   <action dev="JH" type="add">
     Forms block: Implement setValue method for the upload widget.
   </action>
   <action dev="JH" type="fix" fixes-bug="29881" due-to="Colin Adams" due-to-email="colin@colina.demon.co.uk">
     Forms block: Handle variants of datatype date correctly (i18n, styling).
   </action>
   <action dev="AG" type="update">
     Update commons-digester to 1.5, commons-betwixt to 0.5, commons-pool to 1.2,
     commons-dbcp to 1.2.1 and db-ojb to 1.0.0.
   </action>
   <action dev="AG" type="update">
     Update commons-collections to 3.1.
   </action>
   <action dev="AG" type="fix" fixes-bug="27133">
     Fix JXTemplateGenerator eating backslash characters.
   </action>
   <action dev="AG" type="fix" fixes-bug="25083">
     Add new &lt;jx:comment&gt; tag to the JXTemplate. XML comments are not
     parsed anymore. See the bug description for a sample.
   </action>
   <action dev="AG" type="fix" fixes-bug="29369" due-to="Juan Jose Pablos">
     Move commons-logging-1.0.4.jar to lib/core as jcs.jar depends on it.
   </action>
   <action dev="AG" type="fix" fixes-bug="17924" due-to="Jorg Heymans">
     Apply patch: Cached resources don't have Expires-Header.
   </action>
   <action dev="AG" type="fix" fixes-bug="29752" due-to="Leszek Gawron">
     Apply patch: Caching JXTemplateGenerator.
   </action>
   <action dev="VG" type="update">
     ResourceReader can now take configuration elements, parameters
     are deprecated.
   </action>
   <action dev="VG" type="fix" fixes-bug="25712" due-to="Litrik De Roy">
     Fix byte ranges support in ResourceReader.
   </action>
   <action dev="VG" type="update">
     Portal: CocoonPortlet has new configuration parameter,
     default-session-scope.
   </action>
   <action dev="AG" type="update">
     Updated commons-logging to 1.0.4
   </action>
   <action dev="VG" type="add">
     NamingInputModule provides access to the JNDI context.
   </action>
   <action dev="AG" type="update">
     Updated quartz to 1.4
   </action>
   <action dev="CZ" type="add">
     Add configuration support for log4j.
   </action>
   <action dev="ATC" type="add" due-to="Leszek Gawron">
     New Input modules: URLEncodeModule and URLDecodeModule
   </action>
   <action dev="CZ" type="fix" fixes-bug="27066">
     Apply patch to fix some memory leaks in the tree processor.
   </action>
   <action dev="CZ" type="fix" fixes-bug="29373">
     Portal: Fix NPE when non-caching pipelines are used for the portal profile.
   </action>
   <action dev="CZ" type="fix">
     Portal: Fix transformation of non-external html links (HTMLEventLinkTransformer)
   </action>
   <action dev="CZ" type="fix" fixes-bug="28687">
     Portal: Fix problem with bookmarks and CachingURICoplet
   </action>
   <action dev="SW" type="update">
     A new build property, "include.sources-in-jars", allows to include java
     source files in jar archives. Useful when using a non-released version
     to know what sources are used.
   </action>
   <action dev="SW" type="fix" fixes-bug="27249">
     Refactor TreeProcessor to avoid constant reloading of sitemap if its
     modification date is in the future and occasional ECM-related exceptions
     when a sitemap is reloaded.
   </action>
   <action dev="BD" type="add" due-to="Stavros Kounis" fixes-bug="28834">
     Tour block: added Java shapes sample.
   </action>
   <action dev="AG" type="update">
     Updated Groovy to 1.0-beta5, qdox to 1.4 and util.concurrent to 1.3.4.
   </action>
   <action dev="TC" type="fix">
     Serializers block: Fixed the namespace handling of the XMLSerializer.
   </action>
   <action dev="TC" type="add">
     Serializers block: Added support for indentation to the XMLSerializer.
   </action>
   <action dev="DC" type="update" fixes-bug="28809" due-to="Dave Brondsema">
     Chaperon block: Improvements for Chaperon JSPWiki to xdocs conversion:
     <ul>
       <li>Handle nested bullet lists (number lists already supported)</li>
       <li>If 'name' parameter is specified, use it as title (and add spaces between
           WikiWords) instead of first section title</li>
       <li>Handle images with alt text</li>
       <li>'spaceless-filenames' parameter will squash out spaces in relative
           links</li>
       <li>Fix anchors to use 'id' instead of 'name'</li>
       <li>Emphasize anchors a bit</li>
       <li>selftest.txt tests for lists and tables</li>
       <li>More known issues listed in selftest.txt</li>
     </ul>
   </action>
   <action dev="VG" type="add">
     Added instrumentation support to ContinuationsManager.
   </action>
 </release>
 <release version="2.1.5.1" date="July 9 2004">
   <action dev="CZ" type="update">
     The store/caching system now uses JCS instead of Jisp.
   </action>
   <action dev="CZ" type="fix">
     The persistent store is now really persistent between two application runs. (Fixed
     a bug in the hash code calculation of the keys).
   </action>
   <action dev="AG" type="update">
     Updated Apache JCS to 1.0 dev 20040516 and util.concurrent to 1.3.3.
   </action>
   <action dev="JH" type="add" fixes-bug="28860" due-to="Ralph Goers" due-to-email="Ralph_Goers@dslextreme.com">
     Extended CocoonServlet to allow any
     <link href="http://avalon.apache.org/excalibur/api/org/apache/avalon/excalibur/logger/LoggerManager.html">org.apache.avalon.excalibur.logger.LoggerManager</link>
     to be used.
   </action>
   <action dev="MPO" type="update">
     Deprecated getWidget from the Widget interface in cforms.
     People should consider using getChild(id) or lookupWidget(path) instead.
     On the level of the flowscript 'Form' API a semantical distinct getWidget()
     (notice: no arguments!) is still available to return the actual wrapped
     Java form instance.
   </action>
   <action dev="AG" type="fix" fixes-bug="28889" due-to="Juan Jose Pablos" due-to-email="cheche@che-che.com">
     Fixed jetty-4.2.19.jar compiled for +jdk1.4. The new version can run in 1.3
   </action>
   <action dev="JH" type="fix" fixes-bug="27871" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Fixed missing escapes of line feeds, carriage returns and tabs, that resulted
     in invalid Java code.
   </action>
   <action dev="AG" type="update">
     Updated Joost to 20040330
   </action>
   <action dev="JH" type="add" fixes-bug="28424" due-to="Ralph Goers" due-to-email="Ralph_Goers@dslextreme.com">
     RequestListener hook added, that is called before and after a request is processed.
   </action>
   <action dev="DC" type="update" due-to="Ralph Goers" fixes-bug="28704">
     Enable XConfToolTask to modify multiple attributes. See the bug report
     for description of use. Also enable suppression of comments.
   </action>
   <action dev="UV" type="add">
     Extended FOM so that cocoon.redirectTo("url", true) will do a global
     redirect. cocoon.redirectTo("url") will act as before. This enables
     FOM to redirect when it is called from within cocoon: protocol
     requests, aggregations, etc.
   </action>
   <action dev="UV" type="fix">
     Moving check on number of specified targets within CocoonBean. This was
     preventing the processURI(uri, outputStream) method from working.
   </action>
   <action dev="VG" type="remove">
     CForms: Remove custom flow level forms validators.
   </action>
   <action dev="BD" type="add">
     Added the "tour" block: "Supersonic Tour of Apache Cocoon".
     Tutorial/example app focused on the Power Trio: Pipelines, Flow, Forms.
   </action>
   <action dev="DC" type="fix" due-to="Ralph Goers" fixes-bug="27878">
     XMLResourceBundleFactory was stopping when it encountered the first
     bundle name that does not have a locale, missing those that might be
     in one of the other locations.
   </action>
   <action dev="SW" type="fix">
     Moved storage of all flow-related data (viewData, continuation, request, etc) from request
     attributes to object model entries. This allows a view called by sendPage() to also use
     flowscript (using request attributes caused the two calls to mix up their data).
   </action>
   <action dev="JH" type="fix">
     Hopefully fixed the source resolving in JSP components finally by using
     standard Cocoon/Avalon Excalibur source resolving. This allows to use all
     known protocols and Cocoon pseudo protocols as long as the JSP file is
     inside the servlet's context.
   </action>
   <action dev="MPO" type="update">
     CForms: Change to generated instance xml &lt;fi:form&gt;.
     Nested widgets are now grouped in &lt;fi:widgets&gt; and no longer in &lt;fi:children&gt;.
     This aligns with other container-widgets.
   </action>
   <action dev="VG" type="update">
     LinkRewriter: Added support for rewriting URLs which are embedded into
     the attribute values (example: style attribute with background image URL).
     Such URLs can be extracted using RE expressions and re-written, leaving
     rest of the attribute value intact.
   </action>
   <action dev="AG" type="update">
     Updated Velocity to 1.4 and iText to 1.02b
   </action>
   <action dev="DC" type="add">
     Added standalone build target "validate-sitemaps".
     Added standalone build target "validate-stylesheets".
   </action>
   <action dev="AG" type="update">
     Updated Xindice to 1.1b4, xmldb-api to 20030701, xmldb-common to 20030701
     and xmldb-xupdate to 20040205
   </action>
   <action dev="AG" type="update">
     Updated Jetty to 4.2.19
   </action>
   <action dev="BRD" type="fix">
     CForms: &lt;fi:styling type="date"/&gt; is not needed (nor supported)
     anymore, the required information about the datatype and the pattern is
     now included in the widget instance XML.
   </action>
   <action dev="BRD" type="add">
     CForms: it is now possible to store arbitrary data with each widget
     instance by using the new setAttribute and getAttribute methods of the
     Widget interface.
   </action>
   <action dev="AG" type="add">
     Groovy script generator support in BSF block
   </action>
   <action dev="JH" type="fix" due-to="Derek Hohls">
     Renamed validate-set to constraint-set for consistency (the element name is also constraint-set).
   </action>
   <action dev="AG" type="update">
     Updated bsf to 2.3.0
   </action>
   <action dev="JH" type="fix" fixes-bug="15841">
     "Fixed" bug 15841 by raising an exception when something is tried to add
     to elements before attributes.
   </action>
   <action dev="JH" type="update">
     Changed blocks selection handling to allow more intuitive
     include.block.blockname syntax in (local.)blocks.properties. Old syntax
     exclude.block.blockname is still supported.
   </action>
   <action dev="UV" type="update">
     Enabled use of nested sitemap variables, e.g. {request-param:{1}}.
   </action>
   <action dev="AG" type="update">
     Updated antlr to 2.7.3
   </action>
   <action dev="AG" type="update">
     Deprecated Tokenizer and the methods count(), matchStrings(),
     replaceTokens() and both split() in StringUtils. The functionality of all
     this was replaced in favor of Apache commons-lang lib. They will be removed
     in Cocoon 2.2
   </action>
   <action dev="AG" type="update">
     Updated batik to 1.5.1, db-ojb to 1.0RC6
   </action>
   <action dev="TC" type="remove">
     Removed xmlform and jxforms blocks as confirmed by a users poll.
   </action>
   <action dev="TC" type="remove">
     Removed precept block. Was dead code.
   </action>
   <action dev="AG" type="update">
     Updated jdtcore to 2.1.3, update castor-xml to 0.9.5.3
   </action>
   <action dev="CZ" type="fix" fixes-bug="27764" due-to="Corin Moss" due-to-email="cmoss@tvnz.co.nz">
     DefaultIncludeCacheManager did not release xml-serializer under some circumstances.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27681" due-to="Peter Brant" due-to-email="peter.brant@courts.state.wi.us">
     DOMFactory can now create a document element.
   </action>
   <action dev="CZ" type="add">
     Databases: The xml-encoding for the SQLTransformer is now configurable.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27217" due-to="Andreas Hartmann" due-to-email="andreas@apache.org">
     Build System: New property "loglevel" that can be used in the patch files.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27518" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Portal: Fix problems with minimizing/maximizing of portlets.
   </action>
   <action dev="CZ" type="fix" fixes-bug="26566" due-to="Simon Mieth" due-to-email="simon.mieth@t-online.de">
     Portal: Fix problems with the portal block and using the CLI.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27658" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Portal: Add default PropertyManagerService implementation
   </action>
   <action dev="CZ" type="fix" fixes-bug="27657" due-to="Michal Durdina" due-to-email="durdina@asset.sk">
     Portal: Fix synchronization problem with JSR-168 portlets in IncludingHTMLSerializer.
   </action>
   <action dev="CZ" type="fix" fixes-bug="27602" due-to="Gunnar Brand" due-to-email="g.brand@interface-business.de">
     Improvement for AbstractReader: Don't wrap an already buffered stream.
   </action>
   <action dev="CZ" type="fix" fixes-bug="25437" due-to="Marco Rolappe" due-to-email="m_rolappe@web.de">
     ForwardEnvironmentWrapper delegates isResponseModified/setResponseIsNotModified to wrapped environment.
   </action>
   <action dev="JH" type="update" fixes-bug="27600">
     CForms: Change the syntax for repeater row identity handling.
   </action>
   <action dev="CZ" type="update">
     An internal redirect is now handled the same way as an external redirect would be handled.
     This includes that the error handler of the called pipeline is invoked in case of an error.
   </action>
   <action dev="CZ" type="update" fixes-bug="27188" due-to-email="durdina@asset.sk">
     Set the default encoding for the Portlet Environment.
   </action>
   <action dev="SMS" type="update">
     Move XSP into an own block.
   </action>
   <action dev="BD" type="update">
     Licenses changed to ASF 2.0 in all source files which had a license, using
     the ReplaceLicense tool from the committers CVS module.
   </action>
   <action dev="RP" type="add">
     Ant task (correctLinefeed) that corrects linefeed characters according to
     our standard (LF).
   </action>
   <action dev="RP" type="update">
     Apples use the new CocoonForms classes
   </action>
   <action dev="RP" type="update">
     Petstore samples use the new CocoonForms names
   </action>
   <action dev="RP" type="add">
     New Ant task ("woody2CocoonForms-renaming") that updates namespaces, sitemap components and
     flowscript functions (details see tools/target/upgrade-build.xml)
   </action>
   <action dev="RP" type="update">
     Renaming Woody to CocoonForms
     <ul>
       <li>The Woody block (src/blocks/woody) has moved into the new Cocoon Forms
           block (src/blocks/forms).</li>
       <li>new namespaces:<br/>
           <ul>
               <li>from xmlns:wd="http://apache.org/cocoon/woody/definition/1.0"
                   to   xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"</li>
               <li>from xmlns:wb="http://apache.org/cocoon/woody/binding/1.0"
                   to   xmlns:fb="http://apache.org/cocoon/forms/1.0#binding"</li>
               <li>from xmlns:wi="http://apache.org/cocoon/woody/instance/1.0"
                   to   xmlns:fi="http://apache.org/cocoon/forms/1.0#instance"</li>
               <li>from xmlns:wt="http://apache.org/cocoon/woody/template/1.0"
                   to   xmlns:ft="http://apache.org/cocoon/forms/1.0#template"</li>
           </ul>
       </li>
       <li>Java packages moved from org.apache.cocoon.woody to org.apache.cocoon.forms</li>
     </ul>
   </action>
   <action dev="AG" type="update">
     Updated Velocity engine to 1.4-rc1
   </action>
   <action dev="JH" type="fix" fixes-bug="27301">
     Fix namespace handling in FilterTransformer.
   </action>
   <action dev="JH" type="add" fixes-bug="27020" due-to="Peter Horsfield" due-to-email="peter@xml.grumpykitty.biz">
     Added grayscaling and color transformation to the ImageReader.
   </action>
   <action dev="JH" type="fix" fixes-bug="26851" due-to="Marco Rolappe" due-to-email="m_rolappe@web.de">
     LinkStatusGenerator now handles also links with a specified charset.
   </action>
   <action dev="JH" type="fix" fixes-bug="25934" due-to="Philipp Matthias Hahn" due-to-email="pmhahn@titan.lahn.de">
     Avoid "CLOBs" when indexing XML without superfluous whitespace (Lucene).
   </action>
   <action dev="JH" type="fix" fixes-bug="25594" due-to="Gernot Koller" due-to-email="grizzly@gmx.at">
     Allow streaming of uploaded files into a pipeline using StreamGenerator.
   </action>
   <action dev="JH" type="fix" fixes-bug="25483" due-to="Rui Alberto L. Gonçalves" due-to-email="rui-l-goncalves@ptinovacao.pt">
     Avoid accumulating of addresses and attachements in SendMailTransformer,
     when sending multiple mails, i.e. multiple sendmail elements at once.
   </action>
   <action dev="JH" type="fix" fixes-bug="25403" due-to="Marco Rolappe" due-to-email="m_rolappe@web.de">
     EncodeURLTransformer no longer creates a session.
   </action>
   <action dev="JH" type="add" fixes-bug="22400" due-to="Steve Krulewitz" due-to-email="skrul@yahoo.com">
     Added additional property &lt;column-case&gt; to the SQLTransformer with
     the possible values "preserve", "uppercase", and "lowercase".
   </action>
   <action dev="JH" type="fix" fixes-bug="27254" due-to="Georg Ragaller" due-to-email="georg.ragaller@nse.de">
     Fixed path separator handling in cocoon.bat/.sh and Loader.java.
   </action>
   <action dev="JH" type="fix" fixes-bug="27456" due-to="Oscar Picasso" due-to-email="oscpro@yahoo.com">
     Fixed duplicate startDocument event in BetwixtTransformer.
   </action>
   <action dev="AG" type="update">
     Updated POI to 2.5-final-20040302
   </action>
   <action dev="CZ" type="update">
     Pass notification object to coplet error pipelines so it can react on it.
   </action>
   <action dev="AG" type="update" fixes-bug="24457" due-to-email="ouzo@wlkp.org" due-to="Leszek Gawron">
     Updated xalan to 2.6.0
   </action>
   <action dev="AG" type="update">
     CForms: Support for multiple unique-row-id in a repeater
   </action>
   <action dev="VG" type="update">
     CForms: Aggregate field supports both directions (split / combine), and arbitrary
     types (not strings only).
   </action>
   <action dev="VG" type="add">
     CForms: Added String() function. Converts argument to string value.
   </action>
   <action dev="CZ" type="update">
     Update Avalon Excalibur packages to released versions.
   </action>
   <action dev="AG" type="update">
     Updated joost to 20031219, qdox to 1.3 and quartz to 1.3.2
   </action>
   <action dev="AG" type="update">
     Updated xerces to 2.6.2
   </action>
   <action dev="CZ" type="update">
     Make the current sitemap service manager available through the component context.
   </action>
   <action dev="VG" type="add">
     Portal block: Add portlet environment to build JSR 168 portlets with Cocoon.
                   This is a contribution by Alex Rudnev (alex.rudnev@dc.gov)
                   and Vadim Gritsenko (vadim.gritsenko@dc.gov).
   </action>
   <action dev="CZ" type="update">
     Adding basket coplet to the portal.
   </action>
   <action dev="CZ" type="update" fixes-bug="25093" due-to-email="Alfred.Nathaniel@swx.com" due-to="Alfred.Nathaniel">
     Patch for allowing empty values in configuration of defaults input module.
   </action>
   <action dev="CZ" type="update" fixes-bug="26896" due-to-email="m_rolappe@web.de" due-to="Marco Rolappe">
     Patch for disposing components in the properties in xml file module.
   </action>
   <action dev="AG" type="update">
     Updated commons-httpclient to 2.0-final
   </action>
   <action dev="AG" type="update">
     Updated jdtcore to 2.1.2, and Ant to 1.6.1
   </action>
   <action dev="CZ" type="update" fixes-bug="26896" due-to-email="jon.evans@misgl.com" due-to="Jon Evans">
     Patch for any elemens inside a coplet:content element and not just only text.
   </action>
   <action dev="CZ" type="update">
     Adding SAX recording to AbstractSAXTransformer.
   </action>
   <action dev="VG" type="remove">
     Remove non-FOM flow classes and system.js
   </action>
 </release>
 <release version="2.1.4" date="February 12 2004">
   <action dev="AG" type="update">
     Updated iText to 1.02
   </action>
   <action dev="SW" type="add">
     Woody block: every widget can now have a validator. This allows for example
     repeaters to perform inter-row validation or overall form-level validation.
   </action>
   <action dev="UC" type="add">
     Woody block: added support for rich text editing using InteractiveTools' HTMLArea.
   </action>
   <action dev="CZ" type="update">
     ResourceReader: Is now configurable as well. All parameters can be defined
     during configuration of the reader. Fixed also a minor bug in the last-modified
     detection.
   </action>
   <action dev="GP" type="add" >
     OJB-Block: Added our own OJB ConnectionFactory which uses the
     DataSources configured in cocoon.xconf
   </action>
   <action dev="AG" type="update">
     Updated POI to 2.0-final
   </action>
   <action dev="CZ" type="fix" fixes-bug="26186" due-to-email="michael.gerzabek@gmx.net" due-to="Michael Gerzabek">
     Fixing memory leak in the cocoon protocol.
   </action>
   <action dev="JH" type="add" fixes-bug="14327" due-to="Marco Rolappe" due-to-email="m_rolappe@web.de">
     JSPReader: The output encoding of the reader is now configurable.
   </action>
   <action dev="VG" type="remove">
     woody.js has been removed. Please use woody2.js instead.
   </action>
   <action dev="UH" type="update" fixes-bug="25356">
     Resurrected the Slide block and made it to work with current developement version
     of Slide (2.0-b1). Complete revamping of the Slide sample admin app.
   </action>
   <action dev="CZ" type="fix" fixes-bug="26450" due-to-email="Ralph_Goers@dslextreme.com" due-to="Ralph Goers">
     Allow the Authentication Framework to invoke a pipeline during logout
   </action>
    <action dev="AG" type="update">
     Updated commons-collections to version 3.0
   </action>
   <action dev="CZ" type="add">
     First version of the JSR-168 support in the portal engine.
   </action>
   <action dev="AG" type="update">
     Updated commons-httpclient to the version 2.0-RC3
   </action>
   <action dev="UH" type="update">
     Renamed JspGenerator to JSPGenerator to match JSPEngine and JSPReader naming convention.
   </action>
   <action dev="UH" type="fix" fixes-bug="25694" due-to-email="johan@hippo.nl" due-to="Johan Stuyts">
     JSPEngineImpl incorrectly converts bytes to characters.
   </action>
   <action dev="VG" type="update">
     Woody expression manager supports registration of custom functions (see cocoon.xconf).
     Added IsNull function.
   </action>
   <action dev="AG" type="update">
     Updated Jakarta ORO to the version 2.0.8.
   </action>
   <action dev="AG" type="update">
     Updated Lucene to 1.3 final.
   </action>
   <action dev="AG" type="fix"  fixes-bug="25664" due-to-email="karel.vervaeke@pandora.be" due-to="Karel Vervaeke">
     Build fails on windows without cygwin.
   </action>
   <action dev="AG" type="update">
     Updated Ant to 1.6.0.
   </action>
   <action dev="CZ" type="update">
     Remove dependencies to Xalan (from portal-fw, authentication-fw, session-fw and core)
   </action>
   <action dev="CZ" type="update">
     Portal-Engine: Added some new samples (for inter-coplet communication,
     cleaned up the sample, fixed some bugs and added some new components
     for developing own coplets.
   </action>
   <action dev="MPO" type="add" >
     Changed semantics on the cforms binding. Added a @direction (which replaces
     the @read-only) and a @lenient attribute on all binding implementations in
     the pool.
   </action>
   <action dev="AG" type="fix" due-to-email="ltrillaud@jouve.fr" due-to="Laurent Trillaud">
     Fix NPE error when pointed tag is empty in xsp-session-fw:getxml. Applying
     patch from ltrillaud@jouve.fr (ltrillaud@jouve.fr).
   </action>
   <action dev="VG" type="update">
     ResourceExistsSelector now works the same way as ResourceExistsAction does.
     It can now detect existence of any Cocoon resource, not only files in context.
     Default value for prefix was changed from '/' to ''. For old behavior, use prefix
     'context://'.
   </action>
   <action dev="SW" type="update">
     Fixed and updated the stores and made them instrumentable to follow their size and
     the number of hits and missed.
   </action>
   <action dev="SW" type="add">
     New PipelineUtil class that extends the features or <code>cocoon.processPipelineTo()</code>
     to SAX and DOM outputs.
   </action>
   <action dev="SW" type="add">
     The "cocoon" object in flowscript has two new methods that allow Java classes
     instanciated by a flowscript to access e.g. request, response and components
     without requiring a dependency on the "FOM_Cocoon" class.<br/>
     <code>cocoon.createObject(Class)</code> creates an object and honors the various
     Avalon lifecycle interfaces implemented by an object.<br/>
     <code>cocoon.disposeObject(Object)</code> disposes an object if needed.
   </action>
   <action dev="VG" type="update">
     Reworked I18nTransformer implementation to use new version of XMLResourceBundle.
   </action>
   <action dev="VG" type="update">
     Reworked XMLResourceBundle implementation. Now it supports only XML bundles with
     fixed syntax (same as for I18nTransformer dictionaries), and instead of XPath
     keys uses message keys (which is faster). Returned resources now are instances of
     ParamSaxBuffer class, and not DOM nodes.
   </action>
   <action dev="VG" type="update">
     Modified BundleFactory interface to return Bundle instead of Component.
   </action>
   <action dev="VG" type="update">
     Cocoon Forms (Woody) selection lists now allow empty value (which is
     translated to the null object)
   </action>
   <action dev="VG" type="update">
     Deprecate MirrorRecorder. It will be removed starting with Cocoon 2.2
   </action>
   <action dev="VG" type="add">
     In XMLDBTransformer, create operation now is able to create collections.
     It will create collection if oid attribute value ends with '/', otherwise
     it will work as before (creates XML resource)
   </action>
   <action dev="VG" type="add">
     Added optional collection attribute on &lt;xmldb:query/&gt; element of XMLDBTransformer.
     This attribute specifies collection name, relative to the transformer's base
     collection, which is used as base collection for current create/delete/update
     operation
   </action>
   <action dev="VG" type="remove">
     Remove deprecated XMLDB generators from the sitemap
   </action>
   <action dev="VG" type="fix" fixes-bug="25132">
     Do not double decode URI in CocoonServlet
   </action>
   <action dev="JH" type="fix">
     Resurrected the XMLDB samples including XIndice 1.1b1 in Cocoon.
   </action>
   <action dev="VG" type="remove">
     I18n transformer does not support old configuration syntax anymore
     (parameters catalogue-name, catalogue-location). Use &lt;catalogues/&gt;
     element instead.
   </action>
   <action dev="VG" type="fix">
     I18n transformer now works with translations containing elements with
     attributes.
   </action>
   <action dev="AG" type="update">
     Update libs Xerces to 2.6.0 and xml-apis.jar.
   </action>
   <action dev="SW" type="add">
     Woody: new double-list styling for MultivalueField.
   </action>
   <action dev="SW" type="add">
     New MountTableMatcher to define "mount tables" that allow external
     directories to be mounted in a sitemap without requiring to modify the
     sitemap. It's use has been included in the samples sitemap, thus allowing
     mounts that surivive a "build clean webapp".
   </action>
   <action dev="SW" type="add">
     Woody: added rendering of &lt;wd:help&gt; popup panel on a "?" icon.
   </action>
   <action dev="SW" type="add">
     Woody: new upload widget. This required some modification on multipart.Part
     objects that can now survice the end of processing of the current request.
   </action>
   <action dev="DC" type="update">
     Updated Entity Resolver from pre-release to official
     xml-commons-resolver-1.1 release.
   </action>
   <action dev="VG" type="update">
     NetUtils deparameterize() and parameterize() extended to support
     multivalue parameters. Multivalue parameters are returned as String
     arrays.
   </action>
   <action dev="UH" type="add">
     Add cocoon.sendStatus([Number] sc) and cocoon.response.setStatus([Number] sc)
     to FOM.
   </action>
   <action dev="AG" type="update">
     Updated Jetty to 4.2.14
   </action>
   <action dev="CZ" type="fix" fixes-bug="24093">
     Disable accessing files outside the context via the context protocol.
   </action>
 </release>
 <release version="2.1.3" date="November 13 2003">
   <action dev="DC" type="fix" fixes-bug="24463" due-to-email="tek@leonid.de" due-to="Leo Leonid">
     Complete overhaul of the Petstore sample. Adding Woody form processing
     Flow, and dealing with persistent data. Implementation of missing or
     unfinished parts. See the the bug report and its attached notes.
   </action>
   <action dev="CZ" type="fix">
     The CachingPointProcessingPipeline now uses Parameters instead of
     an own configuration scheme. See the demo sitemap for the changed configuration.
   </action>
   <action dev="JH" type="fix" fixes-bug="23299" due-to-email="simon.mieth@t-online.de" due-to="Simon Mieth">
     XMLByteStreamCompiler now handles also text nodes longer than 32 k.
   </action>
   <action dev="CZ" type="fix" fixes-bug="23538" due-to-email="samc@atnet.net.au" due-to="Sam Coward">
     Reducing
     setDocumentLocator calls in JXTemplateGenerator and JXFormsGenerator.
   </action>
   <action dev="BD" type="add" fixes-bug="24294" due-to="Jelle Alten" due-to-email="jelle@ordina.nl">
     sitemap-viewer added to the scratchpad samples
   </action>
   <action dev="AG" type="fix" fixes-bug="19638" due-to-email="Grigorios.Merenidis@Dresdner-Bank.com" due-to="Grigorios Merenidis">
     Fix HSSFSerializer Bug: Same cell definitions blows document. Applying
     patch from Grigorios Merenidis (Grigorios.Merenidis@Dresdner-Bank.com).
   </action>
   <action dev="CZ" type="fix" fixes-bug="24326" due-to-email="andrzej@chaeron.com" due-to="Andrzej Taramina">
     SQLTransformer: Correcting handling of XML data with XML declarations.
   </action>
   <action dev="CZ" type="fix" due-to="Volker Schmitt">
     Fixing threading problems in the ExtendedComponentSelector.
   </action>
   <action dev="CZ" type="fix" fixes-bug="24409" due-to-email="holz@fiz-chemie.de" due-to="Martin Holz">
      Fixing namespace handling in the send-mail transformer.
   </action>
   <action dev="CZ" type="fix" due-to="Andrea Poeschl" due-to-email="poeschel@aidossoftware.com">
      Fixing precompilation of the XSPs for the CLI.
   </action>
   <action dev="BRD" type="update">
      Woody: in the form definition, for widgets that have child widgets, those
      child widgets should now be embedded inside a wd:widgets element.
      Practical update information can be found
      <link href="http://wiki.apache.org/cocoon/WoodySyntaxUpdateForWidgetsElement">
      in the wiki</link>.
   </action>
   <action dev="AG" type="update">
     Updated Xalan to 2.5.2
   </action>
   <action dev="BRD" type="update">
     Woody: did some cleanup of the FormHandler interface: moved it to the event subpackage,
     made it handle all types of WidgetEvents (there's an AbstractFormHandler which splits
     ActionEvents from ValueChangedEvents). Removed the deprecated RepeaterHandler class,
     and the unused CarSelectorHandler class.
   </action>
   <action dev="SW" type="update">
     Serializers now can optionally implement the SitemapModelComponent interface, meaning then can
     be given a "src" attribute and parameters using &lt;map:parameter&gt;.
   </action>
   <action dev="SW" type="update">
     Sitemap components (matchers, actions, generators, etc) can know the location of their use in the
     sitemap unsing a special parameter named Constants.SITEMAP_PARAMETERS_LOCATION.
   </action>
   <action dev="CZ" type="fix" fixes-bug="23625">
     Closing some memory leaks in the source and component handling.
   </action>
   <action dev="CZ" type="fix" fixes-bug="22377" due-to="Sam Coward" due-to-email="samc@atnet.net.au">
     Cocoon Protocol: Fixed a bug that broke the environment handling in some cases for internal pipeline calls. (This should also fix bug #15843).
   </action>
   <action dev="BRD" type="fix" fixes-bug="23648" due-to="Alfred Fuchs" due-to-email="email@alfred-fuchs.de">
     HTMLGenerator: fixed NullPointerException in case the "HTML" file contained an XML declaration.
   </action>
   <action dev="UC" type="fix">
    Fixed ResolverImplTestCase so that the "test" build target does not fail (it still depends on the
    deprecated block, though).
   </action>
   <action dev="BRD" type="fix">
     Woody: fixed a bug causing an endless loop during validation of a field if
     during the validation of the field the value of the field itself was again
     requested.
   </action>
   <action dev="BRD" type="fix" fixes-bug="16718" due-to="Daniel Fagerstrom" due-to-email="danielf@nada.kth.se">
     Patched SQLTransformer to use only one connection.
   </action>
   <action dev="GR" type="add" fixes-bug="14845" due-to="Micheal Homeijer" due-to-email="m.homeijer@devote.nl">
     Patch to XMLDBTransformer to generate a key on create if it is not provided
   </action>
   <action dev="SW" type="add">
     New JavaScriptBinding for Woody, which allows writing specific binding strategies
     with two JavaScript snippets (one for load, one for save).
   </action>
   <action dev="GR" type="update" fixes-bug="23575" due-to="Unico Hommes" due-to-email="unico@hippo.nl">
    TraversableGenerators  can now be used with plain resources too (not only
    collections). XPathTraversableGenerator has been revamped
    in the XML recognition pattern (using mime type mapping too).
    While at it, a bug regarding non-existent sources has been
    fixed.
   </action>
   <action dev="AG" type="update">
     Update lib excalibur-i18n to 1.1, update iText to 1.01
   </action>
   <action dev="GH" type="add" fixes-bug="22813" due-to="Klaus Bertram" due-to-email="k.bertram@kbsm.de">
     Add initial support for IE in linotype.
   </action>
   <action dev="AG" type="add">
     Woody block: New integer Datatype.
   </action>
   <action dev="CH" type="add">
     SimpleFormTransformer: multiple values not repeatedly inserted anymore,
     value is consumed instead. Add repeater tag. Make transformer inherit from
     AbstractSAXTransformer. Update examples to show basic repeat tag usage.
   </action>
 </release>
 <release version="2.1.2" date="September 30 2003">
   <action dev="VG" type="fix" fixes-bug="23516">
     Fix default namespace handling in Xscript variables.
   </action>
   <action dev="AG" type="add">
     OJB block: Object Relational mapping tool integration.
   </action>
   <action dev="BD" type="add">
     Slop block: New YAPT sample, lightweight presentation tool.
   </action>
   <action dev="CZ" type="add" fixes-bug="23171" due-to="Volker Schmitt" due-to-email="volker.schmitt@basf-it-services.com">
     Fixing release of Source in the JXTemplateGenerator.
   </action>
   <action dev="AG" type="update">
     Update lib commons-lang to 2.0, iText to 1.00
   </action>
   <action dev="SW" type="add">
     New event-handling system for Woody. Value change and action event handlers
     can be attached respectively to field and action widgets, and event handlers
     can be both Java classes or JavaScript snippets in the form definition.
     <br/>
     New &lt;wd:repeater-action> widget to automatically handle rows addition and
     deletion on repeaters (a very common need).
     <br/>
     New &lt;wd:submit> widget to distinguish between actions (act on the form and
     redisplay it) and submits that terminate the form.
     <br/>
     Ability to trigger form submit on any widget value change (including inputs,
     popups, etc) to trigger server-side event handlers through client-side interaction.
     <br/>
     Rewriting of the Woody/FlowScript integration to be more simple.
   </action>
   <action dev="AG" type="update">
     Update libs Xerces to 2.5.0 and Ant to 1.5.4
   </action>
   <action dev="JH" type="fix" fixes-bug="23208"
     due-to="Yury Mikhienko" due-to-email="yuryx@mobicomk.donpac.ru">
     Fixed internationalization support for HSSFSerializer by setting also the
     output encoding in the Workbook to UTF-16.
   </action>
   <action dev="GP" type="fix">
     Fixed issues the cron block had when cocoon (or the servlet container ?)
     allows reloads.
   </action>
   <action dev="VG" type="remove">
     Removed deprecated XPathProcessor and implementations. These classes where
     moved into the Excalibur XMLUtil package. Removed Jaxen libraries used by
     JaxenProcessorImpl.
   </action>
   <action dev="JH" type="update" fixes-bug="21730">
     Replaced the deprecated LogkitManager stuff with its LoggerManager
     counterpart. This is Cocoon internal and should not affect components as
     long as you don't use LogKitManageable interface.
   </action>
   <action dev="BRD" type="fix">
     Woody binding framework: fixed a problem with the deletion of rows by the
     repeater binding, whereby not all deleted rows where removed from the
     bean or XML model.
   </action>
   <action dev="BRD" type="add">
     Errors handled by map:handle-errors are now logged to the logcategory
     "sitemap.handled-errors". Previously they weren't logged.
   </action>
 </release>
 <release version="2.1.1" date="September 05 2003">
   <action dev="CZ" type="update">
     Moved scratchpad into an own block. This allows that code in the
     scratchpad can depend on other blocks. The scratchpad can now also
     have own configurations.
   </action>
   <action dev="CZ" type="update">
     Extended the build system. If one block depends on the other it
     can now also use the libraries of the other block. This avoids
     moving the libs to the lib/optional directory.
   </action>
   <action dev="GP" type="add">
     cron block added
   </action>
   <action dev="VG" type="update">
     Updated Jakarta Regexp library to the version 1.3
   </action>
   <action dev="CZ" type="add" fixes-bug="13070" due-to="Antonio Gallardo" due-to-email="agallardo@agsoftware.dnsalias.com">
     Applying patch for adding new session-fw logicsheet that allows access to a session context from with xsp.
   </action>
   <action dev="BRD" type="fix">
     Fixed a StackOverflowError in errors2html.xslt that could occur with error
     pages containing very long stack traces.
   </action>
   <action dev="BRD" type="update">
     Woody: renamed the button widget to action widget. If you were using this
     widget, you will need to update your form definition files.
   </action>
   <action dev="CZ" type="add">
     Adding new RequestDataStore component that can be used as a replacement
     for the component marker interfaces RequestLifeCycleComponent and
     GlobalRequestLifeCycleComponent obsolete.
   </action>
   <action dev="CZ" type="add">
     Adding contributions to the portal from Friedrich Klenner (friedrich.klenner@rzb.at),
     Gerald Kahrer (gerald.kahrer@rizit.at) and Gernot Koller (gernot.koller@rizit.at):
     caching uri coplet, application coplet, proxy transformer, proxy reader and link
     transformer.
   </action>
   <action dev="UV" type="fix">
     Changed logkit attribute of &lt;logging in cli.xconf to be relative to context dir,
     rather than CLI invocation dir.
   </action>
   <action dev="UV" type="add">
     Added include/exclude feature to CLI to allow fine-tuning of crawling of a site.
   </action>
   <action dev="BRD" type="fix" fixes-bug="18131">
     Upgraded excalibur-event package so that Tomcat shutdown and continuations
     cleanup now works properly.
   </action>
   <action dev="CZ" type="add">
     Add a session-context input module to the session framework to retrieve
     information from a session context in the sitemap.
   </action>
   <action dev="CZ" type="add" fixes-bug="21399" due-to="Peter Ross" due-to-email="peter@emailross.com">
     Applying patch for processing http.nonProxyHosts in WebServiceProxyGenerator.
   </action>
   <action dev="JH" type="fix" fixes-bug="22574" due-to="Neil Bacon" due-to-email="nbacon@pinnaclesoftware.com.au">
     POI block: fixed formula support. If no ValueType attribute is set on
     &lt;gmr:Cell/&gt;, the cell content will be interpreted as formula.
   </action>
   <action dev="CZ" type="add" fixes-bug="21848" due-to="Unico Hommes" due-to-email="unico@hippo.nl">
     Applying patch for using 'host' in the logging patterns.
   </action>
   <action dev="JH" type="fix" fixes-bug="22498" due-to="Conal Tuohy" due-to-email="conal@nzetc.org">
     Lucene block: LuceneIndexTransformer configuration fixed.
   </action>
   <action dev="CZ" type="fix" fixes-bug="12173">
     Applying patch from Renaud Bruyeron (bruyeron@fullsix.com) that fixes
     the prematurely closing of the connection causing in the SQL Transformer.
   </action>
   <action dev="JH" type="update" fixes-bug="22479"
     due-to="Mark Leicester" due-to-email="mark.leicester@energyintellect.com">
     Midi block: added transposition and inversion stylesheets and samples.
   </action>
   <action dev="SW" type="fix">
     Rewrite handling of internal-redirects (i.e. redirects to "cocoon:" URLs). Previously, internal redirects
     where not handled for internal requests (i.e. sitemap source). This bug prevented among other cases the use
     of flow-driven pages enclosed in an aggregation.
   </action>
   <action dev="CZ" type="fix">
     The jars in /lib/local are used during compilation again.
   </action>
   <action dev="SW" type="fix" fixes-bug="20445">
     Update the I18nTransformer so that it also accepts the 2.0 namespace. This ensures backwards compatibility
     for 2.0 applications. Additionally, attributes on "i18n:" elements can now be in the default namespace (meaning
     we can now write &lt;i8n:text key="foo"&gt; instead of &lt;i18n:text i18n:key="foo"&gt;)
   </action>
   <action dev="BRD" type="fix">
     Fix in the SVG serializer: if setDocumentLocator wasn't called on the
     serializer (which can happen if you have e.g. an XSLT transformer in the
     pipeline), then the base URI for the SVG document wasn't set which could
     cause exceptions. Now it is set to http://localhost/ in such cases. Also
     fixed a problem with the document locator not being reset between
     subsequent retrievals of the serializer from the pool.
   </action>
   <action dev="VG" type="fix">
     Fix Jisp based persistent store: close database files on Cocoon shutdown and
     re-use existing database and index files on startup.
   </action>
   <action dev="SW" type="fix" fixes-bug="22239">
     Views are now always loaded before resources, ensuring proper call of views from resources.
     Redeclaring a component (e.g. file generator) with no "label" attribute was wrongly inheriting
     view labels from the same component in the parent sitemap.
   </action>
 </release>
 <release version="2.1" date="August 12 2003">
  <action dev="JH" type="update" fixes-bug="22288" due-to="Mark Leicester" due-to-email="mark.leicester@energyintellect.com">
    Midi block refactoring applied.
  </action>
  <action dev="CZ" type="add" fixes-bug="22270" due-to="Unico Hommes" due-to-email="unico@hippo.nl">
    Patch for allowing to specify a cocoon-view for internal requests in the query string.
  </action>
  <action dev="JH" type="fix" fixes-bug="19839">
    Instrumentation support: Updated client libraries to make instrumentation work again.
    Added a target "start-instrumentation-client" to Cocoon's ant files and removed "runclient" shell scripts.
  </action>
  <action dev="JH" type="fix" fixes-bug="22064" due-to="Nicolas Maisonneuve" due-to-email="nicoo_@hotmail.com">
    XMLDBTransformer: retrieving auto-generated resource id.
  </action>
  <action dev="BD" type="add" due-to="Mark Leicester" due-to-email="mark.leicester@energyintellect.com">
    midi block added
  </action>
  <action dev="BD" type="add">
    slop block added (Simple Line Oriented Parser)
  </action>
  <action dev="JH" type="fix" fixes-bug="21931, 22173" due-to="Unico Hommes"
    due-to-email="unico@hippo.nl">
    LDAPTransformer now handles multiple attribute values.
    The filter element is also configurable via a sitemap parameter.
  </action>
  <action dev="JH" type="add" fixes-bug="20033, 22042" due-to="Yury Mikhienko"
    due-to-email="yuryx@mobicomk.donpac.ru">
    LDAPTransformer: Added attribute modification methods: add, replace, modify, append.
  </action>
  <action dev="BRD" type="fix">
    IMPORTANT: Flow: cleaned up the situation with regards to the "uri" argument to the
    sendPage, sendPageAndWait, and processPipelineTo functions.  URI's starting
    with a slash are resolved against the root sitemap, URI's not starting with
    a slash are resolved against the current sitemap. Specifying a scheme is not
    allowed.
  </action>
  <action dev="BRD" type="fix" fixes-bug="19841">
    I18nTransformer: if content of i18n:text is empty and translation is not
    found, use untranslated-text.
  </action>
  <action dev="CH" type="fix" fixes-bug="22050" due-to="Gildas Guillemot"
    due-to-email="gguillemot@rennes.jouve.fr">
    ESQL: explicitly release database resources.
  </action>
  <action dev="CZ" type="fix" fixes-bug="21213" due-to="Frank Taffelt"
    due-to-email="frank.taffelt@interface-business.de">
    Paginator now caches dynamic pagesheet correctly.
  </action>
  <action dev="CZ" type="add">
    Configuration logkit.xconf can now be read from any location.
  </action>
  <action dev="CZ" type="fix">
    Fix the ignoreErrors handling in the cinclude transformer.
  </action>
 </release>
 <release version="2.1rc1" date="July 29 2003">
  <action dev="VG" type="update">
    Updated FOP to the latest released version, 0.20.5.
  </action>
  <action dev="GR" type="add">
    Added delete capabilities to the SourceWritingTransformer.
  </action>
  <action dev="GR" type="add" fixes-bug="21881" due-to="Guido Casper"
    due-to-email="gcasper@s-und-n.de">
    Add a defaultContentType parameter to StreamGenerator, to comply
    with misbehaving clients.
  </action>
  <action dev="GR" type="add" fixes-bug="21778" due-to="Guido Casper"
    due-to-email="gcasper@s-und-n.de">
    Add a new set of WebDAV samples, with the capability of serving
    WebDAV content straight from Cocoon.
  </action>
  <action dev="DC" type="fix" fixes-bug="21557" due-to="Conal Tuohy" due-to-email="conal@nzetc.org">
    Various fixes and enhancements to Lucene search. Propagate the lucene:*
    elements to the result tree and add "elapsed-time" attribute, so now
    possible to transform the results into a useful report about indexing.
    Fix "incremental" indexing.
  </action>
  <action dev="GR" type="add">
    Added CLOB support in SQLTransformer.
  </action>
  <action dev="GR" type="add">
    Added an (unstable) HTMLTransformer to the html block, to parse and
    tidy an XML containing escaped (and possibly incorrect) HTML
  </action>
  <action dev="GR" type="update">
    Added URL encoding of user/password in the WebDAV source
    (webdav://user:password@host/path)
  </action>
  <action dev="VG" type="update">
    Decouple core XSP logicsheet from database classes to allow XSP deployment
    without excalibur datasource JAR file. If your XSP pages use datasources
    directly (and not through ESQL logicsheet), add xsp:include.
  </action>
  <action dev="CZ" type="update">
   The authentication framework now uses a configurable component to try to authenticate a user.
   This allows to drop in own authentication services or e.g. the servlet authentication mechanism.
  </action>
  <action dev="JH" type="fix" fixes-bug="4934" due-to="Ryder Rishel" due-to-email="ryderblue@yahoo.com">
   Made JSPs working in Resin that don't end on *.jsp.
  </action>
  <action dev="JH" type="update">
   All Reader accessing Avalon components now extend the ServiceableReader
   instead of deprecated ComposerReader. It pertains the JSPReader, the
   DatabaseReader and the AxisRPCReader.
  </action>
  <action dev="GR" type="add">
   Added a WebDAV block, with an initial implementation of
   a modifiable and traversable WebDAV source.
  </action>
  <action dev="GR" type="add">
   Added a DirectoryGenerator implementation on scratchpad
   working on any Traversable Source.
  </action>
  <action dev="CZ" type="add">
   Adding global request lifecycle component.
  </action>
  <action dev="CZ" type="update">
   The cache used by the caching processing pipeline is now configurable
   allowing to use different caches in different pipelines.
  </action>
  <action dev="CZ" type="update">
   The cache uses now a configured store. This allows to use differently
   configured caches at the same time.
  </action>
  <action dev="JH" type="fix" fixes-bug="14327">
   Reverted the encoding changes in the JSP engine. The fix should be done in
   the JSPReader, that already contains a TODO.
  </action>
  <action dev="RP" type="fix">
    Web3: The stylesheets in the examples use Xalan as transformer and work correctly now
    as XSLTC has problems with the 'rfc' namespace.
  </action>
  <action dev="RP" type="update">
    Changed namespace for Web3RfcTransformer to 'http://apache.org/cocoon/Web3-Rfc/1.0'.
  </action>
  <action dev="CZ" type="add">
    ParanoidCocoonServlet can optionally configured with a file containing the classpath.
  </action>
  <action dev="CZ" type="add">
    Configuration cocoon.xconf can now be read from any location.
  </action>
  <action dev="SW" type="fix">
    Flow view can now be in "internal-only" pipelines.
  </action>
  <action dev="JH" type="update">
   Updated FOP to 0.20.5rc3a.
  </action>
  <action dev="JH" type="update">
   Moved WebServiceProxyGenerator + some samples into the proxy block.
  </action>
  <action dev="JH" type="update" fixes-bug="12216">
   Updated common-httpclient from CVS checkout of 2003-02-10 to 2.0 beta 2.
   This hopefully fixes also the bug. Moved it into core because of dependencies.
  </action>
  <action dev="JH" type="fix" fixes-bug="21340" due-to="Peter Ross" due-to-email="peter@emailross.com">
   Refactored the WebServiceProxyGenerator: "host parameter is null" fixed, replaced deprecated
   stuff, removed all work arounds (hopefully no longer needed), removed the buggy "&lt;?xml" test,
   replaced getResponseBodyAsString() with getResponseBody() (but encoding issue is still not fixed).
  </action>
  <action dev="CZ" type="fix" fixes-bug="20115" due-to="Tim Goodwin" due-to-email="tjg@star.le.ac.uk">
    Applied patch for implementing exists for the xmldb source.
  </action>
 </release>
 <release version="2.1m3" date="July 5 2003">
  <action dev="JH" type="update">
    Refactored the XPathDirectoryGenerator: provides all the functionality of DirectoryGenerator now,
    parameter xpath added replacing the xpointer-ish syntax, additional parameter xmlFiles for specifying
    a pattern for XML files, removed docid attribute on dir:xpath + some minor fixes.
  </action>
  <action dev="BRD" type="add" fixes-bug="15150" due-to="Danny Mui" due-to-email="danny@muibros.com">
    Added merged region support to HSSF (= Excel) Serializer.
  </action>
  <action dev="JH" type="update" fixes-bug="21248" due-to="Alfred Nathaniel" due-to-email="Alfred.Nathaniel@swx.com">
    Updated POI from 1.7.0-dev to 1.10.0-dev. Patched code accordingly. Fixed usage of deprecated methods.
  </action>
  <action dev="CH" type="fix" due-to="Michael Gerzabek" due-to-email="michael.gerzabek@aon.at">
    Web3: Fix extra close element on connectivity loss.
  </action>
  <action dev="CH" type="update">
    SimpleFormTransformer: Make complete form protectable, ability to use more
    than one transformation with different fixed attributes, optionally let
    error elements pass, configure prefix, suffix, separator at configuration
    time, add optional use of form name, formating.
  </action>
  <action dev="CH" type="update">
    Added feature to allow a database action (i.e. delete) not to fail if no
    row was affected. Formating. Use toString() to convert to String rather
    than cast.
  </action>
  <action dev="CH" type="add">
    Added SimpleSelector that operates just on Strings. Useful in conjunction
    with a sitemap variable or input module.
  </action>
  <action dev="JH" type="fix" fixes-bug="19104" due-to="Johan Stuyts" due-to-email="johan@hippo.nl">
    Fixed SchematronValidator.evalRule() in xmlforms block: create a relative context instead of an absolute one.
    This allows to refer to another form field by using relative paths (../password) instead of choosing a common root.
  </action>
  <action dev="JH" type="fix" fixes-bug="20682" due-to="Wolfgang Kowarschick" due-to-email="kowa@fh-augsburg.de">
    Fixed return of different DirValidity objects on multiple calls on getValidity() in the DirectoryGenerator.
  </action>
  <action dev="DC" type="update">
    The DTDs are now completely handled by the catalog entity resolver.
    The old copies of DTDs at xdocs/dtd/ have been removed. If you are
    editing the Cocoon xdocs with an xml editor, then point it to the
    WEB-INF/entities/catalog or catalog.xcat file. If your editor cannot
    utilise an entity resolver, then get a better editor.
  </action>
  <action dev="UV" type="add">
    Added support for permanent redirects in &lt;map:redirect-to&gt;
  </action>
  <action dev="JH" type="fix">
    Fixed some caching (added missing parameters and changed algorithm for cache key generation)
    and logging issues in the DirectoryGenerator. Fixed the root pattern handling (if not matching
    directory found leave out the ancestors). Fixed empty src attribute handling.
  </action>
  <action dev="GP" type="update">
    Upgraded to new Axis 1.1 release
  </action>
  <action dev="CZ" type="add">
    Adding concept of parent-aware components, making e.g. the usage of
    selectors with a component manager hierarchy much easier.
  </action>
  <action dev="JH" type="fix" fixes-bug="15365" due-to="Maciek Kaminski" due-to-email="maciejka@tiger.com.pl">
    Added/fixed internationalization support for HSSFSerializer by setting the output encoding
    hardcoded to UTF-16. It is obviously only a hack, but so it is at least usable for more people.
  </action>
  <action dev="JH" type="fix" fixes-bug="20658" due-to="Alfred Nathaniel" due-to-email="Alfred.Nathaniel@swx.com">
    Fixed usage of removed method XSPUtil.include() in ESQL logicsheet &lt;esql:get-xml/&gt;
  </action>
  <action dev="JH" type="fix" fixes-bug="14977" due-to="Tony Culshaw" due-to-email="tony@cultech.com.au">
    Fixed NPE in SQLTransformer.serializeData()
  </action>
  <action dev="JH" type="add" fixes-bug="20477" due-to="Arje Cahn" due-to-email="arje@hippo.nl">
   Added cHTML/iMode "Hello World!" sample (provided by Arje Cahn)
  </action>
  <action dev="BRD" type="update">
    Upgraded Xalan (includes XSLTC) from a CVS snapshot (20030506) to version 2.5.1.
  </action>
  <action dev="SW" type="update">
    Updated ParanoidCocoonServlet, which is now an easy solution to the
    well-known endorsed library problem (incompatible version of Xalan in
    Cocoon and in JDK 1.4+).
  </action>
  <action dev="DC" type="fix" fixes-bug="14327">
    Encoding-related change to the JSP engine: the response charset is now
    retrieved from the Content-Type, and if not found ISO-8859-1 is used as
    default (previously UTF-8 was the default).
  </action>
  <action dev="CZ" type="fix" fixes-bug="11533">
    The deprecated source implementations are now wrapped by proxies.
    Modified patch from Jens Lorenz (jens.lorenz@interface-business.de)
  </action>
  <action dev="JH" type="fix" fixes-bug="15302">
   For non-existent files XSPUtil.relativeFilename() now throws FileNotFoundException instead of NPE.
  </action>
  <action dev="JH" type="add" fixes-bug="13559" due-to="Robert E. Parrott" due-to-email="parrott@fas.harvard.edu">
    Getter for jxcontext_ property added for subclassing reasons.
  </action>
  <action dev="CZ" type="fix" fixes-bug="17623" due-to="Alex Romayev" due-to-email="alex@romayev.com">
    Fixing incorrect caching behaviour when internal pipelines are used.
  </action>
  <action dev="JT" type="fix">
    Command-line will no longer add a 'null' suffix to files with an unknown MIME type.
  </action>
  <action dev="CZ" type="add">
    The object model and the components stored in the object model are now available
    via the component context.
  </action>
  <action dev="VG" type="fix" fixes-bug="20159" due-to="Hugh Leather" due-to-email="hughleat@hotmail.com">
   Logicsheets:
   Changed scope of and renamed temporary 'soap:call' XScript variable in &lt;soap:call&gt;.
   Fixed compilation problem with &lt;xscript-get as="object"&gt; expression.
  </action>
  <action dev="BRD" type="add" fixes-bug="19894" due-to="Michael Enke" due-to-email="michael.enke@wincor-nixdorf.com">
    I18nTransformer: support a currency attribute on i18n:number. This allows
    to take the currency symbol and formatting from one locale and the decimal
    and grouping separation symbols from another locale.
  </action>
  <action dev="BRD" type="fix" fixes-bug="19881" due-to="Michael Enke" due-to-email="michael.enke@wincor-nixdorf.com">
    Fixed synchronisation problem in I18nTransformer when retrieving catalogues.
  </action>
  <action dev="BRD" type="fix" fixes-bug="19423, 15525">
    Improved XPointer support in the XIncludeTransformer. Meanwhile improved the way xml:base
    attributes are handled, added support for the xi:fallback element, do XInclude processing
    on included content, and added XInclude samples.
  </action>
  <action dev="BRD" type="update" fixes-bug="15312" due-to="Unico Hommes" due-to-email="unico@hippo.nl">
    Dispose the parent Component Manager if it implements Disposable. Happens when the
    Cocoon servlet shuts down or when Cocoon is reloaded.
  </action>
 </release>
 <release version="2.1m2" date="May 20 2003">
  <action dev="SMS" type="update">
   Changed namespace for the RequestGenerator to 'http://apache.org/cocoon/request/2.0'.
  </action>
  <action dev="SMS" type="update">
   Changed namespace for XMLForm components to 'http://apache.org/cocoon/xmlform/1.0'.
  </action>
  <action dev="SMS" type="update" fixes-bug="19786" due-to="Torsten Knodt" due-to-email="torstenknodt@datas-world.de">
   Extended the ExtendedXLinkPipe to be more extensible. Prepared is html and p3p.
  </action>
  <action dev="SMS" type="update" fixes-bug="14986" due-to="Michael Homeijer" due-to-email="m.homeijer@devote.nl">
   Patch velocity generator, so that the scope of objects can be specified (request, session, sitemap).
  </action>
  <action dev="GR" type="update" fixes-bug="19978" due-to="Ciro Mondueri" due-to-email="cmr@adinet.com.uy">
   Fixed namespace handling in XMLDBSource.
  </action>
  <action dev="VG" type="add" fixes-bug="16003">
   Added XHTML 1.1 DTD to the entity catalog. Added XHTML 1.1 serializer into the sitemap.
   Explained different XHTML 1.0 serializer options.
  </action>
  <action dev="SMS" type="update" fixes-bug="18466" due-to="Yury Mikhienko" due-to-email="yuryx@mobicomk.donpac.ru">
   Enable the LDAPTransformer to obtain attribute values from LDAP using various encoding
   schemes for stored values.
  </action>
  <action dev="SMS" type="update" fixes-bug="19885" due-to="Torsten Knodt" due-to-email="torstenknodt@datas-world.de">
   Cleaned up MIMEUtils.
  </action>
  <action dev="SW" type="update">
   The DirectoryGenerator is now cacheable. A new "refreshDelay" parameter defines the delay between two checks
   on the filesystem for modified files.
  </action>
  <action dev="TC" type="add" fixes-bug="19772" due-to="Daniel Fagerstrom" due-to-email="danielf@nada.kth.se">
   Added STX block. (alternative to XSLT)
  </action>
  <action dev="VG" type="fix" fixes-bug="19526" due-to="Tony Collen" due-to-email="tc@hist.umn.edu">
   Throw InvalidContinuationException when flow continuation is not found or not valid,
   instead of forwarding to hard-coded 'invalidContinuation' page.
  </action>
  <action dev="CZ" type="fix" fixes-bug="14564">
   Fixing NPE in JspEngineImpl.
  </action>
  <action dev="CZ" type="fix" fixes-bug="14117">
   Obtain handler and application name from parameters for internal requests if
   handler could not be resolved from the request object.
  </action>
  <action dev="CZ" type="fix" fixes-bug="17612">
   Delaying getting of the output stream from the http response until it is really needed.
  </action>
  <action dev="CZ" type="add">
    Adding new portal framework.
  </action>
  <action dev="BRD" type="update">
    Updated Xalan to a CVS snapshot (2003-05-06), fixes bug with incorrect
    namespaces in endElement SAX events.
  </action>
  <action dev="BD" type="add" fixes-bug="16523" due-to="Bart Guijt" due-to-email="b.guijt1@chello.nl">
   QDox block added, parses Java source code and javadoc tags, includes samples.
  </action>
  <action dev="CZ" type="fix" fixes-bug="19683">
   Fixing the problem with eating spaces in custom transformers.
  </action>
  <action dev="BD" type="add" fixes-bug="19619" due-to="Joerg Heinicke" due-to-email="joerg.heinicke@gmx.de">
   Hello World sample added for the SWF block (although page2swf.xsl contains incomplete font definition).
  </action>
  <action dev="CZ" type="update">
   Redesign/modularizing the authentication and session framework.
  </action>
  <action dev="GR" type="add" fixes-bug="19206" due-to="Miles Elam" due-to-email="miles@geekspeak.org">
    Added 304 support to cacheable pipelines
  </action>
  <action dev="BRD" type="fix" fixes-bug="17763">
    DTD comment events are now dropped after parsing by default.
  </action>
  <action dev="BRD" type="fix" fixes-bug="13186">
    When an exception occured in a pipeline containing an XSL, the contents of
    the pipeline was appended to the error page. Now this only happens anymore
    when the incremental-processing of Xalan is enabled (which is unavoidable
    for now).
  </action>
  <action dev="BRD" type="fix" fixes-bug="13186">
    Disabled incremental-processing of Xalan by default.
  </action>
  <action dev="BD" type="add">
    standalone-demo build target added
  </action>
  <action dev="BD" type="fix">
    cacheable.xsp sample reworked, did not work in M1
  </action>
  <action dev="BD" type="fix">
    new FOP serializer samples, accessible from the "blocks with samples" page
  </action>
  <action dev="TC" type="fix" fixes-bug="15820" due-to="John R. Daily" due-to-email="john@geekhavoc.com">
    Fixed NPE if ESQL does not get a connection
  </action>
  <action dev="TC" type="fix" fixes-bug="14286" due-to="Geoff Howard" due-to-email="javageoff@yahoo.com">
    Fixed SQL injection vulnerability of DatabaseAuthenticatorAction
  </action>
  <action dev="TC" type="fix" fixes-bug="18547" due-to="Neil Bacon" due-to-email="nbacon@pinnaclesoftware.com.au">
    ESQL "Auto" support for sybase ASE. New database detection method.
  </action>
  <action dev="CZ" type="fix">
    Removing dependency from the Cocoon core to JTidy.
  </action>
  <action dev="VG" type="fix" fixes-bug="18683">
    Sync XML:DB source with 2.0 branch: Conect to the XML:DB once, from the
    XMLDBSourceFactory.
  </action>
 </release>
 <release version="2.1-M1" date="April 29 2003">
  <action dev="VG" type="fix" fixes-bug="10242">
    TextSerializer now can handle absence of root element in the incoming XML.
  </action>
  <action dev="SW" type="add">
    'handle-errors' sections in the sitemap now do not have an implicit
    generator: any generator can now be used, whereas previously it was
    implied and produced an XML representation of the error).
    <br/>
    To ensure backwards compatibility, 'handle-errors' sections can have a
    'type' attribute to continue the implicit-generator behaviour, but are
    now to be considered as deprecated.
    <br/>
    A new ExceptionSelector is also available to drive the error-handling
    pipeline constuction depending on the error type.
  </action>
  <action dev="TC" type="update">
    EsqlConnection no longer implements java.sql.Connection.
    No jvm dependency any more.
  </action>
  <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 is 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="uv@upaya.co.uk">
    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="ouzo@vip.net.pl">
   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="maciejka@tiger.com.pl">
    Set "Last-Modified" header
  </action>
  <action dev="TC" type="fix" fixes-bug="17324" due-to="Alfred Nathaniel" due-to-email="Alfred.Nathaniel@swx.com">
    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="phantom@jhu.edu">
    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="bruno@outerthought.org">
    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="m.homeijer@devote.nl">
    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="uv@upaya.co.uk">
    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="uv@upaya.co.uk">
    Add image dimensions to the ImageReader's cache key.
  </action>
  <action dev="CH" type="add" due-to="Geoff Howard" due-to-email="cocoon@leverageweb.com">
    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="michael.gerzabek@at.efp.cc">
    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="michael.enke@wincor-nixdorf.com" 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="jefft@apache.org"
          fixes-bug="15611">
    Added LinkRewriterTransformer.
  </action>
  <action dev="OP" type="add"
          due-to="Michael Melhem"
          due-to-email="michaelm@ffzd0yt3.bank.dresdner.net">
    Added support for expiring continuations.
  </action>
  <action dev="OP" type="update" due-to="Ugo Cei" due-to-email="u.cei@cbim.it">
    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="agallardo@agsoftware.dnsalias.com">
    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="jefft@apache.org"
   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="http://cocoon.apache.org/2.1/userdocs/concepts/validation.html">XML Validation Facilities</link>.
  </action>
  <action dev="CH" type="fix" due-to-email="michael.enke@wincor-nixdorf.com"
   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="frank.ridderbusch@gmx.de"
   due-to="Frank Ridderbusch" fixes-bug="15005">
   Extension to sendmail.xsp: lists for sendmail:cc
  </action>
  <action dev="CH" type="fix" due-to-email="artur@digitalfairway.com"
   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="stuart.roebuck@adolos.co.uk"
   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="michael.gerzabek@gmx.net">
    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="colin@colina.demon.co.uk">
   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="colin@colina.demon.co.uk">
   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="Philipp.Schmidt@it-care.de">
   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="dabbous@saxess.com">
    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="mattam@netcourrier.com">
      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="colin@colina.demon.co.uk">
   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="colin@colina.demon.co.uk">
    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="remove">
    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="Michael.Melhem@managesoft.com">
   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="Philipp.Schmidt@it-care.de">
   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="ramy@imkenberg.net">
    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="pelle@alma.nu">
    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="leo.sutic@inspireinfrastructure.com">
    Allow parent component manager to be LogEnabled.
  </action>
  <action dev="CZ" type="add" fixes-bug="10284" due-to="Michael Melhem" due-to-email="michaelm@bank.dresdner.net ">
    Extended pipeline handling for CachingPoint caching algorithm.
  </action>
  <action dev="NKB" type="update" due-to="Andrew C. Oliver" due-to-email="acoliver@apache.org">
    New samples for HSSF Serializer.
  </action>
  <action dev="NKB" type="update" fixes-bug="8058" due-to="Andrew C. Oliver" due-to-email="acoliver@apache.org">
   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="acoliver@apache.org">
   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="crafterm@apache.org">
    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="andrew@timberlake.co.za">
   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="kicke@web.de">
   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.
  </action>
  <action dev="NKB" type="add" due-to="Tim Myers" due-to-email="phantom@stserv.hcf.jhu.edu">
   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="http://cocoon.apache.org/2.1/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="hypernexdev@hypernexinc.com">
   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="stephan@vern.chem.tu-berlin.de">
   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="stephan@vern.chem.tu-berlin.de">
    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:coliver@seebeyond.com">Christopher Oliver</link>:
   <link href="ftp://ftp.primaryinterface.com/pub/rhino">ftp://ftp.primaryinterface.com/pub/rhino</link>.
  </action>
  <action dev="JM" type="update" fixes-bug="8531" due-to="Frank Ridderbusch">
   Added size attribute and sorting to directory-generator.
  </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="acoliver@apache.org">
   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="ilya@kaon.com">
   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="m.kristian@gmx.net">
    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>
  </changes>

</status>

