Fixed error reporting on some servlet engines for case where getWriter had already been called.
(RDG) Thanks to Ulrich Mayring.

Two more xsl:params available in logicsheets - path and relative-filename.
If the source filename is /home/greenrd/test.xml then path will be /home/greenrd and
relative-filename will be test.xml.
(RDG) Thanks to Peter C. Verhage.

XSLTProcessor now recognises text/xml and application/xml mime-types in PIs
as stylesheets, not just text/xsl.
(RDG) Thanks to Eric A. Sirois.

Caching memory wastage fixes for XIncludeProcessor and ProducerFromFile (identical to the XSLTProcessor
bug fix in a previous version). These bugs could theoretically have caused OutOfMemoryErrors, so
upgrading is strongly recommended!
(RDG)

Upgraded Ant from version 1.1 to version 1.3 and rewrote build.xml to use new syntax.
(RDG) Thanks to Phillipe Lavoie.

Added "fastcutoff" setting to cocoon.properties to control sendRedirect,
getOutputStream and getWriter behaviour for maximum flexibility and backward compatibility.
(RDG) Thanks to Donald Ball.

Updated Cocoon for compatibility with FOP 0.16 and above. Backward compatibility to at least FOP 0.13
is still maintained.
WARNING: The Formatter interface has been changed. Instead of taking a Writer it now takes
an OutputStream. This makes more sense for output types like PDF.
(RDG) Thanks to Kelly Campbell.

Stylesheets (but not logicsheets) can now access a COCOON-BROWSER-ID parameter to identify which
browser they are serving (as an alternative to using different stylesheets for each browser, by
declaring <xsl:param name="COCOON-BROWSER-ID"> as a top-level element in the stylesheet.
IMPORTANT WARNING: If you use this alternative technique for a cacheable page,
you MUST set the HTTP Vary header as follows:
response.setHeader ("Vary", "user-Agent");
This can be done either in an <xsp:logic> element in XSP, or in a Processor.
If you don't do this, it will work fine when users are connecting directly to the server, but
if they access it through a web proxy, the proxy will not know that different content should
be served for different browsers, so it will serve the same content for all browsers.
(RDG) Thanks to Ingo Bruell.

response.sendRedirect no longer throws an Exception; processing is instead stopped inside the Cocoon
Engine for that request, after this processor/producer returns. This is needed to fix a redirect problem
with Tomcat (see below).
(RDG)

Removed headers from cache key because this was breaking caching in 90% of static cases.
This is a quick fix - will fix properly later.
(RDG)

Added <?cocoon-disable-caching?> processing instruction to disable
caching for a page. This is most useful for cases like samples/fp,
which behaves strangely without it, because of Last-Modified support
introduced in Cocoon 1.8.1.
(RDG)

Obsolete XObject now replaced by org.apache.cocoon.xml.XMLFragment.
This change was necessitated by the move to SAX2 in Cocoon 2.
XObject is deprecated and will stop working in Cocoon 2.
(RDG)

At long last, FIXED the Internet Explorer PDF bug! In fact there were at least 3 bugs involved here,
and YOU STILL NEED TO USE THE ?dummy=test.pdf WORKAROUND - see the FAQ for more details.
But, generated PDF files
now show up perfectly in all versions of Internet Explorer - as far as we know!
(RDG)

Added EXPERIMENTAL support for xsp:variable declaration and code generation to xsp core logicsheet,
and method calling to util taglib.
This is designed to automatically pass through required environment variables such
as xspCurrentNode. Need to uncomment the templates at the end of xsp-java.xsl to use this.
(DB)

In esql, encoding is now an element not an attribute, to allow passthru.
(DB)

Fixed second and third XSL:FO examples for FOP 0.15 conformance.
(RDG) Thanks to Steve Coffman.

Added multi-encoding support to esql. Even tables using multiple encodings can be
read from! However, this will only work if your JDBC driver
returns a byte array with the string in the given encoding when getBytes() is called.
(RDG)

You can now override options in cocoon.properties, in web.xml or zone.properties.
(RDG) Thanks to Nicolas Lichtmaier.

Added inefficient workaround for using Xalan 1.x with FOP > 0.13.
See src/org/apache/cocoon/formatter/FO2PDFFormatter.java.
YOU NOW NEED FOP 0.14 OR GREATER TO BUILD COCOON, but earlier versions
will still work as before at runtime.
(RDG)

XSLTProcessor now invalidates its monitor whenever reapplying a stylesheet,
in case the URI of the stylesheet being applied has changed since last time.
Also, a second monitor is now used for cached stylesheets, for the same reason.
This could be made more efficient.
(RDG) Thanks to Tagunov Anthony.

Added HTTP Vary header to responses where a selection is made
by Cocoon on the basis of a User-Agent header, in order to give
correct proxy behaviour.
(RDG)

Request headers (prefixed by R_) and cookies (prefixed by C_)
are now passed to stylesheets, as well as request parameters.
(RDG) Thanks to Ovidiu Predescu.

Made caching dependent on all request headers, not just user agent.
(RDG) Thanks to Ovidiu Predescu.

Renamed xsp:cacheable to util:cacheable because this is Cocoon-specific
and should not be part of the core XSP namespace.
(RDG) Thanks to Matt Sergeant.

New caching interface introduced - org.apache.cocoon.framework.Cacheable
and corresponding xsp tag xsp:cacheable. Incomplete cacheing documentation
page added. Requests that there is no point
in cacheing, will now not be cached. This was partly in response to
LastModified oddities, and partly to improve memory usage efficiency.
(RDG)

*** NOTE - this was later reversed - see above! ***
Made store cleanup algorithm more aggressive. Hopefully this should clear
up some of the OutOfMemoryErrors people have been having.
(RDG)

Workaround for an AbstractMethodError bug on some JDKs.
(RDG) Thanks to Mike Ehlers.

Added ability for Engine components to implement
org.apache.cocoon.framework.DestroyListener and be notified for cleanup
purposes if/when the Cocoon servlet is destroyed.
(RDG)

Fixed zombie caching bug where old versions of pages would reappear after
certain errors.
(RDG) Thanks to Tagunov Anthony.

Simple (manual!) contributions management system for contributions
to Cocoon. See documentation.
(RDG)

Added ability to get tailored Configurations for superclasses
and support classes.
(RDG)

Cocoon will now stop with an error if any namespace-mapped logicsheet
is not well-formed or missing, instead of just logging a warning message
to the servlet logger and throwing a NPE when the logicsheet is invoked.
This aids debugging.
(RDG)

Line numbers are now reported in XML parsing errors. On some JDKs it may
be necessary to put the sax-bugfix.jar before xerces.jar on the CLASSPATH.
(RDG)

Added list of sites providing cocoon webhosting to docs.
(RDG)

IMPORTANT: Made esql default to inner-method="false" since the
inner-method facility is not always needed and causes confusion.
(RDG)

Cocoon now sets a Last-Modified HTTP header based on the time the
result was generated (either now or when the result was last changed
in the cache).
(RDG)

Changed <xsp:pi> back to use target= instead of name= in order
not to break existing users' code (which there is a lot of!).
Changed XSP docs to reflect correct usage.
(RDG)

Added very primitive profiler (see cocoon.properties)
(RDG)

Fixed some synchronization errors in Engine. You can now call a Cocoon
page from a Cocoon page, if you really want (this is inefficient and a
bad architecture, but it's possible.)
(RDG)

Made response taglib work on Servlet API 2.0 engines
(RDG)

Added xspdoc comments to esql logicsheet and added xspdoc to document convertor in the xml.apache.org site skin directory. god only knows how i'm supposed to add it to the build procedure... help?
(DB)

Added error handling to esql logicsheet and documented its use in esql sample.
(DB)

Changed behavior for absolute stylesheet hrefs which now point to absolute URI addresses.
(SM)

Changed "create-session" attribute in <xsp:page> to accept
only "true" and "false" as dictated by the XML Schema boolean
datatype
(RR) Thanks to Kevin Burton.

Added namespace preservation for XSP pages. To preserve namespaces in an
XSP page, add an "xsp:xxx" attribute to the page's root element, where
"xxx" is the namespace and the attribute value is the namespace URI
(RR)

Added boolean attribute "create-session" to <xsp:page> in order
to allow for the automatic creation of servlet sessions without
intervening <xsp:logic>
(RR)

Added ability to specify formatting information from the cocoon property
file instead of having to create a custom formatter every time. Also
fixed the output encoding problem since now a specific encoding for the
output stream can be forced.
(SM) Fixes bug 90.

Added XML encoding prediction to fix the encoding problem for
ProducerFromFile. Cocoon should now work with all encoding supported by
the XML parser used.
(SM) Fixes bug 83.