Pre-10.1.0 Archive
Prior to release 10.1.0, release notes were generated as a HTML page included in the software release. At 10.1.0, we switched to hosting our release notes on our website instead. Release notes for releases prior to 10.1.0 are included on this page for posterity.
Release 10.0.6
14th August 2019
- Bug Fix: Fixed entity reference escaping when using Oxygen Track Changes output, which was causing changes to not be rendered by Oxygen. This was customer support case CUST-84.
Release 10.0.5
6th August 2019
- Bug Fix: HTML Table processing for Document Comparator was inefficient when computing the effective row-width for HTML tables with many rows. This issue has now been fixed.
Release 10.0.4
2nd July 2019
- In HTML processing, when an attempt was made to split the table comparison result into A and B parts (to keep table valid), the table was missing in the comparison result. This issue has now been fixed.
- In HTML table processing, if the same col elements were wrapped in a colgroup element in only one input XML: an attempt was made to split the comparison result table was split into A and B parts. This issue has now been fixed. This was customer support case CUST-63.
- Enhancement: HTML table processing performance has been improved. Comparison times for DocumentComparator (when table processing is enabled) are now significantly lower when comparing input XML that contains large HTML tables. This was customer support case CUST-58.
- Bug Fix: In DocumentComparator, when processing an HTML table: Where a table column was implicitly added in the 'B' doc by incrementing the colspan attribute, an exception was thrown by an output filter. This issue has now been fixed. This was customer support case CUST-57.
Release 10.0.3
13th May 2019
- Bug Fix: When an XSLT 3.0 filter with shadow attributes was added to the XML Compare pipeline, an exception was thrown. This issue has now been fixed.
- Bug Fix: An exception was thrown in DocumentComparator when elements split within formatting elements (due to thresholding) are prefixed and require a namespace declaration. This issue has now been fixed. This was customer support case CUST-34.
Release 10.0.2
11th April 2019
- New Feature: Special XML characters ( <, >, &, " and ' ) in input XML were processed internally as 'lexical preservation' entity-reference elements. This caused unexpected results with certain lexical preservation settings, also, such characters could never occur inside the deltaV2 output as a deltaxml:textGroup. This issue has now been fixed by treating special XML characters internally as normal text, they are therefore serialised according to normal XML serialisation rules. See: https://www.w3.org/TR/xslt-xquery-serialization-31/ This was customer support case CUST-18.
- Bug Fix: In DocumentComparator, a space character (within a formatting-element) existing in both the A and B document was split into an A space and a B space. This occurred when the space immediately followed a non-formatting-element that had A and B changes within it (deltaV2: A!=B). This issue has now been fixed.
Release 10.0.1
28th March 2019
- Private Use unicode characters \uE801 to \uE805 are reserved for internal use. If found in the input for a comparison they now cause an exception to be thrown on serialisation. Previously, no exception would be thrown but characters in this range were converted to special XML characters on serialisation, making the output XML non-well-formed.
- Bug Fix: Fixed a NullPointerException if the customer's license didn't contain a VENDOR_STRING. This was customer support case 778.
- Bug Fix: In a specific case, a formatting element common to the A and B input XML was being split in the comparison result. This issue has now been fixed. Case Details: In the input A XML, a space character was wrapped in a formatting element, this formatting element followed another formatting element. The input B XML had the same content/structure but used different formatting-elements. This was customer support case CUST-21.
Release 10.0
15th January 2019
Dependency Changes
- XML Compare now requires Java SE version 8.0 or later to run (using a JDK or JRE as appropriate).
- XML Compare is now shipped with Saxon 9.8.0.12. Saxon 9.8.0.12 and above, and 9.9.x are compatible with this release.
JAR Versioning
- The names for deltaxml.jar, command.jar and rest.jar now include the major.minor.patch version number. For example,
deltaxml-10.0.0.jar
.
Enhancements
- Enhancement: XML Compare now has a REST API for performing comparisons. This feature is available if enabled in the license. Please contact DeltaXML to find out more about it.
- Enhancement: A new algorithm, designed to be more robust for edge-cases, is now used for processing formatting-elements. This simplifies the DeltaV2.1 output when ModifiedFormatOutput is set to CHANGE, and may also change the result when ModifiedFormatOutput is set to A or B.
- Enhancement: For controlling formatting element output, the ModifiedFormatOutput property has a new 'content-group' setting available.
- Enhancement: The 'side-by-side' DiffReport has been updated. New styling is used with new features such as element-folding. Also, larger file-sizes are supported.
- Enhancement: XML Compare now has the capability of measuring usage by logging the comparison details to either an XML file or database. However, this feature is disabled by default and it is only available if enabled via the license.
- Enhancement: Character map declarations in the final output filter in a DocumentComparator or PipelinedComparatorS9 were not having an effect on the XML serialisation. This issue has now been fixed. This was customer support case 696.
Bug fixes
- Bug Fix: Fixed a bug that causes an invalid CALS table result when the changes include a combination of a named column move and added rows. This was customer support case 716.
- Bug Fix: Changes in HTML table captions were ignored, this issue has now been fixed.
- Bug Fix: XML Compare will no longer generate missing/duplicate HTML table rows if there is no row span change.
- Bug Fix: When an element with namespaced attributes was split due to thresholding, the attribute prefixes were not preserved. This issue has now been fixed.
- Bug Fix: In the DTD for the DXP configuration file, the advancedEntityReferenceUsage element declaration was incorrect. This issue has now been fixed.
Documentation Changes
- Much of our Release Documentation has now been moved to our web site.
- Our code samples have been removed from the release, and moved to Bitbucket repositories. This allows us to easily add new samples or update existing ones without requiring a new XML Compare release.
Deprecation and API removals
- Deprecated: As of this version, our .NET APIs are considered deprecated. This is mainly due to development ending on IKVM, the tool we use to produce this API. This will be the last major release to include the .NET API, and we urge customers using it to consider migrating to using our new REST API, or Java if possible. Please feel free to contact DeltaXML for advice and help required with this.
- Deprecated: Removed deprecated classes (LexicalPreservation and ParameterizedFilterS9), also removed deprecated methods and constructors. These classes were deprecated in release 7.0.
Release 9.1.2
19th September 2018
- New Feature: Handle-moves functionality in DocumentComparator, previously configurable in Java and DCP can now also be configured directly using the .NET API.
- Bug Fix: Using the command-line driver for the .NET release resulted in a 'Current thread CPU time measurement is not supported' exception. This issue has now been fixed.
- Bug Fix: When the only content in a formatting-element that is in common between the A and B docs is the final word, then this word is not treated as an orphaned word. This issue has now been fixed. This was customer support case 709.
- Bug Fix: Fixed inline formatting elements and handle moves interaction bug. The inline formatting elements will not be considered as moved candidates anymore. This was customer support case 711.
- Bug Fix: XML Compare no longer throws an exception when a child element is moved to an element created due it's parent element split. This was customer support case 708.
- Bug Fix: Fixed issues with the GUI batch script when the JAVA_HOME path environment variable contained certain characters such as spaces, parentheses, or quotes.
Release 9.1.1
21st August 2018
- Bug Fix: Fixed an issue that was causing formatted text to be missing from the result under certain specific circumstances. This was customer support case 693, 704.
Release 9.1
4th July 2018
- New Feature: The DocumentComparator now supports element moves. The feature must be enabled and moved elements must be uniquely identifiable via an XPath evaluation. For more information, see the Detecting and Handling Moves sample
- Enhancement: Saxon version update. Saxon 9.8.0.12 is now included in the release.
- Enhancement: XML Compare is now shipped with version 61.1 of icu4j, updated from version 52.1
- Bug Fix: Fixed a bug that caused text inside formatting elements to be omitted from the result under certain specific circumstances. This was customer support case 680.
- Bug Fix: Fixed a bug in the GUI Windows bat file that caused a failure if JAVA_HOME contained parentheses.
Release 9.0.7
4th May 2018
- Bug Fix: The CALS table processing no longer duplicates the rows if there are no span changes. This was customer support case 669.
Release 9.0.6
29th March 2018
- Bug Fix: Changes to the deltaV2.1 processing to improve conversion into deltaV2. For specific test cases, this resulted in a more 'natural' position for deleted elements with respect to elements marked as formatting. This was customer support case 660.
- Bug Fix: Improved the GUI batch script so that it doesn't rely on JAVA_HOME being set. If JAVA_HOME is not set but 'java' is on the default path, the script will run using the java command.
Release 9.0.5
18th March 2018
- Bug Fix: Fixed a bug related to formatting element reconstruction. Incorrect formatting elements appeared in the output as a result. This was customer support case 660.
- Bug Fix: With DocumentComparator, in a specific case, an element with a child formatting-element had a missing deltaV2 attribute in the output. This was due to improper behaviour of element-splitting (or 'thresholding') functionality. This issue has now been fixed. This was customer support case 667.
Release 9.0.4
15th March 2018
- Enhancement: Improved the stability of the GUI bat file when JAVA_HOME contains spaces in the directory name
Release 9.0.3
13th March 2018
- Bug Fix: Fixed a bug related to formatting element reconstruction. Incorrect formatting elements appeared in the output as a result. This was customer support case 660.
- Bug Fix: When CALS tables contain processing instructions, there was the possibility that processing them as part of the table processing caused an Exception in the 'cals-overlap' XSLT filter. The bug has now been fixed. This was customer support case 655.
- Bug Fix: Fixed a bug that caused incorrect delta markup for deleted element content that was wrapped in multiple layers of formatting elements. This was customer support case 664.
Release 9.0.2
1st March 2018
- Bug Fix: An Exception was thrown when an unchanged thead, tbody, or tfoot inside a modified table contained row spanning across multiple rows in that section. The bug has been fixed. This was customer support case 654, 661.
Release 9.0.1
9th February 2018
- Bug Fix: The fallback mechanism of representing table changes using a duplicated tgroup when complex structural changes are present was being used in circumstances where no structural change had taken place. This was due to a bug in the detection of structural change, which has now been fixed.
- Bug Fix: When CALS tables contain complex structural change, the comparison result extracts copies of the original and modified tgroups to display in the result. When the tables contain entrytbl elements which themselves contain change, this extraction was not working correctly. This has now been resolved.
- Bug Fix: Resolves an issue where severe performance problems where found during word segmentation using JDK 1.7 or 1.8 due to performance issues with the underlying runtime regex libraries and unicode character classes (JDK 9.0 performance was good). This was customer support case 634.
- Bug Fix: For a specific case with text content changes occurring within formatting element changes, the result of a comparison using DocumentComparator had missing text instead of showing a text change. This issue has now been fixed. This was customer support case 620.
- Bug Fix: An ordering problem in the CALS table validation process caused an internal XSLT function to be invoked with the wrong arguments. The ordering has been resolved and now a correct reference resolution error is reported. This was customer support case 632.
- Bug Fix: Fixed a bug relating to word handling during format element flattening that was causing an XPathException in an underlying XLST filter. This was customer support case 642.
Release 9.0
30th November 2017
Product Rebrand
The product has been renamed from Core to XML Compare. This affects documentation content and URLs but not the API. The license filename has been changed from deltaxml-core.lic to deltaxml-xml-compare.lic.
Dependency Changes
- XML Compare now requires JavaSE version 7.0 or later to run (using a JDK or JRE as appropriate).
- XML Compare is now shipped with Saxon 9.8.0.5. Saxon 9.8.x and 9.7.x are compatible with this release. XSLT 3.0 pipeline filters are now supported. This was customer support case 576.
- Distributed version of Apache Xerces updated to Xerces 2.11.0 from 2.9.0
Enhancements
- Enhancement: Performance improvements for CALS tables with a large number of rows. This was customer support case 415.
- Enhancement: Performance improvements for the DocumentComparator, concentrating on processing of formatting-elements, CALS tables and whitespace nodes. Runtime for certain customer use-cases has been halved. This was customer support case 562.
- Enhancement: Improved the efficiency and runtime of the Character By Character sample and improved its documentation in relation to classpath requirements This was customer support case 577.
- New Feature: To facilitate URI resolution in each input document, typically from XSLT, a new
documentLocation
property in theLexicalPreservationConfig
class ensures that anxml:base
attribute is added to the root element when the property is settrue
. - New Feature: The Adobe FrameMaker tracked change format has been added as a Document Comparator output type.
- Enhancement: A new property
ResultReadabilityOptions.MixedContentDetectionScope
gives more control over how whitespace is detected in the absence of XML Schema or DTD validation. Performance can be improved by using a setting ofLOCAL
although this may, in exceptional cases, result in a failure to mark some elements as mixed-content that would otherwise have been detected by theDOCUMENT
setting. See Javadoc for MixedContentDetectionScope for more details. - Enhancement: CALS table column alignment improvements. If a CALS table has
colspec
definitions for each column and they each have a uniquecolname
attribute,colname
attributes are added to eachentry
in the table to improve column alignment. This is particularly noticeable when columns are added or deleted from the middle of the table. This was customer support case 603. - Enhancement: Added API methods and DXP/DCP parameters to control the grouping of adjacent changes (as part of the output processing).
Bug fixes
- Bug Fix: The comparison progress listener was not correctly reporting the time for the comparison itself. This has now been fixed.
- Bug Fix: The DocumentComparator
clearProgressListeners()
method did not clear progress listeners from all filters in the pipeline. This issue has now been fixed.
Release 8.2.8
28th February 2018
- Bug Fix: An Exception was thrown when an unchanged thead, tbody, or tfoot inside a modified table contained row spanning across multiple rows in that section. The bug has been fixed. This was customer support case 654, 661.
Release 8.2.7
28th November 2017
- Bug Fix: In a specific complex case with multiple differences, a non-formatting element nested within a formatting-element was missing from the comparison output. This issue has now been fixed. This was customer support case 591.
- Bug Fix: Due to the WordInfilter treating certain whitespace characters as punctuation, the definition of 'whitespace' has been updated. It now uses the regular expression
\A(\p{Z}|\s)+\Z
This was customer support case 592. - Bug Fix: Fixed a bug in the CALS validation code. Use of a spanname attribute on entries inside a thead or tfoot was deemed invalid, even when the thead or tfoot had no local colspecs defined. This was an incorrect interpretation of the specification and has now been relaxed slightly. This was customer support case 601.
- Bug Fix: When the
InvalidCalsTableBehaviour
is set toFAIL
and theCalsValidationLevel
is set toRELAXED
, validation warnings should no longer cause an Exception. Strict validation errors will continue to cause an Exception, even inRELAXED
mode. - Bug Fix: Fixed a bug that was causing table entries to change order within the row, even when the table contained no changes. This was customer support case 610.
Release 8.2.6
14th July 2017
- Bug Fix:
FilterStep
s created from anXsltExecutable
(XsltExecutableStep
) were not using the runtimeURIResolver
set in the correspondingPipelinedComparatorS9
(orDocumentComparator
). This has now been resolved. This was customer support case 586.
Release 8.2.5
26th June 2017
- Bug Fix: Reordering of CALS table constraints in order to avoid an exception when colnum value is zero. This was customer support case 488.
- Bug Fix: An exception was thrown during CALS table processing when a 'thead' with spanning was added or deleted. This has now been fixed. This was customer support case 571.
Release 8.2.4
30th May 2017
- Bug Fix: Resolve multi-threading issues (licensing exceptions thrown intermittently) introduced by a new release of the licensing APIs. This was customer support case 561.
Release 8.2.3
16th May 2017
- Bug Fix: The presence of elements marked as formatting-elements prevented change-gathering and orphaned-word optimisation of marked changes in the comparison result. This issue has now been fixed. This was customer support case 547.
- Bug Fix: For cases where the default namespace was declared on the root element, but the root element was not in the default namespace. Child elements in the default namespace were given the 'p0' prefix. This issue has now been fixed. This was customer support case 551.
- Bug Fix: When using the DocumentComparator: in specific cases, when text appears inside formatting elements in the A and B document, the text content may be truncated when the ModifiedFormatOutput property is set to 'A' or 'B' (the default). This issue has now been fixed.
- Bug Fix: In specific cases, when the Document Comparator was used with formatting-element processing: If text-changes occurred within formatting-elements, words found in the original A or B document were not preserved in the comparison output. This issue has now been resolved. This was customer support case 559.
- Bug Fix: Using the DocumentComparator with formatting-elements: If the ModifiedFormatOutput was set to 'A' or 'B', elements not marked as 'formatting' lost their 'deltaV2' information if they were contained within a modified formatting-element that was intentionally removed during the 'extract' process. This issue has now been fixed.
- Bug Fix: The inclusion of an updated flexlm.jar in release 8.2.2 fixed issues raised in support case 530 but this third-party update has now introduced additional bugs that have the potential to affect a larger number of customers. We have made the decision to revert the flexlm.jar back to its old version until the new bug can be addressed. If you experience problems with live deployment of DeltaXML into Apache Tomcat, please get in touch with us to discuss which release is most appropriate for you.
Release 8.2.2
13th April 2017
- Updates to allow restriction of delta results when running with an evaluation license. This has unfortunately become necessary after abuse of our terms and conditions regarding evaluations. Please see the XML Compare download page for more details on the nature of the restrictions.
- Bug Fix: Resolved an issue with internal licensing failures (DeltaXMLInternalError thrown) in the PipelinedComparatorS9 constructor which occurred when our licensing and other jars were redeployed as part of a web-app running in Apache Tomcat. This was customer support case 530.
Release 8.2.1
9th February 2017
- Bug Fix: Issue that affected DocumentComparator/DCP based comparisons. A special case where comparison of input files with formatting-elements resulted in invalid reconstruction of the formatting elements. This has now been fixed. This was customer support case 541.
Release 8.2
3rd January 2017
- The Document Comparator Pipeline can be defined using a 'DCP' XML Configuration file - as an alternative to using Java/C# - see the DCP User Guide on the resources page.
- Added a new <lexicalPreservation> element to the DXP format. This is used for configuring LexicalPreservationConfig in PipelinedComparatorS9.
- Some components in the toolkit now require Xerces 2.9.0 to operate correctly. See www.deltaxml.com/products/core/docs/xerces-support for more details.
- The Apple 'Mac App' release uses an updated Java Application Stub which has improved Java version detection. If you have had problems running the App release on El Capitan or Sierra, this should resolve the issue.
- Due to changes in compile-time code dependencies, source.zip is no longer available within the release.
- Saxon versions 9.5, 9.6 and 9.7 are compatible with this release. The version of Saxon redistributed with this release is Saxon version 9.5.1.5 (Professional edition). Saxon versions 9.3, 9.4 and 9.x are not compatible with this release and are not supported.
- A Windows-specific distribution is no longer provided. To run the GUI on Windows, please use the .bat file provided in the Java release. This was to simplify the ability to run the GUI on both 32- and 64-bit systems.
- Many of the code samples have been updated to include code examples for the
DocumentComparator
. - The command line and GUI interfaces now support Document Comparator Pipeline (DCP) configuration files in addition to the existing support for DXP files.
- New Feature: Added support for specifying the order of orderless comparison results based on the element order in the B input. See OrderlessPresentationMode for more details.
- Enhancement: The
NormalizeSpace
filter now uses information gathered from an XML Schema to determine whether whitespace is significant or ignorable. This is part of the overall improvements to whitespace handling. - Enhancement: DXP DTD resources are now contained by the deltaxml.jar and resolved internally. Thus DXP files, loaded by a DXPConfiguration(S9) class constructor, no longer have to be accompanied by the 'dxp.dtd' files referenced in their Doctype declaration.
- Enhancement: Improved exception message for cases where an input filter in the input pipeline outputs non well-formed XML. This was customer support case 367.
- Enhancement: When using Arbortext tracked changes as a result format, a result with no changes will now produce no Arbortext output at all (including atict:info and atict:user elements). This was customer support case 436.
DXPConfigurationS9
now includes optimisations when thegenerate
method is called for a second time. In this instance, the existingPipelinedComparatorS9
object is reused and DXP parameters are set to the appropriate values- New features associated with the preservation and normalization of whitespace - see the Enhanced Whitespace Handling guide for more detail. This was customer support case 456.
- Bug Fix: Fixed issues activating DeltaXML's built in Saxon-PE license when using the Saxon Enterprise Edition libraries. This only affected
com.deltaxml.core.PipelinedComparator
. This was customer support case 497. - Bug Fix: The side-by-side HTML view now renders properly in Internet Explorer 10 and later.
- Bug Fix: New configuration property:
com.deltaxml.cores9api.DocumentComparator.debugFiles
- this is used to enable/disable debug for DocumentComparator. - Bug Fix: When non-formatting elements or text content are added/deleted from the start/end of a parent formatting element's content, the parent formatting element was unnecessarily fragmented in the 'raw' deltaV2 output. This has been fixed.
- Bug Fix: Fixed a bug where nested, modified formatted elements were not reconstructed correctly in the result file under certain conditions.
- Bug Fix: Fixed HTML table errors that could occur when row elements were mixed with other content e.g. comments
- Bug Fix: Fixed an issue where DXP files containing uppercase letters in their id could not be run using the command-line tool.
- Bug Fix: HTML 'Folding' DiffReport now lists all changes and provides change-navigation. It also has improvements for lexical preservation items and whitespace formatting.
- Bug Fix: FilterStep.setParameterValue can now set XSLT parameter values for Saxon ObjectValue types as well as XdmValue types.
Release 8.1.2
8th December 2016
- Bug Fix: When comparing documents using the
DocumentComparator
, adjacent text-groups were not combined correctly when the 'A' part of a text change was whitespace-only, but the 'B' change included non-whitespace characters. This has now been fixed. This was customer support case 535.
Release 8.1.1
26th June 2016
- Flexera License management is included in this release to support new named-user, server and concurrent server/user licensing systems. There are some API modifications to support the new licensing system, but otherwise the release functionality should be equivalent to release 7.1.1
Release 7.1.1
28th January 2016
- Bug Fix: Elements marked as format elements that contain an identical set of attributes but in a different order were not correctly identified as the same formatting. This has now been fixed.
- Bug Fix: Nested formatting from the 'A' document that should be stripped from modified elements (e.g. a paragraph) was not correctly removed in cases where it and its content was all deleted. This has now been fixed.
Release 7.1
12th November 2015
- Enhancement: Reduction in Java heap memory requirements by restructuring the PipelinedComparatorS9 class in order to allow garbage collection of intermediate objects. For some pipelines this can halve the heap space needed.
Release 7.0.4
12th August 2015
- Bug Fix:
com.deltaxml.core.PipelinedComparator.isEqual()
was not being correctly licensed by thesetRedistributionLicense()
method. This has now been fixed. This was customer support case 433.
Release 7.0.3
27th February 2015
- Enhancement: Added the config property
com.deltaxml.cmdline.PipelinedTextUI.debugTiming
which enables filter timing information to be output from the command line tool.
Release 7.0.2
23rd December 2014
- Bug Fix: Fix a memory usage regression that is caused by the 7.0 release with updated Saxon version. This was customer support case 397.
- Bug Fix: Improved lexical preservation output/serialization filters so that namespace declaration nodes remain in position, which in turn can be used to control how the serializer will render namespace declarations. This affects the PipelinedComparatorS9 and DocumentComparator classes. This was customer support case 401.
Release 7.0.1
30th September 2014
- Bug Fix: When the invalid-cals-table-behaviour parameter is set to 'fail' it can fail valid CALS tables. This has now been fixed.
Release 7.0
10th September 2014
New Features
- New Feature: Added a new class,
DocumentComparator
to the com.deltaxml.cores9api package. This class contains functionality useful for many different documentation formats such as intelligent table comparison for both CALS and HTML tables, lexical preservation, awareness of formatting elements and the ability to generate tracked change formats for popular XML editors. You can read more about how to use this new comparison API in the Document Comparator Guideon our website. - New Feature: WordOutfilter needs an option not to optimise whitespace-only changes
- New Feature: Add XQuery support for DXP files
- New Feature: PipelinedComparatorS9 now supports the new FilterChain mechanism for specifying input and output processing. FilterChains are comprised of individual FilterSteps which are persistent objects that can be enabled or disabled and have their parameters updated. This new mechanism replaces the original List<Object> interface, although this is also still supported for backwards compatibility.
- New Feature: A new sample showing how images and other binary content referenced from XML documents can be checked for simple byte-wise equality.
Enhancements
- Enhancement: Lexical preservation is now configured on PipelinedComparatorS9 using
com.deltaxml.cores9api.config.LexicalPreservationConfig
. This replaces the previous method of adding specific input and output filters. The Lexical Preservation samples have been updated to reflect this. Find them in the release zip or on the Core resources page on our website. - Enhancement: The internal support for specifying that a URI/URL should be loaded from the classpath has now been added to the standard DeltaXML catalog resolver; previously this was only available for limited internal use.
- Enhancement: The updated ignore change processing handles nested ignore change markup. The remove-nested-ignore-change-markers.xsl filter can be used to remove the nested markup and preserve the old semantics.
- Enhancement: Updated included Saxon PE runtime to version 9.5.1.3
- Enhancement: .NET assembly generation upgraded to use IKVM version 7.2 This was customer support case 323.
- Enhancement: Improved the way that filters specified on the
PipelinedComparatorS9
are referred to in debug output files and progress listener callbacks so that they are consistently named. - Enhancement: Added some Linux specific notes for adapting the Unix-based SWT GUI shell to different linux environments (see docs/notes/deltaxml-gui-linux-notes.txt file for details). This was customer support case 365.
- Enhancement: The default DXP version is now 2.3. This means that to use DXP with com.deltaxml.core.PipelinedComparator, you must explicitly use a v1.x DXP version. For convenience, there are two new dtds added, dxp-pre-core-7_0.dtd which is a pointer to the original default version (1.1) and dxp-v1-latest.dtd which is a pointer to the latest 1.x version (currently 1.2).
- Enhancement: The red-green filter now defaults to presenting deletions before insertions. The previous behaviour can be enabled by setting the 'ordering-mode' to 'dynamic'. See the comments in the filter for more details.
- Enhancement: Mac Application now runs under 10.8 Mountain Lion.
- Enhancement: The 'HandleMoves' sample has been updated to recommend the use of keys to aid matching. This was customer support case 301.
- Enhancement: The default version of the relBase attribute on a file based filter has been modified to 'dxp' from 'current'. This means that relative file paths are calculated from the directory where the dxp file is stored. These changes are added as DXP version 1.2 and 2.3, 2,3 being the current default DXP version. To avoid using this update, you must explicitly use DXP version 1.1 or 2.2.
Bug Fixes
- Bug Fix: When using the GUI, relative DTD links were not being resolved correctly as the parser tries to load them relative to current working directory, not from the file's parent directory. This has been fixed.
- Bug Fix: Improved the error handling of the GUI when the underlying comparison throws a FilterConfigurationException. This solves problems that were occurring when a DXP file pointed to a non-existent filter.
- Bug Fix: Fixed an issue in the WordOutfilter that could cause some namespace mappings to be corrupted in the result XML.
- Bug Fix: When both entity references and their content is kept by the comparison process it was possible for their expanded text content to lose its comparison status (i.e. whether it was in the 'A' or 'B' document). This has now been fixed.
- Bug Fix: The standalone attribute of the XML declaration is no longer preserved in the output, due to incompatibilities in parsing and serialisation technologies.
- Bug Fix: In order to ensure that API features and properties are documented consistently across both the Java and .NET documentation, they have been moved to a Features and Properties page on our website. This was customer support case 323.
- Bug Fix: The deltaV2 Schematron specification has been updated to include extra tests. These include checking that a deltaV2 does not include the same version string more than once as well as other checks for delta value consistency.
- Bug Fix: Fixed an issue where some inner classes were not visible to users of the API.
- Bug Fix: The DXPConfigurationS9 generate method no longer throws a NullPointerException when a Processor instance is passed - and the DXP pipeline includes a filter with a 'when' condition.
- Bug Fix: The String, InputStream, and Reader based isEqual methods now have systemId arguments that enable their base locations to be set, in a similar manner to the corresponding compare methods. This enables relative resources to be correctly located.
- Bug Fix: Fixed broken links in notice pages that were accessible from the GUI.
- Bug Fix: The Windows GUI's File->Exit menu item now exits the application. And the File->Close menu item now only appears instead of the File->Exit menu item when using Mac OS X.
Deprecation and API removals
- Deprecated: The public visibility of the suppliedClass, requiredClass and propertyName fields on com.deltaxml.core.PropertySettingNotSuppportedException has been made private. These fields were marked as deprecated in Core 6.1.
- Deprecated: The public visibility of the featureName and proposedValue fields on com.deltaxml.core.FeatureSettingNotSupportedException has been made private. These fields were deprecated in Core 6.2.
- Deprecated: The public visibility of the featureName field on com.deltaxml.core.FeatureNotRecognizedException has been made private. This field was deprecated in Core 6.1.
- Deprecated: The public visibility of the propertyName field on com.deltaxml.core.PropertyNotRecognizedException has been made private. This field was deprecated in Core 6.1.
- Deprecated: The public visibility of the suppliedClass field on com.deltaxml.core.UnsupportedSourceException has been made private. This field was deprecated in Core 6.1.
- Deprecated: The UNDEFINED value of com.deltaxml.core.ParameterType has been removed. This value was deprecated in Core 6.1.
- Deprecated: The com.deltaxml.pipe.Stack class has been removed. This class was deprecated in Core 6.1.
- Deprecated: The following methods have been removed form com.deltaxml.pipe.filters.dx2.wbw.WordInfilter: setisCharacterByCharacter, getisCharacterByCharacter, setProcessPreserveSpaceText and isProcessPreserveSpaceText. These methods were deprecated in Core 6.3. The CharacterByCharacter sample demonstrates a more powerful and reliable approach to character granularity comparison.
- Deprecated: The DoctypeToXML Java filter has been removed. This class was deprecated in Core 6.3. The new LexicalPreservationConfig (which can be set on both the PipelinedComparatorS9 and DocumentComparator by invoking their setLexicalPreservationConfig() method) replaces this functionality.
- Deprecated: The WordSpaceFixup class and the setProcessPreserveSpaceText and isProcessPreserveSpaceText methods on WordInfilter have been removed. These were deprecated in Core 6.3.
- Deprecated: The following methods on PipelineComparatorS9 have been marked as deprecated: setInput1Filters(List<?>), setInput2Filters(List<?>), setInputFilters(List<?>), setOutputFilters(List<?>). Please see the API documentation for alternative methods to use.
- Deprecated: The ParameterizedFilterS9 has been marked as deprecated. FilterStep objects should be used instead.
- Deprecated: The following xsl filters are no longer included in the release. This is because, due to new functionality in the DocumentComparator, they are no longer needed. If you require copies of them for legacy reasons, you can obtain them from previous releases available on our website. doctype-outfilter.xsl, dtd-outfilter.xsl, dx2-format-infilter.xsl, dx2-format-outfilter.xsl, dx2-tidy-delta-outfilter.xsl, pi2xml.xsl, svg-input-filter.xsl, xml2pi.xsl, entity-change-resolver.xsl, preservation-item-ignore-changes-marker.xsl, preservation-outfilter.xsl, and remove-defaulted-attributes.xsl
Release 6.4.3
8th April 2013
- Bug Fix: Fixed a further bug in the Java filter optimization code.
Release 6.4.2
4th April 2013
- Bug Fix: Refactored the code that optimizes the way that Java filters are run as part of the comparison. This solves a bug where multiple comparisons using the same PipelinedComparatorS9 setup behaved differently. This was customer support case 319.
Release 6.4.1
6th February 2013
- Bug Fix: Improved the HandleMoves sample to fix an issue with moved subtrees that are nested within added or deleted elements. This was customer support case 306.
Release 6.4
31st January 2013
- New Feature: A sample for demonstrating character by character comparison has been added. This was customer support case 204, 229, and 281.
- New Feature: Added a new listener to
com.deltaxml.api.XMLComparator
which reports progress at most once a second in the comparison. This is also exposed throughcom.deltaxml.cores9api.PipelineProgressListener
in the s9api API. Any customers already using this listener will need to implement the new 'reportCompareHeartbeat
' method. This was customer support case 277. - Enhancement: Improvements and bug fixes to the DeltaForVersioning sample. Changes include an enhancement to allow preservation of processing instructions and comments, integrity checks on the generated delta versions, and resource-loading bug fixes.
- Bug Fix: The
apply-ignore-changes.xsl
filter has been updated to allow it to be applied at different points in an XML tree concurrently. Previously, multiple passes were used/suggested to support nesteddeltaxml:ignore-changes
attributes. The associated documentation has been updated to more precisely define how thedeltaxml:ignore-changes
attribute is used. This was customer support case 300. - Bug Fix: The schematron used to check the validity of deltaV2 inputs to the combine operations has been updated. The code did not properly validate delta sections containing adjacent
deltaxml:textGroup
elements and XML text nodes.
Release 6.3.7
14th November 2012
- Bug Fix: Another customer specific fix, to remove warnings concerning the lookup of a config file when DeltaXML is run in an applet. This was customer support case 302.
Release 6.3.6
13th November 2012
- Bug Fix: Customer specific fix, to remove warnings concerning the location of the install directory when DeltaXML is run in an applet. This was customer support case 302.
Release 6.3.5
4th October 2012
- Bug Fix: When running the GUI on a Mac only one of the three toolbar buttons appeared. This has now been fixed.
Release 6.3.4
24th September 2012
- Adding some customer specific backwards compatibility options. This was customer support case 292.
Release 6.3.3
10th September 2012
- Enhancement: When launching the Mac version of the tool on the OS X Mountain Lion the application was being reported as corrupt. This has now been addressed by signing the code with our certificate.
- Bug Fix: The Catalog resolver in the .NET version of the tool could fail due to a missing JAXP class. This has been fixed by removing the resolvers dependancy on JAXP classes (for the .NET release). This was customer support case 285 and 289.
- Bug Fix: When launching the Graphical version of the tool on the Window's operating system an 'Unknown' publisher warning was produced. This has now been addressed by signing the code with our certificate. The warning now contains 'DeltaXML Limited' publisher in its text, which is a hyperlink to this certificate and its authorisation chain.
Release 6.3.2
21st June 2012
- Bug Fix: Using
java -jar deltaxml.jar
to report license details was not working. This has been fixed. - Bug Fix: The whitespace handling improvement to WordOutfilter that stops both branches of a
deltaxml:textGroup
element from ending with the same sequence of whitespace characters was not working correctly when the text group contained newline characters. This has now been fixed.
Release 6.3.1
18th June 2012
- Bug Fix: WordBufferingFilter (and by extension, all of its subclasses) no longer throws an Exception if it is processing an invalid delta file. This was customer support case 279.
Release 6.3
11th June 2012
- New Feature: Lexical Preservation - A collection of input and output filters have been added to support the lexical preservation of data contained within the source documents, which would otherwise be lost during the comparison process. This includes the ability to preserve the XML declaration data, the doctype and internal subset data, processing instructions, comments, entity references, and CDATA sections. There is one Java input filter,
com.deltaxml.pipe.filters.LexicalPreservation
, and four output filters in the lexical-preservation subdirectory. These filters supersed the previous ways of preserving doctypes, comments, and processing instructions (see deprecation notes below). - New Feature:
WordInfilter
has been rewritten using the icu-project implementation of the Unicode Standard Annex #29. This means that word separation for non-English locales now have much improved support. Thexml:lang
attribute can be used to specify the locale used when detecting word boundaries. If you require compatibility with the previous implementation, the filters are available in thecom.deltaxml.pipe.filters.dx2.wbw.v62
package. - New Feature: A new filter,
com.deltaxml.pipe.filters.PCDataConcatenatingInfilter
, has been added which concatenates a series of SAX character events into a single event. This filter has been designed to work in a way that it can be extended - take a look at the newWordInfilter
as an example. - Enhancement: The 6.2 release introduced redistribution or 'OEM' licensing support for the Java platform, similar support has also been introduced for the .NET platform with a new property
RedistributionLicense
on thePipelinedComparatorS9
class. - Enhancement: Adjacent punctuation characters are no longer grouped together by
WordInfilter
; each separate character will now appear in its owndeltaxml:punctuation
element. This was giving poor results, when for example "word () word" was compared with "word (add) word". With this enhancement the word "add" is the only thing that has been reported as added, whereas previously there were multiple added and deletes for this example. - Enhancement: Tasks previously performed by the
WordSpaceFixup
Java filter have now been incorporated into theWordOutfilter
. This means thatWordSpaceFixup
is no longer required when performing word-by-word comparison. TheWordOutfilter
has been further improved to ensure that within a singledeltaxml:textGroup
, the A and B branches do not start or end with the same whitespace sequence; it is output as unchanged text in the relevant place. See the Javadoc forWordOutfilter
for more details. This was customer support case 269. - Enhancement: A new sample demonstrating how Deltas can be used for XML versioning has been added.
- Enhancement: Setting a boolean parameter on a Java filter in a DXP configuration now looks for a set method which takes a boolean and falls back to the existing behaviour, of looking for a set method which takes a String, if one isn't found.
- Enhancement: Parameters stored in a
ParameterizedFilterS9
class (or in theParameterizedFilter
class) are now applied to the underlying filter in the order in which they were added. This can be particularly important for Java filters. - Enhancement: The version of Saxon included in this release has been upgraded to Saxon PE version 9.3.0.11. This was needed to support some of the features of the new 'lexical preservation' filters.
- Bug Fix: The shell-script for launching the GUI in Unix/Linux systems now finds the required Jars relative to itself and not the current directory.
- Bug Fix:
WordOutfilter
has been modified so that it is no longer possible for a modifieddeltaxml:textGroup
to have adeltaxml:text
element which only contains whitespace if it matches the whitespace at the beginning or end of the otherdeltaxml:text
element. This was customer support case 259. - Bug Fix: An internal error no longer occurs when running the
PipelinedComparatorS9.isEquals
method in a pipeline with only Java input filters. This was customer support case 267. - Bug Fix: The previous version 6.2 bugfix for Saxon PE extensions with
com.deltaxml.core.PipelinedComparator
andbypassJAXPFactories
was incomplete (it worked in certain use-cases, but not others). This has been corrected and further testing applied. This was customer support case 267. - Bug Fix: Processing Instructions and Comments are now displayed in the GUI's XML result display pane.
- Bug Fix: Custom DXP configurations in your home directory or the install directory are now automatically detected by the GUI when it starts-up.
- Bug Fix: The OrphanedWord filter now counts modified words twice (once for the added word and once for the deleted word). This makes the behaviour of the filter more consistent.
- Bug Fix:
apply-ignore-changes.xsl
no longer has an ambiguous match if an element has adeltaxml:ignore-changes
attribute as well as modified attributes withdeltaxml:ignore-changes
marked on them. - Bug Fix: HTML5 side-by-side diffreport now works in Firefox when the rendered result is higher than 32000px. This is in response to a posting on our forums.
- Bug Fix: The GUI now properly retains string pipeline parameters in the comparison configuration window.
- Bug Fix: Drag and dropping of files into the GUI now works properly.
- Bug Fix: The GUI now correctly identifies the character encoding of input files and handles unicode characters properly.
- Deprecated: Filters which previously handled aspects of lexical preservation, which are now handled by the new filters (see New Feature, above), are deprecated and will be removed/no-longer-supported in a future release. These include:
xml2pi.xsl
,pi2xml.xsl
,dtd-outfilter.xsl
,doctype-outfilter.xsl
andcom.deltaxml.pipe.filters.DoctypeToXML
. - Deprecated: Two sets of get/set methods in
com.deltaxml.pipe.filters.dx2.wbw.WordInfilter
have been deprecated.setProcessPreserveSpaceText(String)
andisProcessPreserveSpaceText()
have been deprecated as this was a workaround for a historic issue, andsetisCharacterByCharacter(boolean)
andgetisCharacterByCharacter()
have been deprecated as this was an experimental feature which hasn't been ported to the new Word-by-Word implementation. These will be removed in a future release, if you require this functionality please use the version ofWordInfilter
incom.deltaxml.pipe.filters.dx2.wbw.v62
and also please report your use through your support channels. - Deprecated:
com.deltaxml.pipe.filters.dx2.wbw.WordSpaceFixup
has been deprecated and will be removed in a future release.
Release 6.2
20th October 2011
New Feature: A new GUI pipeline tool replaces the previous deltawing tool. This tool is more closely integrated to specific operating system/runtime platforms for a better user experience and through the use of more powerful SWT widgets for HTML result display, provides a number of new capabilities.
New Feature: As the new GUI is platform specific there are a number of platform specific distributions of DeltaXML Core, specifically: Windows, MacOSX, Java and .NET distributions.
New Feature: A new side-by-side style difference report has been included in the GUI and command-line tools. It is also provided as a sample filter for use in other scenarios/applications, please see
samples/xsl-filters/side-by-side
.New Feature: A new redistribution or 'OEM' licensing mechanism has been included in this release. Various
setRedistributionLicenseContent
methods are used to support this mechanism.Enhancement: The version of IKVM used in the .NET distribution has been upgraded to version 0.46.0.1.
Enhancement: A feature setting has been added to prevent header comments being added to comparator or combiner outputs. This resolves customer support case 236.
Enhancement: A filter parameter (method:
setProcessPreserveSpaceText
) has been added toWordInfilter
to support splitting of text into words even when thexml:space='preserve'
attribute is being used. For compatibility with previous releases the default setting is to not split such text.Bug Fix: Saxon PE extensions are now enabled when using the older
com.deltaxml.core.PipelinedComparator
as well as the new s9api based pipeline. This is when thebypassJAXPFactories
constructor parameter is used (when true Saxon PE is directly instantiated) and also when JAXP is configured (properties/classpath settings) to use Saxon PE. This resolves support case number: 218.Bug Fix: The default setting for normalizing attribute values in the NormalizeSpace filter, when the
setnormalizeAttValues
method is not used, has changed to false. This incompatible change in behaviour has been introduced as we were not conformant to the XML specification:http://www.w3.org/TR/xml/#AVNormalize. The method mentioned above is still provided for users who wish to preserve the previous behaviour.Bug Fix: If the final XSLT output filter does not specify an XML result method, then an XML serialization method is used. This differs slightly from the XSLT 2.0 serialization specification where when not explicitly specified it is determined from the namespaces or elements in the inputs. We believe that as delta files are subsequently processed it is better to generate XML pipeline outputs unless a xhtml or html output method is explicitly requested.
Release 6.1.1
27th June 2011
Bug Fix: Resolved code regression using DTDHandler interface in filters with PipelinedComparatorS9 (and also the command line driver). The code should now operate in a similar manner to the pre 6.0 PipelinedComparator class. This issue was identified in customer support case: 211.
Release 6.1
19th May 2011
New Feature: Support for the Microsoft .NET platform with platform specific APIs, documentation, executables and sample code.
Enhancement: Support for XPath use within DXP files. XPaths can be used to control filter optionallity and for specifying filter parameters. Please see the DXP guide for further information. In order to support this change we introduced version numbering for the DXP DTD files.
Enhancement: The format grouping code (
dx2-format-outfilter.xsl
) has been extended to handle some new cases of 'old' or 'A' formatting changes when they are contained with a parent element with mixed changes (added and deleted or modified content). Previously the old formatting was ignored. This issue was identified in customer support case: 201.
Release 6.1 b1
3rd February 2011
A beta release of the .NET platform port, only released on this platform and to selected customers for beta testing prior to the full 6.1 release.
Release 6.0
14th December 2010
This is a major release and incorporates both significant new features and enhacements and also some minor enhancements and bug fixes.
New Features and Enhancements
Enhancement: The code now depends on Java 2 SE 5.0 (aka JDK 1.5). Java Generics have been retro-fitted to existing code, while preserving API compatibility, so that existing compiled code can use the new deltaxml.jar, while recompiling code will benefit from strong type checking. New code and packages makes more extensive use of Generics.
Enhancement: The version of Saxon now shipped with DeltaXML Core is Saxon 9.3 PE. The PE edition of Saxon is a commercial product and we have a redistribution license allowing customers to use Saxon in conjunction with DeltaXML Core.
New Feature: A new pipeline system (package:
com.deltaxml.cores9api
) is provided. It is modelled on the existingcom.deltaxml.core
package but internally based on Saxon's s9api interfaces. It provides better performance, reduced memory consumption (see our: XML Pipeline Performance poster from XML Prague 2010) and new features such as progress reporting, intermediate file debug support and more precise exception handling. It is also compatible with the existing DXP file format.Enhancement: The included samples have been revised and substantially expanded to include examples of the change control issues where customers have requested our support or assistance.
Enhancement: An extension pack or 'plugin' mechanism is provided so that pipelines released as separate products and potentially different release cycles can be used with the core product. These can be used with the command-line client application, through DXP files and/or Java code. As the DocBook pipeline(s) are now available as separate products they are no longer included directly in the core release; they are however available as extension packs to existing DeltaXML Core customers with support agreements.
Enhancement: OASIS XML Catalog support, using a customized version of the Apache catalog resolver, is available from both the command-line client and through the API.
New Feature: A configuration property mechanism is used to configure catalogs and also for setting a number of default settings for the product. Future releases will expand the number of properties which can be used for setting JVM-wide defaults settings.
Enhancement: The licensing code has been simplified. The previous activation mechanism using Java preferences is no longer used. Instead the code looks for license files in deltaxml.jar, on the classpath, current and home directories. The license filename and classpath resource names have also been rationalized.
Minor Enhancements and Bug Fixes
Enhancement: The supplied
.jar
files are listed and described in order to help customers plan deployment requirements. Customer support case: 191.Enhancement: Samples are provided showing how W3C DOM and XOM objects trees can be used for pipeline IO using features of the new
cores9api
package and Saxon PE.Enhancement: Improved 'Enhanced Match 1' performance with empty elements. Enhanced Match 1, designed for use with document-centric XML was giving poor matching results for content which contained a mixture of empty elements and elements with content, for example a table-row with a mixture of empty and non-empty cells/columns. The matcher now tends to ignore such empty elements when making alignment decisions. Customer support case: 119.
Enhancement: The
com.deltaxml.pipe.filters.NormalizeSpace
filter has been extended to support an attribute which marks content as mixed and thereby avoiding normalizing important intra-word whitespace. This is useful when DTD or schemas cannot be used for mixed-content determination.Bug Fix: The
com.deltaxml.pipe.filters.NormalizeSpace
filter no longer strips XML processing instructions. This was an issue when using it combination with filters which convert PIs and comments into markup.Enhancement: The default value of the comparator 'fullDelta' feature setting is now true. Nearly all customers are using full-context deltas and changing this setting will improve ease-of-use.
Enhancement:
dx2-format-outfilter.xsl
has been re-written to use a new grouping technique which no longer requires the use of 'spacer' elements between formatting elements for the grouping to work correctly.
Release 5.3.10
20th July 2010
Bug fix: The DXPConfiguration.generate() method with 3 arguments did not make use of the bypassJAXP parameter when compiling XSLT filters (symptom Xalan-J would be used for compiling XSLT when Saxon 9 was expected according to the parameter value). Customer support case: 186.
Enhancement: Simplification of licensing/activation code to support ZIP downloads containing in-situ license keys. Explicit activation has been replaced by evaluator specific downloads and new license install locations (either a sibling of deltaxml.jar in the install directory or the user.home direectory) for purchased named user or professional server licenses.
Release 5.3.9
7th June 2010
Bug fix: The docbook column alignment code (using keys) could result in colspec elements with the same colname - a semantically illegal CALS table. This release enhances the column alignment so that several column alignment techniques are attempted and the best result is selected. The result is selected based upon aspects of output semantic validity and result quality. Customer support case: 175.
Enhancement: A new docbook keying filter is provided that allows keys used to align docbook data to be derived from id/xml:id or condition attributes. It also supports preserving or removing existing deltaxml:key attributes. Reported in the DocBook support forum.
Enhancement: A new 'intermediate' type of structural change has been defined for tables with the same column structure (same numbering and names of colspecs and similar spanspecs). When such tables have changes to their column spanning through changes to namest, nameend or spaname attributes or the use of these attributes in deleted or added rows/entry elements changes are reported at the row granularity (rather than at table granularity - with old/new tables). Customer support case: 175.
Enhancement: Complex structural changes to tables (those that involve complex changes to horizontal and vertical spanning) are now identified at the tgroup granularity (so that the old tgroup is provided with a deleted revisionflag, followed by the new tgroup with an added revisionflag). Previously they were reported as old/new tabels or informaltables which would also affect the table numbering and indexing. Customer support case: 175.
Release 5.3.8
19th May 2010
Bug fix: Improve Java object (mis)allocation and therefore performance of the Java WordOutfilter. Customer support case: 173.
Bug fix: Clarify the wording of the release ReadMe.html file so as to avoid confusion between account activation (used to validate email addresses) and software license/activation keys. Involves merging paragraphs and checking verb tenses. Issue reported in email to info@deltaxml.com
Bug fix: The schema pipeline was reporting "PCDATA not allowed in orderless..." messages. As orderless comparison is required this was resolved by adding the NormalizeSpace filter to remove unnecessary whitespace. Issue reported in email to info@deltaxml.com
Enhancement: Add abilty to configure Transformer Attributes in the PipelinedComparator and DXPConfiguration classes and correspondingly in DXP files. Issue discussed in support forum.
Bug fix: Add saxon9-s9api.jar file to the release which is needed when using the Comparator via the XSLT extension function introduced in release 5.3.3. Partly resolves customer support case: 158.
Release 5.3.7
18th May 2009
Bug fix: The docbook morerows attribute in CALS tables could cause a subsequent added/deleted table row to be semantically invalid. A conservative solution to this problem has been adopted, this is one of a number of structural changes that are difficult to report. We currently report the change at 'coarse' granularity by presenting the old and new tables. Changes to dx2-docbook-outfilter.xsl and dx2-docbook5-outfilter.xsl (both docbook4 and docbook5 pipelines). Customer support case: 113.
Bug fix: The 5.3 release changes to guarantee docbook table correctness (keying by column position) does not work if the row containing entry elements has added or deleted attributes. The code in docbook-tables.xsl and docbook5-tables.xsl was updated to avoid the use of the XSLT position() function. An additional enhancement to dx2-extract-version-moded.xsl was added to avoid extra namespace declarations 'leaking' into the added/deleted tables. Customer support case: 114
Enhancement: The docbook4 and docbook5 pipelines now support passing XML processing instructions through to the result. The generic xml2pi.xsl and pi2xml.xsl filters have been added to these pipelines.
Release 5.3.6
21st April 2009
Bug fix: A regression in 5.3 caused the Docbook4 pipeline to report ambiguous rule match errors when added/deleted (but not modified) attributes were present in certain elements. Changes to dx2-docbook-outfilter.xsl resolve this issue. Customer support case: 111.
Enhancement: The docbook4 and docbook5 pipelines included some unnecessary/unused 'xmlns' namespace declarations in their result files. While these don't generally affect XML semantics, they do cause problems for DTD based validity checking which is still widely used in Docbook v4.x processing.
Release 5.3.5
1st April 2009
Enhancement: Provide a bypass mechanism for the JAXP factories so that Saxon and Xerces can be directly instantiated - useful in application servers which do not provide facilities to override the classloader delegation order. In response to customer support case: 106.
Bug fix: Remove the JAXP services manifest entry in deltaxml.jar which configures the JAXP Transformer to be Saxon. This is no longer needed given the enhancement above and it allows customers to avoid using Saxon more easily. Resolves customer support case: 75.
Release 5.3.4
20th March 2009
Bug fix: Fixes to dx2-format-outfilter.xsl. Empty formatting-elements now handled correctly.
Release 5.3.3
18th March 2009
Bug fix: Fixes to DocBook5 output. A filter template mismatch was causing revsionflag='changed' to be added to elements with only whitespace changes, now resolved by making the filters mutually exclusive. Partially resolves customer support case 103.
Enhancement: Added preliminary support for invoking a comparison via an XSLT extension function. Currently only Saxon 9.1 is supported and requires the use of 's9api'. See the Javadoc for
com.deltaxml.ext.xslt.saxon.Comparison
for further details.
Release 5.3.2
5th March 2009
Bug fix: Fixes to DocBook table output. Changes to the column and row spanning of table entries were causing some results to be semantically invalid in relation to the CALS table model. Where this is a problem, the original table is output with a deletion revision flag and the new table with an addition revision flag.
Release 5.3.1
4th March 2009
Bug fix: The docbook5 pipeline has been modified to fix an ambiguous template match that was causing it to crash.
Release 5.3
2nd March 2009
Enhancement: Added a new
AncestorXMLFilter.stackDepth()
method to make coding Java filters easier.Bug fix: Fixed a filter name misspelling. The
propogate-ignore-changes.xsl
filter has been renamed:propagate-ignore-changes.xsl
. This is in response to customer support case 76.Enhancement: Use of the ignore-change attribute on elements without deltas has been clarified in the sample code and documentation. Customer support case 81.
Enhancement: A deterministic presentation (or 'ordering') of result elements when the orderless matching algorithm is used. This is controlled via a new 'orderlessPresentation' property setting - please see the package overview page for the
com.deltaxml.api
package for further details. This is in response to a pre-sales enquiry and customer support case 82.Enhancement: Added a new sample: DiffReportServlet. This shows how a PipelinedComparator could be used in a servlet. Should work in any Java EE environment, tested with Apache Tomcat 5.5.27 and IBM WebSphere 7.0. This relates to customer support case 79.
Bug fix: The accessor methods for
DifferingOrderedAttributesException
have been changed so that they use classes publically available indeltaxml.jar
. This issue was found during internal testing.Bug fix: The docbook4 and docbook5 pipelines have been modified to include a filter which keys table columns. This together with some output filter changes should ensure that the
table/tgroup/@cols
attribute is conistent with the number of entry elements in OASIS CALS tables. This resolves an issue where Apache FOP would throw an Exeception when the cols attribute was invalid and resolves support case 97.
Release 5.2.1
23rd January 2009
Enhancement: Updated/new code-signing support for OEM customers.
Release 5.2
17th October 2008
Enhancement: Multi-threaded loading. This is the first step in a migration to multi-threaded comparison. Each comparator input, and therefore in a PipelineComparator scenario, each input filter pipeline, is run/loaded in parallel. Future developments may extend the threading beyond two threads and to other parts of the comparison process.
Bug fix: In a JAXP Pipeline using the
com.deltaxml.api.XMLComparatorFilter
class SAXLexicalHandler
events (such as comments) would cause a NullPointerException. This issue was found during internal development/testing.Enhancement: The
SAXException
/SAXParseException
constructors do not follow the J2SE 1.4 standard of using a 'cause' nested throwable. This enhancement ensures that all such exceptions created by DeltaXML call aninitCause()
method. Also any of these exceptions which are recieved, for example from a filter or via SAXSource/SAXResult IO will have their 'cause' updated. This ensures better stack traces and improves overall error reporting/handling. This was suggested during internal DeltaXML development/testing.Bug fix: The
propagate-ignore-changes.xsl
filter did not correctly propagate deltaV2 changes on attributes. This issue was identified during internal development.Bug fix: Processing instructions or comments before/after the root XML element where not being correctly handled by the
pi2xml.xsl
filter. Both thepi2xml.xsl
andxml2pi.xsl
filters have been updated to support such usage. This resolves customer support case 48.Enhancement: The sample XSLT filters provided in the release are now included in the
deltaxml.jar
file. This allows customers using PipelinedComparator and other classes to refer to them via the Java resource mechanism. Ascommand.jar
anddeltawing.jar
refer todeltaxml.jar
using the class-path manifest mechanism these filters no longer need to be included in these files. In response to a customer support case 61.Bug fix: The DXP pipelines for both Docbook v4 and v5 were referring to undefined variables. This has been corrected and should result in improved word-by-word parameterization. This issue was found during internal DeltaXML review.
Bug fix: SAX event chaining between filters and
setEntityResolver()
. There are a number of inconsistencies between the behaviour of XSLT filters (using Saxon) and Java filters (extendingorg.xml.sax.XMLFilterImpl
) and how entity resolver settings are properly chained through filter linking via setParent(). The solution we've adopted is to avoid usingorg.xml.sax.XMLFilterImpl
and instead usecom.deltaxml.pipe.XMLFilterImpl2
as the basis for our Java filters. See the Javadoc for further details. This resolves customer support case 58.
Release 5.1
31st July 2008
Enhancement: Added Docbook5 support with new XSLT filters and DXP pipeline included in
command.jar
anddeltawing.jar
. Please see the website for further information about the docbook-xsl customization layer updates that should be used in conjunction with docbook5 (How to Compare Docbook).Enhancement: Ignore changes filters and samples provide a new general mechanism for ignoring and processing unwanted change in delta results. Please see the included samples and How to ignore changes.
Bug fix: The
XMLComparatorFilter.setProperty()
method had problems passing parameters through the input filter chain to the parsers when used with Saxon v9.x. The parameter passing mechanism has been changed and although more reliable and adding support for all parameters means that errors are deferred from the timesetProperty()
is called to thecompare()
methods.Bug fix: Using
PipelinedComparator.setOutputProperty()
foromit-xml-declaration
caused an erroneous exception to be thrown. ThesetOutputProperty
mechanism has been overhauled to support all properties used in the associated XSLT processor. Documentation has also been updated to mention Saxon's support ofstandalone=omit
. As with theXMLComparator.setProperty()
changes described above, this means that errors will now be reported at comparison time rather than with thesetOutputProeprty()
method.Enhancement: Support for a new 'raw' pipeline/command to clarify recombiner usage. Improvements to XMLCombiner javadoc to explain delta requirements for recombination.
Bug fix:
PipelinedComparator.setURIResolver()
was only setting a URIResolver for use at XSLT filter compile time. This has now been extended to filter runtime.Bug fix:
schema-input-filter.xsl
had an incorrect link. This is now fixed together with a general update of the code and the 'How to Compare XML Schemas' website documentation.Enhancement: The version of the Saxon XSLT processor included in the release has been upgraded to Saxon v9.1.0.1. Some small changes to filters (
dx2-threshold.xsl
andxhtml-infilter.xsl
) were necessary due to the stricter type checking in this version. (ticket:128)Enhancement: Upward compatible changes to the DXP pipeline format now allows for per-parameter documentation. This should provide greater documentation consistency in the future.
Enhancement: Support for compiled Saxon XSLT Filters. A saxonCompiled attribute has been added to certain DXP elements and appropriate support has been provided in DXPConfiguration for loading of compiled stylesheets. Please see the Saxon documentation for details of how to compile a stylesheet. Note that any compilation must be done using the same version of Saxon as that supplied in the DeltaXML Core release.
Release 5.0
6th June 2008
Enhancement: The comparator and combiner now support the new deltaV2 format. This is documented in the: introductory guide, format specification and with a schematron schema. Access to the old format is preserved for backwards compatibility through the use of a comparator feature setting. New customers are encouraged to adopt the new format which is significantly easier to process with XSLT/XPath/Xquery. The combiner support includes a new input validation feature (using schematron) which can be turned off for higher performance (see feature documentation in the com.deltaxml.api package overview page).
Enhancement: Improved error/exception handling. The error handling during compare and combine operations has been improved. New subclasses of DeltaXMLProcessingException allow users to get more details about errors and automate reporting and recovery. The previous error codes have been preserved where possible to provide compatibility.
Enhancement: Changed ErrorListener behaviour. Fatal errors are now reported to the user/application code through the listener and then also thrown as exceptions. This change still allows users control over the error handling, however they no longer need to write error handlers which support the getFatalDetected() method. Some consequences of this change include error number 5 ('previous fatal errors reported') is no longer required/reported and that only one fatal error is reported per comparison operation.
Enhancement: The performance and matching enhancements introduced between the 4.5.1 and 4.5.2 releases are also included in this release. It was found that these enhancements nullified any of the performance improvements previously provided by 'enhancedMatch2'; although it is still provided for existing customers we encourage new users to use enhancedmatch1 and we've removed mention of it from the javadoc.
Enhancement: Added PipelinedComparator.isEqual() methods which allow input filtering prior to equality testing.
Enhancement: Additional filters and pipeline changes. New filters were needed to support the deltaV2 format. Various pipelines, particularly those associated with document-centric XML, for example xhtml and docbook were upgraded to use these new filters. These filters include a change to the way 'formatting' elements are implemented, a new more powerful technique using flattening is provided. This is incompatible with the formatting support provided by the WordByWordInfilter in previous releases. Previous filters used with deltaV1 and previous releases are included in a 'Filter Compatibility Pack' available from the downloads section of the DeltaXML website. These can be used with this release only in conjunction with the deltaV1 feature setting.
Enhancement: Updated XSLT and Saxon - Some of the filters supplied in this release have been updated to use XSLT version 2.0, now a W3C recommendation. Consequently the version of SaxonB supplied is now version 9.0.0.2. Both
saxon9.jar
andsaxon9-dom.jar
are needed.
Release 4.5.2
28th March 2008
New Feature: added the 'red-green' XSLT filter. Converts sequences of mixed, consecutive added and deleted elements into a sequence of all the deleted items followed by all the added items. See filter comments for more details.
Bug fix: fixed an issue that could cause a comparison of partially keyed data to run very slowly
Enhancement: optimisations to the enhanced matching algorithm to improve speed
Bug fix: fixed a bug in RemoveExchange filter that sometimes caused text to be repeated
Release 4.5.1
19th February 2008
Enhancement: Changes to OrphanedWordOutfilter to treat orphaned punctuation in the same way as orphaned words. This results in cleaner changesets in previously fragmented text.
Release 4.5
12th December 2007
Bug fix: Resolve issues with Enterprise releases reporting 'corrupt license' problems by proving a new license management implementation which reduces exposure to bugs in the Java platform APIs.
Enchancement: Performance improvement in the enhanced matcher. On a fairly critical path there was some code which tested for contains() on a List and then did a get(); these operations are now merged.
Enchancement: The Orphaned word filter only considered PCDATAModify elements surrounding unchanged words when determening orphan candidates. It now also considers added and deleted words making it more generally applicable.
Release 4.4
22nd August 2007
New Feature: Added Enhanced Match 2. This is a new matching algorithm based on the Enhanced Matcher 1. See the com.deltaxml.api package description for more details.
Bug fix: Stopped the Enhanced Matcher 1 from attempting to match elements with keys. These will already have matched and this behaviour can slow the matcher down.
New Feature: Added
com.deltaxml.pipe.filters.OrphanedWordOutfilter
. See filter javadocfor more details.Enhancement: Added URIResolver and EntityResolver support to command line tool. See the command line tool readme for more details.
Release 4.3.6
20th August 2007
Bug fix: Resolved classloading and bean decoding issues when deltaxml.jar is used in conjunction with other software (eg: Alfresco) which also uses the TrueLicense APIs.
Release 4.3.5
6th July 2007
Enhancement: Improved punctuation support in WordByWordInfilter.java. The definition of punctuation is now one, or more of the set of punctuation characters, preceded or followed by whitespace or those which appear at the start of end of character data.
Enhancement: Experimental support for character based splitting in WordByWord infilter. A parameter can now be used to split every character into a word element (for recombination by WordByWordOutfilter1). This parameter disables this experimental functionality by default and should not affected existing pipelines/users.
Release 4.3.4
29th June 2007
Enhancement: Added URIResolver support to PipelinedComparator and DXPConfiguration.
Release 4.3.3
25th April 2007
Enhancement: Added RemoveExchange filter in Java. This is equivalent to remove-exchange.xsl in the xsl samples folder
Bug fix: Modified package sealing so that deltaxml.jar and sync.jar can be used by the same classloader
Bug fix: Improved error handling. SAXParseExceptions that occur in pipeline components before the comparator are now reported to the comparator ErrorListener
Release 4.3.2
2nd April 2007
Enhancement: Added a license activation gui tool to facilitate license activation
Release 4.3.1
22nd March 2007
Bug fix: Fixed a bug that sometimes occurred when activating a licence file
Release 4.3
20th March 2007
Enhancement: New licensing model that requires activation of license files sent as email attachments
Release 4.2.1
6th March 2007
Bug fix: Changes made to WordByWord filters in version 4.1 were causing enhanced matching to be less effective. This has been fixed by altering the enhanced matching algorithm. 'Paragraph' level alignment should now be identical to version 4.0.
Release 4.2
13th February 2007
Enhancement: Improved the error handling mechanisms for
com.deltaxml.api.ComparatorFilter
Documentation fix: example commands for producing a delta file to use for recombination were incorrect
Bug fix: Word By Word filters were removing elements in the deltaxml namespace from the resulting delta (such as
deltaxml:line
, used in the DocBook pipeline)Enhancement: Improved the operation of the Enhanced Matcher. Changes made to Word By Word filtering in 4.1 caused problems in some situations.
New Feature: Added a DocBook comparison pipeline (
compare-docbook.dxp
).Enhancement: Changes to DocBook filters to improve the DocBook pipeline. Notably:
docbook-infilter.xsl
fails if an input containsrevisionflag
attributesdocbook-infilter.xsl
fails if an input contains non-uniqueid
attributesdocbook-outfilter.xsl
usesrevisionflag="changed"
more correctlyNew output filter
docbook-unique-ids.xsl
that resolves id conflicts in a result file.
Bug fix: command line processor did not find dxp files located in the installation directory.
Release 4.1.2
18th January 2007
Enhancement: namespace prefixes. The comparator will now output an anonymous namespace if this is appropriate. In many cases, this will remove the use of 'p0' prefixes in the output.
Bug fix: multiple anonymous namespace mappings. The comparator would previously read an unprefixed namespace bound to the empty string URI (xmlns=''); the delta output would then, in certain circumstances, contain the empty string URI bound to a namespace prefix (xmlns:p0='') which is an invalid XML result.
Bug fix:
xhtml-outfilter.xsl
Fixed a bug where a format and content change was marked as a format-only change.Bug fix:
ComparatorFilter
. Fixed an error handling bug to support the use of rethrowing error handlers withComparatorFilter
.Enhancement: added
InvalidPipelineException
, a subclass ofDXPConfigurationException
that is thrown when attempting to generate aPipelinedComparator
from a dxp file whose root is notcomparatorPipeline
.Enhancement:
WordByWord
filters now differentiate between punctuation and text. This means that changing 'word' to 'word,' is an addition operation rather than a modification.Bug fix: spaces in path names on MS Windows when saving results to file were replaced with '%20'. Shipping with Saxon 6.5.5 rather than 6.5.4 fixes this.
Enhancement: command-line tool. Improved error reporting when problems are encountered with loading dxp files.
Enhancement: added
remove-exchange.xsl
filter. This convertsdeltaxml:exchange
elements into added/deleted elements ordeltaxml:PCDATAmodify
as appropriate.
Release 4.1.1
12th August 2006
Bug fix: method signature for the attribute normalization parameter of the
NormalizeSpace
filter improved.Bug fix: Changed CSS class ids in
deltaxml-folding-html.xsl
to ones less likely to cause clashes.Enhancement: The display of 'buttons' in the
xhtml-outfilter.xsl
can be controlled via a parameter.Bug fix: Output file extension in the
compare-xhtml.dxp
pipeline changed from 'xhtml' to 'html' for better compatibility with InternetExplorer.Enhancement: Initial collapsed/expanded state of unchanged elements in
deltaxml-folding-html.xsl
can be controlled via a parameter.Bug fix: Change in Classloader behaviour when loading filters described as DXP resources. Now using the current classloader.
Release 4.1
14th June 2006
Improved enhanced matcher documentation in com.deltaxml.api package docs. Now includes runtime and memory warning/advice.
A 'pull mode' comparator is provided, see the class:
com.deltaxml.api.XMLComparatorFilter
. This allows multiple comparators to be used in a SAX pipeline.Increased capacity: the data structures used to represent the input files/streams have a 16 fold capacity increase. They now support, for example, in the optimum case, 230-1 elements or a 'giga-element' capacity.
This large capacity has only been achieved in practice using Sun's Java SE 6.0 beta release. When tested with J2SE 5.0 releases an
OutOfMemoryError
with message detail: 'Requested array size exceeds VM limit' was produced before the new maximum capacity could be reached, even when plenty of RAM was available and with various JVM and Garbage collector settings.Improved matching is provided for inline document formatting elements in the WordByWord filters. This mechanism relies on a new attribute deltaxml:format. The XHTML filters and the XHTML pipeline included in the commandline and GUI tools have been enhanced to make use of this new functionality. This capability is only applicable when full-context deltas are being used.
The XSLT versions of the word-by-word filters have been retired in favour of the Java versions. The Java versions offer much better performance and reduced memory footprint. The XSLT versions are no longer included in the release, but support will be continued for customers still using them in production settings.
Asymmetric input pipelines are now supported in the
com.deltaxml.core.PipelinedComparator
class and in DXP files.
Release 4.0
5th April 2006
The enhanced (4.0.b1) matching algorithm is now the default behaviour. The associated Feature setting (please see the javadoc package overview page for the
com.deltaxml.api
package) has been retained for 3.x backwards compatible behaviour.Merged 3.1.1 and 3.1.2 bug fixes into 4.0 branch.
Planned changes for a future release (Please Note):
API incompatible changes, such as the removal of currently deprecated interfaces (particularly RunnableComparators/Combiners and Briefcases), may be made in a future major release. Please check for use of any deprecated interfaces and discuss any concerns with DeltaXML support.
Release 3.1.2
31st March 2006
Bug fix with credit assignment and usage logging with the WebService release.
Release 3.1.1
3rd March 2006
Bug fix for DeltaWing (now version 2.1) for screen refresh problems on Windows XP
Release 4.0.b1
24th February 2006
Added document-mode enhanced matching algorithm, controllable with new feature setting.
Internal data structure redesign/refactoring in preparation for new datastores and also external data store integration.
Release 3.1
24th February 2006
Improved HTML difference report filter using JavaScript to allow collapse/expand of the Nodes in an XML tree.
A new (2.0) release of the DeltaWing GUI application, using browser/editor call-out techniques for results viewing of HTML and XML data.
User configurable/extensible pipelines (using DXP configuration files) in DeltaWing and Command-line processor. The DXP configuration mechanism is also available for embeddeding in Java appications through new classes in the
com.deltaxml.core
package.Better error reporting of missing FEATURE problems in the
PipelinedComparator
constructor.Bug/performance fixes to various filters:
Changes to
xhtml-outfilter.xsl
including corrected CSS classnames to avoid differences being misreported and removal of deltaxml attributes from the result.Improved added/deleted whitespace handling in
WordByWordOutfilter1.java
andword-by-word-outfilter1.xsl
.Improved performance of NormalizeSpace.java filter by avoiding use of Java regular expression code.
The following features are provided for the WebService release (the default evaluation download):
DeltaWing now works with the WebService release, providing easy to use pipelines and extensibility mechanisms
Improved error detection and reporting of certain WebService failures such as unknown username or expired and exhausted credits
Release 3.0
7th September 2005
Same as 3.0.b6 release candidate.
Release 3.0 beta 6
23rd August 2005
Updates to new Docbook generated website documentation locations.
Resolved issue with
deltaxml-soa.jar
not providing similar DTD/ignorable-whitespace semantics to the local release.Updated included verisons of Saxon and Xerces-J to 6.5.4 and 2.7.1 respectively.
Includes
serializer.jar
from Xalan-J 2.7.0 to support result viewing in DeltaWing when used on J2SE 5.0.
Release 3.0 beta 5
19th August 2005
Support for comparison using a SOAP webservice instead of local comparison.
Release 3.0 beta 4
26th July 2005
Push and Pull mode filtering in Java giving much improved performance, and including:
A new package (
com.deltaxml.core
) to provide easier pipeline construction.A support package for 'push mode' SAX event filtering in Java (
com.deltaxml.pipe
).A number of Java filter implementations (
com.deltaxml.pipe.filters
).
Restructuring of the release: samples in subdirectories and source.zip
Included XSLT processor is now Saxon, Xerces-J is also provided for parsing support.
Most documentation converted to docbook/HTML.
Release 2.8.2
10th August 2004
The orderless recombine algorithm has been overhauled, this should fix the known issues (described in 2.8 below) and also provide better run-time performance.
The (run-time) performance when loading XML datasets containing large numbers of distinct PCDATA and attribute values has been optimized. For 'pathalogical' cases this can result in a 20x run-time speed improvement.
DeltaWing now supports user selectable input filters. Two simple filters are provided in the default build; users can also customize the number and types of filters used when rebuilding.
Release 2.8.1
19th April 2004
Rendering improvements in DeltaWing (workarounds for Swing's HTMLEditorPanel bugs, such as not considering newline in PCDATA as whitespace).
Updated copyright year output in
java -jar deltaxml.jar
Bug 120 was incorrectly reported as fixed in 2.7, now fixed
Release 2.8
26th March 2004
DeltaWing changes including:
better layout management giving more reliable resizing on different platforms,
selection of changes display mode
option to save HTML 3.2 result
Supply compiled version of DeltaWing in top level directory and simplifications to source code build process (no longer uses 'burn-in', instead includes XSLT scripts directly in
deltawing.jar
)Samples directory overhaul, including:
Use latest versions of
normalize-space.xsl
anddeltaxml-tables.xsl
withAdvanced.java
rather than outdatedinfilter.xsl
etc.Use new simpler example files (
demo1.xml
anddemo2.xml
)Change Ant build script to use Saxon - works better with filters.
README.txt
gives JDK1.4 examples only, other compile/run examples moved to source code comments.
Bug fix 121 -
IndexOutOfBoundsException
when reporting errors if one of the comparison inputs is a delta file, now only produces a single fatal error when comparing delta files.Bug fix 122 - Reduced memory consumption for large multi-line PCDATA sections.
Changed the semantics of error 47 (no PCDATA in orderless elements), now any PCDATA, not just non-whitespace PCDATA, in an orderless element is reported as an error. This is more inline with the wording of the error message and also the compare/recombine semantics necessary for 'round-tripping'.
Tutorial is now supplied only in HTML form, not as pdf files or zip files, which are still available from the website.
Errors which were previously reporting error code zero have been changed to provide new unique error codes, this change is needed in order to support better error reporting when a comparator is used internally by the upcoming sync product.
'Nag messages' for evaluation releases are produced only 2 days prior to expiry, message is shorter (no details of evaluation user - can still be obtained via
java -jar deltaxml.jar
).Known Issues:
recombine of orderless elements may produce incorrect results in certain cases
SAXResult
output from anXMLCombiner
is incorrect in certain cases,StreamResult
should always be correct
Release 2.7.1
19th January 2004
Removed comment wrappers for CSS style info in
xhtml-outfilter.xsl
(used internally bycommand.jar
) because of compatability issues in recent browsers.Provided new API method:
public boolean Comparator.isEqual(Source, Source)
for fast return of boolean result.