Version: 3.9.2

Release date: 06-Mar-2008

Description:
  Third pre-4.0 version. Bug-fixes, as well as partial implementation
  of the new Typed Access API (reading/writing booleans, ints, longs).

  Problems fixed:

  * [WSTX-145] DOMWrappingReader was not implementing coalescing mode.
    (reported by David C)
  * [WSTX-146] XMLStreamWriter implementation was using encoding
    returned by OutputStreamWriter as is; and JDK was reporting
    legacy encodings. Needed to normalize encoding.
    (reported by Jim A)

  New features:

  * More complete Stax2 API ref. impl, adding generic XMLEventReader
    implementation.
  * Partial/preliminary Stax2 Typed Access API, implementation (including
    configurable value encoder): supports booleans, ints, longs, for
    element and attribute content.
  * Added support for property:
    "http://java.sun.com/xml/stream/properties/implementation-name"
    it is now recognized as a synonym of XMLStreamProperties2.XSP_IMPLEMENTATION_NAME

  Clean-up:

  * Changing behavior of XMLStreamReader.getProperty() slightly (but within
    constraints of Stax 1.0 API specification): requesting value of
    an unknown property will now return null, instead of throwing an
    exception.

== History: ==

3.9.1 [16-Mar-2008]

  Problems fixed:

  * [WSTX-140] Default settings for WstxInputFactory.IS_COALESCING
    changed to Boolean.FALSE as per Stax specs; was defaulting to
    true by accident
  * [WSTX-139] DOMWrappingWriter now implements repairing mode.

  New features:

  * Reference implementation of Stax2 API now included under
    org.codehaus.stax2.ri (implements classes that can be implemented
    in generic way, making use of existing Stax 1.0 implementation
    or other Stax2 classes)
  * Converted Woodstox-specific property WstxInputProperties.P_LAZY_PARSING
    to XMLInputFactory2.P_LAZY_PARSING (stax2 API).

  Clean-up:

  * Stax API specification compatibility improvements:
    * Missing prefixes now reported as "", not nulls.
    * "No namespace" now reported as "", not null.

3.9.0 [23-Nov-2007]

  Problems fixed:

  * [WSTX-120] By default, content fixing is now disabled, to
    maximize interoperability, and to follow "principle of least
    surprise" (i.e. avoid confusion arising from the stream writer
    outsmarting developer)

  New features:

  * [WSTX-125] Adding of space between empty element, and closing
    "/>" is now optional, configurable using
    'WstxOutputProperties.P_ADD_SPACE_AFTER_EMPTY_ELEM'.
  * [WSTX-137] Add W3C Schema validation support using MSV.

  Clean-up:

  * Removed compatibility classes from under com.ctc.wstx.compat,
    since baseline JDK requirement is now 1.4, and workarounds are
    not needed (for now?)
  * Removed deprecated properties P_NORMALIZE_LFS and
    P_NORMALIZE_ATTR_VALUES, and needed code support.
  * [WSTX-105] Transformed the only existing input-side feature
    (FEAT_DTD_OVERRIDE) into matching input-side property
    (XMLInputFactoty2.P_OVERRIDE_DTD).

3.2.4 [17-Jan-2008]

  Problems fixed:

  * [WSTX-141]: Copying of CDATA events, using XMLEventWriter, was
    producing garbled output.
    (reported by Frank B) 
  * [WSTX-143]: UTF8Reader had a bug in handling of DEL (127) character
    at buffer boundary.
    (report by Matt G)

3.2.3 [14-Nov-2007]

  Problems fixed:

  * [WSTX-132]: NPE in BaseNsStreamWriter if event writer managed to
    pass in null namespace URI.
  * [WSTX-134]: Bug in DOMWrappingReader.isWhiteSpace implementation
    (reported by Yoon-Je C)
  * [WSTX-135]: Incorrect namespace binding for parent element, for
    repairing namespace writer.
    (reported by Yoon-Je C)
  * [WSTX-138]: Sub-optimal error messaging for incompatible encoding
    declaration, physical encoding used (EBCDIC vs UTF-x)
    (reported by Wouter C) 

3.2.2 [26-Sep-2007]

Description:
  Second patch release for 3.2.

  Problems fixed:

  * [WSTX-104] Added missing support for outputting to a DOM tree (via
    XMLOutputFactory.createXMLStreamWriter(DOMSource)).

  New features:

  * [WSTX-122] Adding support for EBCDIC encoding(s), using a
    simple bootstrapper to process xml declaration, then use
    JDK default codec.

3.2.1 [03-Apr-2007]

  Problems fixed:

  * Added deprecation marker for Wstx properties that will not be
    supported in 4.0
  * [WSTX-106] Descriptions missing from many wrapped IOExceptions;
    specifically obscuring some character validity failures
    (reported by Sami D)
  * [WSTX-108] Maven pom files were missing info (license, org etc)
    (reported by Daniel K)
  * [WSTX-109], a bug in xml declaration handling in multi-doc mode
    (reported by Abde S)
  * [WSTX-110] Exception chaining would itself cause an exception,
    on some platforms.
    (reported by Erik Bergersj)
  * [WSTX-111] (Stax 1.0 TCK incompliancy): Filtered stream reader was
    not initialized to point to first accepted event. This is different
    from expectations of Stax TCK (although identical to behavior of
    Stax RI).
    (reported by Santiago P-G)
  * [WSTX-113]: problems with DOMSource when DOM parsed in
    non-namespace mode)
    (reported by Daniel K)
  * [WSTX-114] Handling of ID attribute uniqueness check was failing
    in non-namespace mode: last character was dropped, leading to
    false collisions
    (reported by Linus E)

  New features:

  * [WSTX-112] Added access to underlying output stream/writer, via
    XMLStreamReader.getProperty(). Properties added are
    'WstxOutputProperties.P_OUTPUT_UNDERLYING_STREAM' and
    'WstxOutputProperties.P_OUTPUT_UNDERLYING_WRITER'.

3.2 [28-Dec-2006]

  Problems fixed:

  * [WSTX-70] External parsed entity references were not resolved using
    correct path context
   (reported by Michael K)
  * [WSTX-86] Maven group id wrong: was "woodstox", should be
    "org.codehaus.woodstox"
  * [WSTX-89] Line number information was not properly updated in
    some cases (boundary condition with Windows, \r\n, linefeeds)
   (reported by Frank B)
  * [WSTX-96] Beginning part of comments (for longer comments)
    was sometimes duplicated by the XMLStreamWriter implementation 
   (reported by Wolfgang H)
  * [WSTX-97] Character offsets (for XMLStreamReader.getLocation())
    were sometimes decremented; fixed, and added a unit test
   (reported by Frank B)
  * [WSTX-99] Encoding problems with XMLStreamWriter.
  * [WSTX-102] WStartDocument construction resulted in NPE, when using
    DOM source.
   (reported by Werner D)
  * [WSTX-103] Repairing writer had a bug that could result in wrong
    prefix being reported/output.
   (reported by Michael A)
  * StartElement.writeUsing() was not properly outputting attributes.

  Improvements:

  * [WSTX-90] Xml writing improved by 5-10% by consistenly using
    System.arraycopy (and String.getChars() which uses it) where
    possible.
   (reported by Davanum S., submitted patch suggesting optimization
    that was included)
   (also note that this fix resulted in regression, WSTX-91, fixed)
  * [WSTX-92] Improved speed of XMLStreamWriter.writeCharacters, by
    using intermediate char[] buffer for longer String.
   (suggested by Davanum S, submitted a patch)
  * [WSTX-93] System id part of Location reported for expanded external
    entities was not a valid (resolved) URI, now is.

  New features:

  * [WSTX-33] Woodstox now implements SAX2 interface natively. So, it
    is fair to say that Woodstox is now StAX/SAX implementation.
    (also, note that there were transient problems related to this
     feature, in trunk, such as WSTX-95, WSTX-101
  * [WSTX-94] Added new property (WstxOutputProperties.P_OUTPUT_ESCAPE_CR;
    default is Boolean.TRUE), which determines whether \r in textual
    content to be written will be escaped by the default stream writer
    serializers. The default is to escape \r characters, to ensure
    clean round-trippability.
    (requested by Brett P)

3.1 [02-Nov-2006]

  Problems fixed:

  * [WSTX-23] xml:space attribute DTD type (should be enumeration as per
    xml 1.0 specification) was not checked

  Improvements:

  * [WSTX-42] SPACE events were not returned in DTD-aware non-validating mode.
  * [WSTX-68] XMLStreamWriter.writeNamespace() was ignored in repairing mode
    (but not any more). Similarly, prefix was only used if no existing binding
    was found: now will try to honor prefix even at expense of reusing
    existing bindings.

  New features:

  * [WSTX-22] Basic xml:id (typing) support added. Will only validate
    uniqueness of xml:id attribute values in DTD-validating mode, for now.

3.0.2 [27-Sep-2006]

  Problems fixed:

  * [WSTX-81] Character/byte offset for Location not correctly calculated
    (reported by Mickael G)
  * [WTSX-82] URL handling had problems on Windows platform, with file-based
    URLs that refer to network drives
    (reported by Christian B)
  * [WSTX-83] One more NPE in ElemAttrs for namespace URI checks.
    (reported by Oleg R)

3.0.1 [29-Aug-2006]

  Problems fixed:

  * [WSTX-69] Incorrect types returned by XMLStreamReader, when
    notations/entities are requested.
    (report by Michael K)
  * [WSTX-72] Closing of output streams/writers in cases where that should
    not be done (plus similar problems on input side)
    (reported by Matt S)
  * [WSTX-74] Woodstox wasn't throwing NoSuchElementException at the end
    (reported by Lucian H)
  * [WSTX-77] Bug in DTDValidator.validateAttribute() passing wrong args
    to StringUtil.matches()
    (reported by Vim D R)
  * [WSTX-81] Character/byte offset for Location not correctly calculated
    (reported by Mickael G)
  * [WTSX-82] URL handling had problems on Windows platform, with file-based
    URLs that refer to network drives
    (reported by Christian B)

3.0.0 (final) [07-Aug-2006]

  Problems fixed:

  * A NullPointerException with StartElement.getAttributeByName() (apparently
    only happening when creating Attributes via Event Factory)
  * [WSTX-64]: CompactNsContext.outputNamespaceDeclarations NPE.
     (reported by Wolfgang H)
  * Fixed a problem with XMLEventReader.nextTag(), when peek() was called
    to access StartDocument event first.
     (reported by Lucian H)
  * Fixed a minor non-conformance issue with StartDocument, was not defaulting
    version pseudo-attribute to '1.0' (returned null if no xml declaration,
    ie. same as what XMLStreamReader returns).
  * [WSTX-65]: Fixed multiple problems with repairing stream writer, and
    the handling of automatic namespace declarations.

3.0rc1, 3.0rc2 [08-Jun-2006], [21-Jul-2006]

  Problems fixed:

  * [WTSX-38], [WSTX-56]: Filtered event reader was not filtering events
    correctly. Now should work much better.
  * [WSTX-54]: Added method XMLStreamWriter2.getEncoding, which allows for
    accessing encoding of the underlying output stream/writer (if such
    info available to the stream writer).
  * [WSTX-55]: XMLStreamWriter.flush() is now once again side-effect
    free (rule of minimal surprise)
  * [WSTX-57]: (partial fix) getNamespaceURI(int) will now return "" for
    'no namespace', instead of null. Value will thus be the exact lexival
    value from the declaration.
  * [WSTX-58]: a problem with DOMWrappingReader throwing an NPE, when
    accessing attribute properties of an element with only ns declarations.
  * [WSTX-59]: Stream writer trying to quote \r and \t in prolog/epilog.
  * [WSTX-60]: No pom file was generated for woodstox jar distributions;
    added generation, and dependencies to stax api jar generated by ref. impl.
  * [WSTX-61]: Using non-woodstox XMLStreamReader with the default
    event allocator fails.

  Improvements:

  * More significant parsing speed improvements, related to white space and
    linefeed handling.
  * Significant optimizations on the output side: adding BufferedWriter
    increases output speed very significantly (i.e. non-buffering basic
    OutputStreamWriter was dead slow for almost all use cases).
    Also, added simple buffer recycling, similar to reader side.

  New features:

  * [WSTX-25]: Added Stax2 interface ValidationProblemHandler, and associated
    methods to XMLStreamReader2 and XMLStreamWriter2: this allows for
    custom validation error handling, overriding default logic.
  * [WSTX-52]: Added a set of basic Stax2Source and Stax2Result
    implementations: these allow for more efficient and accurate source/result
    identification, and possible later optimizations.

2.9.3 [26-Apr-2006]

  Improvements:

  * [WSTX-53]: Implemented a simple byte/char buffer recycling system,
    using ThreadLocal and SoftReferences. Improves parsing speed of small
    (<4kB or so) documents by 15-20%.
  * Minor improvements to UTF-8 decoding speed (decoding part maybe 5%
    faster).

  New features:

  * javax.xml.transform.dom.DOMSource can now be used for constructing
    stream and event readers, i.e. it is possible to traverse DOM
    documents (and document fragments, sub-trees for given Element)
    using Stax API.

2.9.2 [31-Mar-2006]

  Problems fixed:

  * [WSTX-45]: WstxEventReader#peek() throwing EOF instead of returning null
     (reported by Arjen P)
  * [WSTX-46]: Trying to write another root element produced an incorrect
      error message
     (reported by John K)
  * [WSTX-20], [WSTX-47]: XMLStreamWriter throwing IllegalStateExceptions
     instead of XMLStreamExcpetions.
     (reported by Dims, John K)

  Improvements:

  * Added some more necessary methods to Stax2 XMLStreamReader2, to
    allow adding custom validators.

  New functionality:

  * Implemented (pluggable) XMLValidator for RelaxNG, based on
    Sun Multi-Schema Validator!

2.9.1 [22-Feb-2006]

  Problems fixed:

  * Numerous fixes to XML conformance; especially in areas of:
     * Valid xml character (for xml 1.0 as well as 1.1) checks, including
       checks for expanded character entities.
     * XML 1.1 vs 1.0 handling (including proper cascading to the
       external parsed entities)
     * Distinction between Well-Formedness Constraints (WFC, fatal)
       and Validation Constraints (VC); latter only thrown in validating
       mode.
     * Input nesting checks for Parameter and General Entity expansions
       (elements and GE expansions have to nest properly; similarly
       PE and DTD declarations have to properly nest).
  * Woodstox now handles gracefully namespaces that are declared using
    default attribute declarations (as well as basic namespace declaration
    entries in DTDs -- while unnecessary, some legacy DTDs use these).

  Improvements:

  * Added UTF-32 reader since JDK does not come with one.

2.9 [22-Jan-2006]

  Problems fixed:

  * [WSTX-18]: XMLOutputWriter should default to UTF-8 if no encoding
    explictly passed (when constructing output writer).
  * [WSTX-37]: Need to be return auto-detected character encoding for
    input streams; not just encoding application passed in.
  * [WSTX-39] (partial fix): If namespace declarations were declared in
    DTD (to support legacy documents or processors), Woodstox would not
    recognized their special status, and could add default values for
    those as if they were regular attributes. Now such declarations will
    basically be ignored, which usually should work acceptably.
  * Fixed a problem with bootstrapping UTF-16 streams; if "UTF-16" explicitly
    specified as encoding, underlying JDK reader did not always use correct
    endianness.
  * Root element name is now only check in validating mode (not if only
    DTD aware but not validating), since this really is validation, not
    just part of DTD awareness.

  Improvements:

  * [WSTX-30] Non-validating-but-DTD-aware mode now works better: attribute
    type information as well as attribute default values will now work, so
    validation only needs to be enabled for actual validation features.

2.8.2 [31-Dec-2005]

  Problems fixed:

  * Changed behaviour of BasicStreamReader.isCharacters() to be identical
    to the ref. impl, ie. only to return true if the current event is
    CHARACTERS (but not if it's CDATA and SPACE).
  * [WSTX-14]: Added property XMLInputFactory2.P_AUTO_CLOSE_INPUT that can
    enable automatic closing for all input types (default is false).
    Also, added explict XMLStreamReader2.closeCompletely() method to force
    closing of all associated streams, indepent of auto-closing property.
  * [WSTX-17]: Fixed the problem with new stream reader methods, so that
    the underlying input stream does get properly closed independent
    of value of XMLInputFactory2.P_AUTO_CLOSE_INPUT, if the source is
    URL, File or javax.xml.transform.Source.
  * Fixes that will go to 2.0.5 (WSTX-28, WSTX-29)

  Improvements:

  * Related to fixing [WSTX-29] (NamespaceContext problems with StartElement
    event), added a simple reuse schema for NamespaceContext instances. For
    typical namespace using documents, this can improve Event API parsing
    performance by up to 15% based on throughput measurements.
  * [WSTX-15] Added XMLStreamReader2.getNonTransientNamespaceContext()
    method.

2.8.1 [20-Dec-2005]

  Problems fixed:

  * Various fixes from 2.0.4 release.

  Improvements:

  * Improved performance of handling of elements that do not have any
    attributes: results in up to 5% speed increase for documents that
    are element-heavy but attribute poor.

  New functionality:

  * Full validator support on writer side: the existing Woodstox DTD
    validator (constructed via XMLSchemaFactory() or gotten from
    a XMLStreamReader2 instance) can be plugged in to validate output.
  * Added initial code coverage testing support using Emma (right now,
    test cover about 50% of Woodstox code).

  Refactoring:

  * DTD validation completely rewritten, to use the next StAX2 validation
    interfaces; some minor problems fixed.

2.8 [11-Oct-2005]

  New functionality:

  * [WSTX-6] Added new alternate input parsing modes ("fragment mode",
    "multi-document mode"; existing one calle "single-document mode"):
    these allow for parsing document fragments (which miss containing
    root/parent elements), and parsing streams that have more than one
    complete document.

  Improvements:

  * Configuration:
     * [WSTX-13] Added setProperty() in reader/writer instances, to allow for
       overriding some settings on per-instance basis (not just on per-factory
       basis).
  * Stream/Event readers:
     * [WSTX-11] Event readers are now always constructed lazy parsing disabled
       (no performance gain from lazy parsing; more accurate error reporting
       when it is disabled), and with min. segment size set to maximum (ie.
       text/cdata segments are never split).
  * Stream/Event writers:
     * [WSTX-16] Added P_PROBLEM_REPORT property for writers, to allow for
       notification mechanisms for non-fatal (or potential) problems using
       standard mechanism.
  * Entity handling:
     * [WSTX-4] It is possible to define a specific handler for undeclared
       entities; this handler will get called in entity-replacing mode, and
       if it returns a valid expansion, no exception will be thrown.
     * [WSTX-5] Undeclared entities (missing DTD, or dtd-handling disabled) do
       not throw an exception in the non-entity-replacing mode any more.
       Calling app can figure out whether the entity reference refers to
       a declared entity by checking if expansion value is null (via
       Cursor API), or if the entity reference does not refer to a
       declaration (via Event API, a null declarationn object returned).
  * Validation:
     * [WSTX-12] It is now ok for a document to not have a DOCTYPE declaration
       in validating mode: if so, validation will essentially be skipped, and
       a warning is sent via XMLReport interface (if any). Note that this does
       not apply to empty DOCTYPE declaration (empty internal subset), just to
       one completely missing.

2.5 - 2.7 [19-Jul-2005 - 29-Sep-2005]

  New functionality:

  * Adding support for pluggable validation support; this is pre-requisite
    for output side validation, as well dtd-based indentation.

  Improvements:

  * Now input stream factory tries to use Woodstox-specific (fast) readers
    even when specific encoding is passed. This should improve UTF-8 document
    handling when encoding is explicitly passed along with input stream.
  * Improved handling of text parsing in IS_COALESCING mode: now parser
    is more likely to be able to use the shared buffer, leading to
    up to 10 - 15% faster parsing in this mode (depending on usage patterns
    and length of segments), without change to non-coalescing mode.

2.0.1 - 2.0.4: [10-Aug-2005 - xx-Dec-2005]

  Problems fixed:

  * Fixed a nasty encoding bug in (configurable) attribute writers: trying
    to write entities failed with a NullPointerException
    [reported by Ulrich C and Peter T]
  * Fixed a problem with DTDs that had enumerated value "-" (or "--"), was
    throwing an exception
    [reported by Ulrich C]
  * [WSTX-3] output of DTD event was missing a double quote.
    [reported by Linus E]
  * Fixed a problem with single-byte (ascii, ISO-Latin1) encoding writer;
    char-array methods could omit characters after encoded entities.
  * [WSTX-7] SimpleNsStreamWriter#writeStartElement(StartElement)
    was stripping out attribute namespaces.
    [reported by Linus E]
  * [WSTX-8] nextTag() followed by peek() at the start of a document
    won't work. Also, fixed associated NPEs in WstxEventReader class.
    [reported by Patrick C]
  * [WSTX-9] sr.getTextCharacters(int srcStart, ...) fixed; had a bug
    that caused ArrayIndexOutOfBoundsException, and null chars in result
    [reported by Dan D, Erik S and Kevin V]
  * [WSTX-10] Handling of 3-byte UTF-8 Byte Order Marker did not work
    properly when XMLStreamReader was constructed for a Reader
    [reported by Heinz D]
  * [WSTX-19]: Unnecessary default namespace declarations were written
    by stream writers in repairing mode.
    [reported by Heinz D]
  * Fixed DTD/attribute value normalization problem with NMTOKEN; was not
    catching a problem if the first non-space character of the value
    was not valid a valid NMTOKEN character.
  * [WSTX-24]: Predefined namespace with prefix 'xml' was not handled
    properly for elements, only for attributes.
  * [WSTX-27]: Attribute #FIXED default value was not added (just checked
    for explicit attributes), now it is used properly.
