Release 0.12.0
ODFDOM 0.12.0 is released on December 20th, 2023. Git tag: "odftoolkit-0.12.0".
GitHub issues (and feature pull requests) closed for this release 0.12.0
- #204 ODF 1.3 new mimetype: Text master template - by mistmist (Michael Stahl) was merged on Feb 1
- #215 Integrate ODF Validator using Maven - by Asbjoedt was closed on May 23
- #218 Cloning fails on Windows - by Asbjoedt was closed on May 24
- #235 Unable to replace paragraph in ODF Text Document - by rsoika was closed on Jun 23
- #236 Improved navigation interface, added next() method - by rsoika was merged on Jun 23
- #240 Text Selection refactoring of Ralph - continuation of PR #238 - by rsoika was merged on Jul 13
- #241 added a new doc page 'change_api" and minor changes - by rsoika was merged on Jul 13
- #242 Determine font, font size, bold/italic/underline styles - by j-dimension was closed on Jul 14
- #243 Diskussion Forum documentation (Documentation) - by rsoika was closed on Jul 19
- #251 OdfEditableTextExtractor extracts only a last part of the text - by sergeych was closed on Sep 4
- #254 Fix OSGI Implementation Details - by Boarschti42 was closed on Oct 18
Major updates with this version
We added a new ODF 1.3 mimetype "Text master template". The API for Text Selection has been refactored #240 has been completely refactored (in incompatible way as it was earlier errorneous), see all ODFDOM API changes since 0.11.0 to 0.12.0! Aside of minor improvements this release was rather our yearly maintenance release - the refactoring of the generation is ongoing.
Maven
Updated to latest Maven dependency versions - improving overall security!
Release 0.11.0
ODFDOM 0.11.0 is released on December 21th, 2022. Git tag: "odftoolkit-0.11.0".
GitHub issues fixed in this release 0.11.0
- #135 Regeneration of ODFDOM DOM sources for ODF 1.2
- #141 setStyleNumberWrappedParagraphsAttribute("no-limit") not valid
- #142 Many unneeded compile time dependencies declared in pom.xml
- #146 getLastChildElement() always returns first element or null
- #152 Javadoc: The search bar takes the user to an incorrect url, resulting in 404 error
- #173 Large memory consumption even after running Garbage Collection
- #176 OutOfMemory occurs on many OdfTable creations.
- #180 getTextStyle has not public function visibility
- #182 Reactivate Code Generation of ODFDOM
- #185 Create CODE_OF_CONDUCT.md
- #189 org.odftoolkit.odfdom.pkg.OdfName declares static StringBuilder -> potential problem in multi-threaded environments
- #198 clean up static Map/Set/etc to avoid races and leaks
Major updates with this version
Generation & Templates
- ODFDOM source generation (generator project) was completely refactored, allowing to trigger generation from the ODFDOM project (mvn install -Dcodegen) to generate, copy and format the Java classes of the 3 XML grammars:
- ODF XML manifest
- ODF XML digital signature
- ODF XML schema
- API changes due to former code generation issues have been addressed in this email on the ODF dev list. But there is also a lot of "noise" as the the base class feature was fixed (see below). The API Changes between ODFDOM 0.10.0 and 0.11.0 are listed here.
- There are now tests for all ODF generation examples (ODFDOM Java, OdfReference and some Python alpha work). Only all ODFDOM Java sources are being compared by line with the references, as others have still some variations with the numbering of multiple definitions. Likely, not all tests will be kept active to allow quick build/tests and must only be activated when generator, grammar, XML dependencies (as MSV) is being altered (or before releases).
- The history feature has been fixed. Allowing the tagging/versioning of newly inserted ODF XML nodes in the documentation. That is the reason why all ODF versions are being generated - I realized the need for previous grammar for this feature late, otherwise, the Maven plugin might allow a list of grammar. Nevertheless, the given list of generations is being ordered by module and version tag from the generator.
- The base class feature has been fixed. When a base class is defined in the generation configuration, which is required in addition to the XML grammar, all elements with the same base class will have their union attributes and child elements moved into that base class.
- Prior manual added functionality to the generated source has been moved into a Velocity Macro file (to ease reading the template - likely best done with VSCode extension for Velocity) and is triggered by certain attributes (e.g. elements with xhtml:content require special handling for RDF metadata) or by configuration (e.g. some elements are being duplicated by a repetition attribute, which is now being explicitly named) to allow to add the functionality for repetition and split to the XML classes. ODF JSON Chang
Maven
- For Maven the dependencyManagement and pluginManagement functionality is being used more strictly to define version numbers for Maven dependencies and plugins only once in the root project.
- The signing of artifacts is no longer required for every build only for releases.
- The latest released & overworked Multi Schema Validator (MSV) is being used. ODF element children as GraphML and MSV RunTime dumps are additional regression tests of the Toolkit's generator.
ODF JSON Changes (Collaboration)
- Text styles/format as part of the ODF Paragraph style (style:text-properties) are overtaken during a merge as span element as long as the paragraph. Unfortunately, only a few nodes were added to this span, as the logical length of ODF was mixed up with the length of XML nodes.
- When the prior described merge was initiated the first node (often a text node) was unnecessary split. This was fixed by adding a second end parameter when the sequence have to end. These fixes lead to several positive side effects and updates of the JSON references.
Release 0.10.0
ODFDOM 0.10.0 is released on November 26th, 2021. Git tag: "odftoolkit-0.10.0". Major updates are coming with this version:
- JDK 11 (or higher) is required to build
- Collaboration API: No developer would ever sent a zipped repository for exchanging work with other developers. Still we are doing this by zipping document and sending those. To be able to dispatch only changes among collaborators new functionality had bee added: Any OpenDocument Text can now be transformed into an equal sequence of user changes (ODT/JSON). This list of user changes is like a batch of text operations, similar as if the user would created the document from top to the bottom. Foremost, new user changes can be merged into the existing document via JSON. For more details see the list of supported changes/operations
- Many Fixes & enhancements, which were done over several years by merging (more an overwriting) with the former Open-XChange ODFDOM fork.
GitHub issues fixed in this release 0.10.0
- #61 Validating encrypted files
- #70 ODFDOM should support XML default namespace
- #78 Make odfdom-java an OSGi bundle
- #112 ODFValidator & Exit Code
- #116 Broken links in ODF TOOLKIT RELEASE NOTES
- #120 Write validator errors to System.err
- #124 Generated JavaDoc Jars incomplete
- #131 Remove dependency to xml-apis
- #133 Continuous integration to run tests on pull requests
Release 0.9.0
ODFDOM 0.9.0 is released on November 26th, 2021. Git tag: "odftoolkit-0.9.0".
- JDK 8 is required to build
- First release of the ODF Toolkit at The Document Foundation (TDF)
- All modules of the ODF Toolkit now have unified version numbers following ODFDOM's current version number
- Last release bundling the Simple API, which includes too many copied source code, likely as it was meant as a stand-alone fork. The Simple API is by copying and obfuscating ODFDOM API incompatible with the upcoming Collaboration API and is being removed (see above).
- validator supports ODF 1.3
- validator can now validate manifest of encrypted ODF files as produced by LibreOffice
- Many fixes & enhancements
- Another anomaly in the generator was fixed.
GitHub issues fixed in this release 0.9.0
- #7 Clarify Java Version?
- #12 Travis does not download artifacts from different Maven repos
- #15 Avoiding Whitespace Noise from Commits by Automation/GitHooks
- #23 Small mistake in Odftoolkit v0.9RC description?
- #30 Add regression tests for MarkDown to HTML creation
- #49 Memory Leak in ODF Simple API
- #50 Java Formatter triggered by Maven
- #55 Update to modern Jena
- #56 Undeprecate original API
- #61 Validating encrypted files
- #84 Upgrade libs to prevent security issues - CVE
- #85 Broken links in README.md
- #130 No release tags available
ASF JIRA issues fixed in this release 0.9.0
- ODFTOOLKIT-187 was fixed.
- ODFTOOLKIT-415 Replace/Upgrade jena dependency with org.apache.jena:jena-core:3.x
- ODFTOOLKIT-448 Upgrade Java version to JDK 8
- ODFTOOLKIT-460 validator reports errors about missing manifest.xml file entries for files in META-INF/
- ODFTOOLKIT-464 Pom does not follow best practices
- ODFTOOLKIT-474 list decorators with different bullet points
- ODFTOOLKIT-475 validator applies ODF 1.1 rules to ODF 1.2 documents when checking character content in foreign elements, part 2: ODF elements that don't allow character content
Historic release notes from ASF incubator times can be found here
Historic release notes of ODFDOM can be found here