Apache ODF Toolkit Change Log
=============================

======= Release 0.6.2 =======

The most notable changes in ODF Toolkit 0.6.2 incubating over previous release:
* Enable password encryption and encryption manifest handling to ODFDOM

Release wiki page: https://cwiki.apache.org/confluence/display/ODFTOOLKIT/0.6.2-incubating

Versions of major components
----------------------------

* Apache Xerces 2.9.1 (http://xerces.apache.org/mirrors.cgi)
* Apache Jena 2.11.2 (http://jena.apache.org/download/index.html)
* Apache Commons Validator 1.5.0 (http://commons.apache.org/proper/commons-validator//download_validator.cgi)

For a full dependency list run mvn dependency:tree from the top level in the source module or see the release wiki page.

Optimizations
-------------
* ODFTOOLKIT-200 Enable password encryption and encryption manifest handling to ODFDOM
* ODFTOOLKIT-294 Adding the XSL stylesheet for extracting default values to XSLT_RUNNER XSL sample folder
* ODFTOOLKIT-304 Update ODF 1.2 schema to OpenDocument-v1.2 final version
* ODFTOOLKIT-375 odftoolkit-0.6 does not work in my environment
* ODFTOOLKIT-374 Set the field "Last Modified By" in the metadata file
* ODFTOOLKIT-410 Set table:error-message for content-validation to activate actual validation
* ODFTOOLKIT-417 Missing methods for set and get background-color, subscripted and superscripted for a paragraph
* ODFTOOLKIT-418 missing method to find an embedded section
* ODFTOOLKIT-420 missing functions in TextProperties set/get background color
* ODFTOOLKIT-426 PERFORMANCE: simple Document.getCopyStyleList improvements to reduce String allocation, hashing, etc.
* ODFTOOLKIT-436 odfvalidator: better error reporting
* ODFTOOLKIT-437 odfvalidator: make schema files configurable from cmd line
* ODFTOOLKIT-438 odfvalidator: always honour input file on cmd line
* ODFTOOLKIT-440 Java base line: Change to JDK 6 for next release

Bug Fixes
---------
* ODFTOOLKIT-300 Memory Leak in ODF Simple API
* ODFTOOLKIT-323 Remove old references to odftoolkit.org site
* ODFTOOLKIT-367 Paragraph.getTextContent sometimes failed to replace text:s with spaces 
* ODFTOOLKIT-368 Column.setWidth wrong size
* ODFTOOLKIT-386 Project doesn't build with JDK 8
* ODFTOOLKIT-388 Test hangs when iterating over a spreadsheet created with LibreOffice 4.0.0
* ODFTOOLKIT-391 Publish ODF Toolkit artifacts to Maven Central + tag release version in SVN
* ODFTOOLKIT-395 [PATCH] validator applies ODF 1.1 rules to ODF 1.2 documents when checking character content in foreign elements
* ODFTOOLKIT-396 SpreadsheetDocument.appendSheet fails because of buggy alien element cloning
* ODFTOOLKIT-398 crash when calling getCellBackgroundColor from the org.odftoolkit.simple.table.Cell
* ODFTOOLKIT-401 NullPointerException from typo hides all ZIP exceptions
* ODFTOOLKIT-404 Obsolete Jena dependency at ODF Toolkit
* ODFTOOLKIT-405 XSLTRunner JAR unexecutable from commandline
* ODFTOOLKIT-406 Build failure on Apache Build server when downloading ODF 1.0 schema
* ODFTOOLKIT-407 Mixed case package name org.odftoolkit.Junit avoids building on Linux
* ODFTOOLKIT-408 OdfXmlHelper duplicated in src/test
* ODFTOOLKIT-409 Hang on Cell.setValidityList() if the ContentValidationElement is reused New Feature 
* ODFTOOLKIT-412 Document.loadDocument(File file, String password) doesn't work for encrypted ods file
* ODFTOOLKIT-413 Document corrupted after copying a sheet including a chart into new spreadsheet
* ODFTOOLKIT-421 Chinese Word Can't set font
* ODFTOOLKIT-425 Please delete old releases from mirroring system
* ODFTOOLKIT-433 Document.updateXMLIds(...) does not update referenced id's
* ODFTOOLKIT-442 Table.getRowIterator() out of sync without calling hasNext()
* ODFTOOLKIT-446 Receiving encrypted file without password should be not NULL
* ODFTOOLKIT-447 Encrypted documents invalid due to misordered manifest XML elements

The following people have contributed to ODF Toolkit 0.6.2 incubating by reporting or submitting on the issues resolved in this release:

Nick Burch (mentor)
Rob Weir (mentor)
Sam Ruby (mentor)
Tom Barber (mentor)
Yegor Kozlov (mentor)
Damjan Jovanovic (committer)
Dave Fisher (committer)
Oliver Rau  (committer)
Svante Schubert (committer)
Alain Fagot Béarez 
Alexandr Klimov
Bruno Girin
David Reepmeyer
Erika Köster
Florian Hopf 
Georg Füchsle
Guzman Rejon
Hendy Irawan
Igor Avila
Jeremias Maerki
Jerry Sie Hsiung
Josef Petrák
Jörg Büsse
Kakha Kheladze
Marc Schreiber
Mathias Silbermann 
Michael Stahl
Nimarukan
Raimund Hölle
Reaper
Sebb
Stefan Szpikowski
Uwe Ryssel
William Zhang

======= Release 0.6.1 =======

The most notable changes in ODF Toolkit 0.6.1 incubating over previous release:
* Make release 0.6 available in Maven repositories

Release wiki page: https://cwiki.apache.org/confluence/display/ODFTOOLKIT/0.6.1-incubating

Versions of major components
----------------------------

* Xerces 2.9.1 (http://xerces.apache.org/mirrors.cgi)
* Apache Jena 2.9.4 (http://jena.apache.org/download/index.html)
* Apache Commons Validator 1.4.0 (http://commons.apache.org/proper/commons-validator//download_validator.cgi)

For a full dependency list run mvn dependency:tree from the top level in the source module or see the release wiki page.

Upgrading from 0.6-incubating
-----------------------------

The behaviour of CellSelection#replaceWith(String) has changed. If you are relying on the old behaviour use CellSelection#advancedReplaceWith(String) instead (see ODFTOOLKIT-362).

Detailed Change List
--------------------

New Features
------------

* ODFTOOLKIT-358 Add method to set date time value on Cell (Florian Hopf)

Optimizations
-------------

Bug Fixes
---------

* ODFTOOLKIT-355 NullPointerException when removing rows from a new Spreadsheet table (Florian Hopf)
* ODFTOOLKIT-362 TextSelection.replaceWith() ends in an infinite loop (Florian Hopf)
* ODFTOOLKIT-363 Table#appendRow() method creates a row without any cell (Florian Hopf)
* ODFTOOLKIT-379 NullPointerException in Paragraph.getTextContent() (Florian Hopf, Patch by Marc Schreiber)

Other
-----

* ODFTOOLKIT-365 Improve Release Process to easily publish releases with maven (Florian Hopf)

The following people have contributed to ODF Toolkit 0.6.1 incubating by submitting or commenting on the issues resolved in this release, 
or contributed via reported bugs/comments on the mailing list:

Nick Burch (mentor)
Yegor Kozlov (mentor)
Dali Liu (committer)
Devin Han (committer)
Donald Harbison (committer)
Florian Hopf (committer)
Oliver Rau (committer)
Rob Weir (committer)
Svante Schubert (committer)
Alain Fagot Béarez 
Alexandr Klimov
Andy Jefferson
Anders Sjostrom
Ashok Hariharan
Charitha Madusanka
Dani Prieto 
Dave Fisher
Dennis E. Hamilton 
Gavin McDonald
Graham Weatherup
Ian Cunningham
Jeremias Maerki
Johnny Haugen Sorgard
Jörg Büsse
Kejia Ye
Lars Moller 
Pavel Jisl
Philip Helger
Peter Junge
Marc Schreiber
Mathias Silbermann 
Michael Stahl
Michan Jaskurzyński
Nick de Graeve
Noah Tilton
Romain Benefice
Steele, Raymond
Stefan Renz
Steffen Börsig
Sherzod Muratov
Svante Schubert
Tao Lin
Torsten Krah 
Vicente Villegas Larios

======= Release 0.6 incubating =======

The most notable changes in ODF Toolkit 0.6 incubating over previous release:
* Added document encryption support
* Added metadata support
* Support for OpenDocument-v1.2
* Additional APIs for Simple API

Release wiki page: https://cwiki.apache.org/confluence/display/ODFTOOLKIT/0.6-incubating

Versions of major components
----------------------------

* Xerces 2.9.1 (http://xerces.apache.org/mirrors.cgi)
* Apache Jena 2.9.4 (http://jena.apache.org/download/index.html)
* Apache Clerezza 0.1-incubating (http://incubator.apache.org/clerezza/downloads/)
* Apache Commons Validator 1.4.0 (http://commons.apache.org/proper/commons-validator//download_validator.cgi)

For a full dependency list run mvn dependency:tree from the top level in the source module or see the release wiki page.

Upgrading from 0.5-incubating
-----------------------------

There are no known API changes.

Detailed Change List
--------------------

New Features
------------

* ODFTOOLKIT-319 Document encryption support (Devin Han, Rob Weir, DaLi Liu)
* ODFTOOLKIT-50 Add ODF 1.2 RDF metadata support (Tao Lin, Svante Schubert, DaLi Liu)
* ODFTOOLKIT-346 New API to create protected section in TextDocument to protect contents (DaLi Liu, Patch by Kejia Ye)
* ODFTOOLKIT-340 New API to insert form controls into document (DaLi Liu, Patch by Kejia Ye)
* ODFTOOLKIT-339 new methods in TextDocument to suport insert a document into an open document (DaLi Liu)
* ODFTOOLKIT-330 Improve the method TextSelection.replaceWith(String). new param types support (DaLi Liu)
* ODFTOOLKIT-334 New API to support table autoformat (DaLi Liu, Patch by Kejia Ye)
* ODFTOOLKIT-336 New APIs to set page style when inserting page break in TextDocument (DaLi Liu, Patch by Kejia Ye)
* ODFTOOLKIT-329 New Simple API to generate a table of content in text document (Rob Weir, Patch by DaLi Liu)
* ODFTOOLKIT-305 Update ODF 1.2 schema to OpenDocument-v1.2 final version (Devin Han)
* ODFTOOLKIT-307 Update ODF Validator to support ODF 1.2 final version (Devin Han)
* ODFTOOLKIT-306 Update Taglets to support ODF 1.2 final version. (Devin Han)
* ODFTOOLKIT-199 Supply signature and manifest features to code generator plugin (Devin Han)

Optimizations
-------------

Bug Fixes
---------

* ODFTOOLKIT-324 Simple ODF is throwing an exception on alien elements (Florian Hopf)
* ODFTOOLKIT-325 Spreadsheet : Call to cell.getTimeValue on cell marked as valueType TIME but no value set gives NPE (Florian Hopf)
* ODFTOOLKIT-338 The Value of VariableField always is "" when try to get a VariableField instance by TextDocument.getVariableFieldByName(String) (DaLi Liu)
* ODFTOOLKIT-326 NPE when setting default background in TextCellProperties (Rob Weir, Patch by Florian Hopf)
* ODFTOOLKIT-341 newImage() generates java.lang.NullPointerException when using an svg image (Rob Weir, Patch by Anders Sjöström)
* ODFTOOLKIT-327 java.lang.NullPointerException at org.odftoolkit.odfdom.pkg.OdfPackage.logValidationError(OdfPackage.java:2028) (Rob Weir, Patch by Florian Hopf)
* ODFTOOLKIT-331 AbstractListContainer.getListIterator() doesn't include all lists (Rob Weir, Patch by Nick de Graeve)
* ODFTOOLKIT-302 getNamespaceURI() implementation in ODFDOM is not aware of duplicate namespace prefixes (Svante Schubert, Patch by Ashok Hariharan)
* ODFTOOLKIT-311 TextExtractor uses wrong new line character (Oliver Rau)

Other
-----

* ODFTOOLKIT-342 MetaDocumentStatisticTest sometimes fails (Florian Hopf)
* ODFTOOLKIT-318 Build of validator with Maven 3.0.4 (Svante Schubert)
* Correct the link for Simple API Cookbook (Rob Weir, patch by noahktilton)
* ODFTOOLKIT-190 Improvement of XPath Tests (Svante Schubert)
* ODFTOOLKIT-299 Build with JDK 7 as well as Earlier versions (Svante Schubert, Patch by Dennis E. Hamilton)
* ODFTOOLKIT-312 Better exception handling for OdfPackage (Svante Schubert, Patch by Jeremias Maerki)


The following people have contributed to ODF Toolkit 0.6 incubating by submitting or commenting on the issues resolved in this release, 
or contributed via reported bugs/comments on the mailing list:

Nick Burch (mentor)
Yegor Kozlov (mentor)
Dali Liu (committer)
Devin Han (committer)
Donald Harbison (committer)
Florian Hopf (committer)
Oliver Rau (committer)
Rob Weir (committer)
Svante Schubert (committer)
Andy Jefferson
Anders Sjostrom
Ashok Hariharan
Charitha Madusanka
Dani Prieto 
Dave Fisher
Dennis E. Hamilton 
Gavin McDonald
Graham Weatherup
Ian Cunningham
Jeremias Maerki
Johnny Haugen Sorgard
Kejia Ye
Lars Moller 
Pavel Jisl
Philip Helger
Peter Junge
Marc Schreiber
Mathias Silbermann 
Michael Stahl
Michan Jaskurzyński
Nick de Graeve
Noah Tilton
Romain Benefice
Steele, Raymond
Stefan Renz
Sherzod Muratov
Svante Schubert
Tao Lin
Torsten Krah 
Vicente Villegas Larios

======= Release 0.5 incubating =======

The most notable changes in ODF Toolkit 0.5 incubating over previous releases in ODF Toolkit Union are:
 * All of the sub-projects release with an all in one package.
 * Mark ODFDOM DOC API's as "deprecated", will be replaced by Simple API in future.
 * Some bugs fixed.

New Features
------------

* ODFTOOLKIT-287 PraragraphProperties should contain methods for margins and text indention.[Developer:Oliver Rau,Devin;Reviewer:Devin]

Optimizations
-------------

* ODFTOOLKIT-289 Clean up unnecessary log messages.[Developer:Devin]

Bug Fixes
---------

* ODFTOOLKIT-104 Create new spreadsheet, save it, load it, add a sheet, save it, then load it causes failure. (Devin Han)
* ODFTOOLKIT-133 NullPointerException sometimes happened when parsing a centain kind of XML under IBM JDK. (Devin Han, Patch by kelvin)
* ODFTOOLKIT-288 No null check for lastNode in setTextContent of Span class.[Developer:Oliver Rau,Devin;Reviewer:Devin]
* ODFTOOLKIT-295 Exit condition of Length.parseUnit in ODFDOM is wrong.[Developer:Oliver Rau;Reviewer:Devin]

Other
-----

* ODFTOOLKIT-290 Consolidate build of ODFToolkit sub-projects.[Developer:Yegor Kozlov,Devin;Reviewer:Devin]
* ODFTOOLKIT-291 Adapt Simple API to the newest ODFDOM trunk.[Developer:Devin]
* ODFTOOLKIT-292 Mark ODFDOM DOC API's as "deprecated".[Developer:Devin]
* ODFTOOLKIT-293 Submit Apache Licence info automatically added code to SVN.[Developer:Devin]
* ODFTOOLKIT-297 Test: testGetLanguage(org.odftoolkit.simple.meta.OfficeMetaTest) failed when the platform language is not 'Chinese'. [Developer:Devin]
* ODFTOOLKIT-298 XLST-Runner and Validator aren't compatible with Java 5. [Developer:Robert Weir,Devin]
 

ODF Toolkit relies on the current set of major dependencies (generated using mvn dependency:tree from the top-level odf toolkit src dir):

org.apache.odftoolkit:taglets:jar:0.8.8-incubating
org.apache.odftoolkit:schema2template:jar:0.8.8-incubating
+- org.apache.velocity:velocity:jar:1.6.4:compile
|  +- commons-collections:commons-collections:jar:3.2.1:compile
|  +- commons-lang:commons-lang:jar:2.4:compile
|  \- oro:oro:jar:2.0.8:compile
+- net.java.dev.msv:msv-core:jar:2009.1:compile
|  +- com.sun.msv.datatype.xsd:xsdlib:jar:2009.1:compile
|  +- net.java.dev.msv:msv-testharness:jar:2009.1:compile
|  |  \- org.apache.ant:ant:jar:1.7.1:compile
|  |     \- org.apache.ant:ant-launcher:jar:1.7.1:compile
|  +- xml-resolver:xml-resolver:jar:1.2:compile
|  +- xerces:xercesImpl:jar:2.9.1:compile
|  |  \- xml-apis:xml-apis:jar:1.3.04:compile
|  +- isorelax:isorelax:jar:20030108:compile
|  \- relaxngDatatype:relaxngDatatype:jar:20020414:compile
\- junit:junit:jar:4.5:test
org.apache.odftoolkit:schema2template-maven-plugin:maven-plugin:0.8.8-incubating
+- org.apache.odftoolkit:schema2template:jar:0.8.8-incubating:compile
|  +- org.apache.velocity:velocity:jar:1.6.4:compile
|  |  +- commons-collections:commons-collections:jar:3.2.1:compile
|  |  +- commons-lang:commons-lang:jar:2.4:compile
|  |  \- oro:oro:jar:2.0.8:compile
|  \- net.java.dev.msv:msv-core:jar:2009.1:compile
|     +- com.sun.msv.datatype.xsd:xsdlib:jar:2009.1:compile
|     +- net.java.dev.msv:msv-testharness:jar:2009.1:compile
|     |  \- org.apache.ant:ant:jar:1.7.1:compile
|     |     \- org.apache.ant:ant-launcher:jar:1.7.1:compile
|     +- xml-resolver:xml-resolver:jar:1.2:compile
|     +- xerces:xercesImpl:jar:2.9.1:compile
|     |  \- xml-apis:xml-apis:jar:1.3.04:compile
|     +- isorelax:isorelax:jar:20030108:compile
|     \- relaxngDatatype:relaxngDatatype:jar:20020414:compile
+- junit:junit:jar:4.5:test
+- org.apache.maven:maven-plugin-api:jar:2.0.7:provided
+- org.apache.maven:maven-project:jar:2.0.7:provided
|  +- org.apache.maven:maven-settings:jar:2.0.7:provided
|  +- org.apache.maven:maven-profile:jar:2.0.7:provided
|  +- org.apache.maven:maven-model:jar:2.0.7:provided
|  +- org.apache.maven:maven-artifact-manager:jar:2.0.7:provided
|  |  +- org.apache.maven:maven-repository-metadata:jar:2.0.7:provided
|  |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-2:provided
|  +- org.apache.maven:maven-plugin-registry:jar:2.0.7:provided
|  +- org.codehaus.plexus:plexus-utils:jar:1.4.1:provided
|  \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:provided
|     \- classworlds:classworlds:jar:1.1-alpha-2:provided
\- org.apache.maven:maven-artifact:jar:2.0.7:provided
org.apache.odftoolkit:odfdom-java:jar:0.8.8-incubating
+- org.apache.odftoolkit:taglets:jar:0.8.8-incubating:compile
+- xerces:xercesImpl:jar:2.9.1:compile
|  \- xml-apis:xml-apis:jar:1.3.04:compile
\- junit:junit:jar:4.8.1:test
org.apache.odftoolkit:xslt-runner:jar:1.2.1-incubating
\- org.apache.odftoolkit:odfdom-java:jar:0.8.8-incubating:compile
   +- org.apache.odftoolkit:taglets:jar:0.8.8-incubating:compile
   \- xerces:xercesImpl:jar:2.9.1:compile
      \- xml-apis:xml-apis:jar:1.3.04:compile
org.apache.odftoolkit:xslt-runner-task:jar:1.2.1-incubating
+- org.apache.odftoolkit:xslt-runner:jar:1.2.1-incubating:compile
|  \- org.apache.odftoolkit:odfdom-java:jar:0.8.8-incubating:compile
|     +- org.apache.odftoolkit:taglets:jar:0.8.8-incubating:compile
|     \- xerces:xercesImpl:jar:2.9.1:compile
|        \- xml-apis:xml-apis:jar:1.3.04:compile
\- org.apache.ant:ant:jar:1.8.2:compile
   \- org.apache.ant:ant-launcher:jar:1.8.2:compile
org.apache.odftoolkit:odfvalidator:war:1.1.5-incubating
+- org.apache.odftoolkit:odfdom-java:jar:0.8.8-incubating:compile
|  \- org.apache.odftoolkit:taglets:jar:0.8.8-incubating:compile
+- commons-fileupload:commons-fileupload:jar:1.2.2:compile
+- net.java.dev.msv:msv-core:jar:2011.1:compile
|  +- com.sun.msv.datatype.xsd:xsdlib:jar:2010.1:compile
|  +- isorelax:isorelax:jar:20030108:compile
|  \- relaxngDatatype:relaxngDatatype:jar:20020414:compile
+- org.iso_relax.verifier.jaxp.validation:isorelax-jaxp-bridge:jar:1.0:compile
+- xerces:xercesImpl:jar:2.9.1:compile
|  \- xml-apis:xml-apis:jar:1.3.04:compile
\- junit:junit:jar:4.8.1:test
org.apache.odftoolkit:simple-odf:jar:0.7-incubating
+- org.apache.odftoolkit:odfdom-java:jar:0.8.8-incubating:compile
|  \- org.apache.odftoolkit:taglets:jar:0.8.8-incubating:compile
+- xerces:xercesImpl:jar:2.9.1:compile
|  \- xml-apis:xml-apis:jar:1.3.04:compile
\- junit:junit:jar:4.8.1:test
org.apache.odftoolkit:odftoolkit:pom:0.5-incubating

The following people have contributed to ODF Toolkit 0.5 incubating by submitting or commenting on the issues resolved in this release, 
or contributed via reported bugs/comments on the mailing list:

Sam Ruby (mentor)
Nick Burch (mentor)
Yegor Kozlov (mentor)
Rob Weir (committer)
Devin Han (committer)
Svante Schubert (committer)
Daisy Guo (committer)
Donald Harbison (committer)
Andy Brown (committer)
Dave Fisher (committer)
Juergen Schmidt (committer)
Oliver Rau (committer)
Dennis E. Hamilton
Jeremias Maerki
Wilson Barbosa
Ansgar Konermann
Grzegorz Kaczor
Watte Babbu
Ashok Hariharan
Henrique Lobo Weissmann
Ian Lynch
Michael McCandless
Michael Stahl
Patrick Durusau
Pedro F. Giffuni
Drew Jensen
Kevin Skelton
Neelima
Ram Kane

See http://s.apache.org/odfC for more details on these contributions.
