<document>

  <properties>
    <title>dom4j changes</title>
    <author email="maartenc@users.sourceforge.net">Maarten Coene</author>
  </properties>

  <body>

    <release version="1.6.1" date="2005-05-16">
      <action dev="maartenc" type="update" due-to="Wolfgang Baer">
        Updated the XPP2 implementation to version 2.1.10.
      </action>
      <action dev="maartenc" type="fix" due-to="Thomas Fromm">
        Fixed a problem with <code>XMLWriter</code> that was causing too many
        new lines to be written to the resulting XML.
      </action>
      <action dev="maartenc" type="update" due-to="Gili Tzabari">
        Include more information about the cause if an <code>XPathException</code>
        or <code>InvalidXPathException</code> is thrown.
      </action>
    </release>

    <release version="1.6" date="2005-04-15">
      <action dev="maartenc" type="add" due-to="Filip Jirsak">
        Added a methods to <code>SAXReader</code> allowing to specify the encoding
        used when reading XML sources.
      </action>
      <action dev="maartenc" type="update">
        Changed the <code>DocumentHelper.parseText(String)</code> method to make sure
        that the XML encoding is always set (if known) on the returned <code>Document</code>,
        even if the used SAXParser doesn't provide a way to retrieve that encoding.
      </action>
      <action dev="maartenc" type="add">
        Added a <code>setXMLEncoding(String)</code> method to the <code>Document</code>
        interface.
      </action>
      <action dev="maartenc" type="fix" due-to="John Plaxton">
        Removed a static <code>OutputFormat</code> field from <code>AbstractBranch</code>.
        This can cause problems if multiple threads are using the <code>asXML()</code>
        method simultaniously.
      </action>
      <action dev="maartenc" type="fix" due-to="Brett Porter">
        Fixed a whitespace problem with the pretty-print <code>OutputFormat</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Peter Schaefer">
        Fixed a bug in the <code>DefaultElement.setContent(List)</code> method that
        caused incorrectly resetting the parent of the nodes in the list.
      </action>
      <action dev="wolfftw" type="remove">
        Removed <code>persistence</code> package and sub-package.
      </action>
      <action dev="wolfftw" type="update">
        Modified <code>SAXEventRecorder</code> to accomodate sax events generated when
        writing a <code>DOMDocument</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Pieter Valcke">
        Fixed a problem in <code>AbstractDocument.asXML()</code> when an encoding was
        specified on the <code>Document</code>.
      </action>
      <action dev="maartenc" type="fix">
        The <code>DefaultNamespace.isReadOnly()</code> method now returns <code>false</code>.
        This fixes issues with cloning this <code>Node</code>.
      </action>
      <action dev="maartenc" type="update" due-to="Brian Topping">
        Updated <code>DocumentFactory</code> to create the instance untill the
        first time it is needed.
      </action>
      <action dev="maartenc" type="fix" due-to="Brett Porter">
        Fixed a bug in <code>Stylesheet</code> when an xpath expressions was used
        to select the nodes.
      </action>
      <action dev="ddlucas" type="add">
        Added a <code>SingletonStrategy</code> class for managing singletons. This 
        allows to use different strategies for singletons, like: one instance per 
        VM, one instance per thread, ... This change removed the usage of 
        <code>ThreadLocal</code>s.
      </action>
    </release>

    <release version="1.5.2" date="2004-11-15">
      <action dev="maartenc" type="remove">
        Removed the internal Aelfred2 parser due to incompatible license.
      </action>
      <action dev="wolfftw" type="add">
        Added a <code>SAXEventRecorder</code> that can replay SAX events at a later
        time. This provides an alternative serialization approach.
      </action>
    </release>

    <release version="1.5.1" date="2004-10-29">
      <action dev="maartenc" type="fix" due-to="Ara Vartanian">
        Fixed problem where the namespace prefix was lost using <code>DOMDocument</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="David Karlsen">
        Fixed bug in <code>Document.asXML()</code> which ignored the encoding
        of the document.
      </action>
      <action dev="maartenc" type="update">
        Updated <code>NamespaceCache</code> to use <code>WeakReference</code>s
        to allow <code>Namespace</code> objects to be garbage collected.
      </action>
      <action dev="maartenc" type="update" due-to="Wonne Keysers">
        Updated <code>JAXBReader</code> to allow ElementHandlers to be notified 
	when the specified path is encountered, without having to unmarshall 
	XML content.
      </action>
      <action dev="maartenc" type="fix" due-to="Daniel Hopper">
        Fixed a bug in <code>XMLWriter</code> where a <code>NullPointerException</code>
        was thrown if trying to write a CData section containing <code>null</code>
        content.
      </action>
      <action dev="maartenc" type="update">
        Modified the internal Aelfred2 parser to no longer support the
        SAX2 Extensions 1.1 API. As a result, the SAX2 sources are no
        included with dom4j.
      </action>
      <action dev="maartenc" type="add" due-to="Pelle Braendgaard">
        Added support for the XPP3 parser.
      </action>
    </release>

    <release version="1.5" date="2004-09-03">
      <action dev="maartenc" type="fix" due-to="Dion Gillard">
        Fixed bug in <code>XMLWriter.characters(...)</code> where the escapeText
        property of the writer was ignored.
      </action>
      <action dev="maartenc" type="fix" due-to="Peter Stibrany">
        Fixed the <code>Stylesheet.removeRule(Rule)</code> method which didn't remove the
        <code>Rule</code> but added it again.
      </action>
      <action dev="maartenc" type="fix" due-to="Robert Koberg">
        Fixed bug in <code>BackedList</code> causing new elements to always
        be added at the first position if the size of the list is 1.
      </action>
      <action dev="maartenc" type="update">
        Upgraded the internal Aelfred2 parser to the latest version.
      </action>
      <action dev="maartenc" type="add" due-to="Wonne Keysers">
        Added initial JAXB support.
      </action>
      <action dev="maartenc" type="update" due-to="Christian Niles">
        Updated the STAX classes to provide document encoding.
      </action>
      <action dev="maartenc" type="add">
        Added <code>getXMLEncoding()</code> method to <code>org.dom4j.Document</code>
        which returns the encoding of the document.
      </action>
    </release>

    <release version="1.5-rc1" date="2004-07-04">
      <action dev="maartenc" type="remove">
        Removed the <code>DocumentHelper.parseText(String xml, String encoding)</code>
        method that was introduced in dom4j-1.5-beta2.
      </action>
      <action dev="maartenc" type="update">
        Added the GNU JAXP DOM implementation to the default list of implementations in 
        <code>DOMWriter</code>.
      </action>
      <action dev="maartenc" type="update" due-to="Wonne Keysers">
        Added method to <code>ElementStack</code> and <code>DispatchHandler</code> to check
        if a handler is registered for a given path.
      </action>
      <action dev="maartenc" type="update" due-to="Wonne Keysers">
        <code>ElementStack</code> is now a public class.
      </action>
      <action dev="maartenc" type="update" due-to="Wonne Keysers">
        <code>SAXContentHandler.endElement(...)</code> can now throw <code>SAXException</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Aaron Bell">
        Added the namespace-prefix of attributes to the paths returned by
        <code>Attribute.getPath(Element context)</code> and 
        <code>Attribute.getUniquePath(Element context)</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Marc Pellmann">
        <code>Element.declaredNamespaces()</code> now only returns the namespaces that are
        declared on that element. <code>Element.additionalNamespaces()</code>
        now only returns namespaces that are declared on that element and is not the same as the
        namespace of that element.
      </action>
      <action dev="maartenc" type="fix" due-to="Marc Pellmann">
        Escape the values of internal DTD entity declarations when serializing to XML.
      </action>
      <action dev="maartenc" type="fix" due-to="Rob Grzywinski">
        Fixed bug in <code>AbstractElement</code> causing <code>Node.getPath(Element context)</code> to
        return an absolute path, even if a the current element was the same as the context element. The
        relative path "." is now returned.
      </action>
      <action dev="maartenc" type="add" due-to="Thomas Diesler">
        Added method to <code>Element</code> to retrieve all <code>Namespaces</code> for a given URI.
      </action>
      <action dev="maartenc" type="fix" due-to="Thomas Diesler">
        Fixed bug in <code>DOMReader</code> causing namespace declarations to get lost in some situations.
      </action>
      <action dev="maartenc" type="add" due-to="Ben Scarlet">
        Added a <code>booleanValueOf(Object node)</code> method to <code>XPath</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Wonne Keysers">
        Fixed bug in <code>BeanElement</code> which prevented proper execution of the bean samples.
      </action>
      <action dev="maartenc" type="update" due-to="Christian Niles">
        <code>STAXEventWriter</code> now uses <code>XMLEventConsumer</code> instead of <code>XMLEventWriter</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Paul Libbrecht">
        Fixed bug in <code>SAXReader</code> that caused problems parsing files in OSX.
      </action>
      <action dev="maartenc" type="fix" due-to="Paul Libbrecht">
        Fixed bug in <code>XMLWriter</code> that caused whitespace to be added between successive 
        calls of the <code>characters(...)</code> method. This is used particularly frequent in Apache Jelly.
      </action>
      <action dev="maartenc" type="update" due-to="Brett Finnell">
        Improved performance of <code>NamespaceCache</code> in multithreaded environments.
      </action>
    </release>

    <release version="1.5-beta-2" date="2004-05-12">
      <action dev="wolfftw" type="add">
        Added flag to <code>OutputFormat</code> that supresses newline after XML declaration.
      </action>
      <action dev="maartenc" type="update">
        Upgraded dependencies to their latest version on ibiblio.
      </action>
      <action dev="maartenc" type="add" due-to="Todd Wolff">
        Added method to <code>DocumentHelper</code> that allows user to specify encoding when parsing an xml <code>String</code>.
      </action>
      <action dev="maartenc" type="fix">
        Fixed a ClassCastException bug in <code>BeanElement</code>.
      </action>
      <action dev="maartenc" type="fix">
        Fixed a bug in <code>SAXContentHandler</code> which caused a <code>NullPointerException</code> in some situations.
      </action>
      <action dev="maartenc" type="fix" due-to="Todd Wolff">
        Fixed bug which prevented an element's namespace prefix from being registered for use in xpath expressions.
      </action>
      <action dev="maartenc" type="fix" due-to="Todd Wolff">
        Fixed bug in <code>XMLWriter</code> that caused duplication of the default namespace declaration.
      </action>
      <action dev="maartenc" type="fix" due-to="Curt Arnold">
        Added a bunch of patches to make the dom4j DOM classes more DOM compliant.
      </action>
      <action dev="maartenc" type="update" due-to="Ricardo Leon">
        Fixed bug in <code>DispatchHandler</code> which made the handler not reusable.
      </action>
      <action dev="maartenc" type="fix" due-to="Todd Wolff">
        Fixed bug in <code>SAXContentHandler</code> that caused incorrect CDATA section parsing.
      </action>
      <action dev="maartenc" type="fix">
        Fixed bug in <code>SAXContentHandler</code> that caused incorrect entity handling.
      </action>
      <action dev="maartenc" type="fix" due-to="Bo Gundersen">
        Fixed bug in <code>XMLWriter</code> causing padding to be disabled, even if enabled in the specified outputformat.
      </action>
      <action dev="maartenc" type="add" due-to="Christian Niles">
        Added initial support for STaX streams.
      </action>
    </release>

    <release version="1.5-beta-1" date="2004-03-25">
      <action dev="maartenc" type="fix">
        Fixed encoding bug in <code>Document.asXML()</code> and <code>DocumentHelper.parseText()</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Kohsuke Kawaguchi">
        Fixed bug in <code>SAXReader</code> that caused problems resolving relative URIs when parsing <code>java.io.File</code> Objects.
      </action>
      <action dev="maartenc" type="update">
        The iterators returned by the <code>Element.elementIterator(...)</code> methods now support <code>remove()</code>.
      </action>
      <action dev="maartenc" type="update" due-to="Geert Dendoncker and Joury Gokel">
        <code>DOMWriter</code> writes now DOM Level 2 attributes and elements.
      </action>
      <action dev="maartenc" type="update">
        Use latest implementation of the Aelfred parser.
      </action>
      <action dev="maartenc" type="fix" due-to="Bryan Thompson">
        Fixed some problems with internal/external DTD declarations.
      </action>
      <action dev="maartenc" type="update">
        Upgraded to Jaxen 1.1 beta 2.
      </action>
      <action dev="maartenc" type="update">
        Ignore attribute order when comparing elements in <code>NodeComparator</code>.
      </action>
      <action dev="maartenc" type="update">
        Fixed bug in <code>XMLWriter</code> where namespace declarations were duplicated.
      </action>
      <action dev="maartenc" type="fix" due-to="Vladimir Kralik">
        Fixed bug in parsing a <code>ProcessingInstruction</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Mark Diggory">
        Added support for <code>Stylesheet</code> modes.
      </action>
      <action dev="maartenc" type="update" due-to="Christian Niles">
        Don't escape &quot; and &apos; characters in attribute values if it's not necessary.
      </action>
      <action dev="maartenc" type="fix" due-to="Henner Kollmann">
        Fixed some <code>DOMNodeHelper</code> issues.
      </action>
      <action dev="maartenc" type="fix" due-to="Thomas Draier">
        Fixed some datatype issues.
      </action>
      <action dev="maartenc" type="fix">
        Fixed an bug where the EntityResolver was not set on the XMLReader.
      </action>
      <action dev="slehmann" type="fix">
        Fixed multithreaded access on <code>DefaultElement</code>.
      </action>
      <action dev="maartenc" type="fix" due-to="Geoffrey Vlassaks">
        Fixed problem parsing XML Files.
      </action>
      <action dev="ddlucas" type="update">
        Added xml:space attribute support based on XML Specification 1.0.
      </action>
      <action dev="maartenc" type="update">
        Maven build of dom4j is now nearly complete. Maven is now used for the website generation.
      </action>
      <action dev="maartenc" type="fix" due-to="Alessandro Vernet">
        Fixed some bugs in BackedList.
      </action>
    </release>

  </body>
</document>