Releases: xmlunit/xmlunit
XMLUnit for Java 2.10.0
-
add a new
ElementSelectors.byNameAndAllAttributes
variant that filters attributes before deciding whether elements can be compared.
Inspired by Issue #259 -
By default the
TransformerFactory
s created will now try to disable extension functions. If you need extension functions for your transformations you may want to pass in your own instance ofTransformerFactory
andTransformerFactoryConfigurer
may help with that.
Inspired by Issue #264 -
JAXPXPathEngine
will now try to disable the execution of extension functions by default but usesXPathFactory#setProperty
which is not available prior to Java 18. You may want to enable secure processing on anXPathFactory
instance you pass toJAXPXPathEngine
instead - andXPathFactoryConfigurer
may help with that.
XMLUnit for Java 2.9.1
-
fixed some AssertJ tests that didn't work on Windows.
Issue #252 and PR #253 by @Boiarshinov -
added overloads to
ElementSelectors.byXPath
that accept aXPathEngine
argument.
Issue #255 -
added Cyclone DX SBOMs to release artifacts
XMLUnit for Java 2.9.0
The major change of XMLUnit for Java 2.9.0 is the addition of a new module xmlunit-jakarta-jaxb-impl
that can be used in addition to xmlunit-core
when you want to use the Jakarta XML Binding API in version 3. For details please see the user's guide.
The full list of changes of XMLUnit for Java 2.9.0 is:
-
added a new module
xmlunit-jakarta-jaxb-impl
that makesInput.fromJaxb
usejakarta.xml.bind
rather thanjavax.xml.bind
. For more details see the User's Guide.This change is not fully backwards compatible. The
JaxbBuilder
class has become abstract and thewithMarshaller
method has changed its signature. For most cases the change will not be noticed and for almost all other cases it should be enough to re-compile your code against XMLUnit 2.9.x. -
added
NodeFilters#satisfiesAll
andsatifiesAny
methods to make it easier to combine multiple node filters. added to simplify the use case of #249
XMLUnit for Java 2.8.4
XMLUnit for Java 2.8.3
-
added a new
fullDescription
method toDiff
that provides a string-representation of all differences - not just the first one liketoString
does.
PR #235 fixing #232 by @Boiarshinov -
made sure AssertJ's methods to override the assertion message like
withFailMessage
are honored.
#225 -
adjusted unit tests so they pass when AssertJ 3.19.0 is used.
PR #212 by mmathesius
XMLUnit for Java 2.8.2
XMLUnit for Java 2.8.1
The only real change when compared to XMLUnit for Java 2.8.0 is the introduction of a new xmlunit-assertj3
module that requires AssertJ 3.18.1 or later in order to address a problem with running AssertJ tests in an OSGi environment.
The original xmlunit-assertj
module will still be supported.
The full changelog of XMLUnit for Java 2.8.1
-
added a new xmlunit-assertj3 module that requires AssertJ 3.18.1 or later.
This module no longer uses AssertJ internal classes that are not exported to OSGi environments and thus fixes issue #203.
The module (like AssertJ 3.x itself) requires Java 8 at runtime and is similar to xmlunit-assertj but is no drop-in replacement. It uses a different Java package from xmlunit-assertj and
CompareAssert
will no longer throw a JUnit 4.xComparisonException
but an opentest4jAssertionFailedError
instead.The existing xmlunit-assertj module will still be supported in future releases but expect AssertJ 3.x specific changes to only get applied to xmlunit-assertj3.
Many thanks to @Zegveld, @scordio and @joel-costigliola.
XMLUnit for Java 2.8.0
This release now requires Java 7 for all modules and updates some dependencies - the changed JAXB dependency is a breaking change. It also fixes a few bugs.
Details of changes:
-
changed optional JAXB dependency to use Jakarta XML Binding API
PR #186 by @endrejeges -
bumped the bytebuddy dependency to 1.10.10 for the AssertJ module in the hope it would help with #188
- and change its scope from provided to compile time, which should finally fix the issue.
-
added a new
extractingText
method toMultipleNodeAssert
to make it possible to write AssertJ assertions against the textual content of nodes more easily.
Issue #192 and PR #193 by @keesvandieren -
changed the minimum Java version required from Java 6 to Java 7 for all modules (it has already been Java 7 for the AssertJ module before).
-
DefaultNodeMatcher
with multipleElementSelector
s could fail to find the best matches as the order ofElementSelector
s should
select them.
#197 -
Input
builder now supportsjava.nio.file.Path
#196 -
It is now possible to specify a custom
TransformerFactory
forDefaultComparisonFormatter
.
#195
XMLUnit 2.7.0
The biggest changes are to the placeholder and assertj modules. The assertj module should now work with AssertJ 3.15+.
This version contains a backwards incompatible change to the PlaceholderHandler
interface that is part of the experimental placeholders module: The evaluate
method now receives a variable number of string arguments in addition to the textual content of the element/attribute. This allows placeholders like ${xmlunit.matchesRegex(some\s*regex)}
.
-
the AssertJ tests now pass on non-English locales as well
Issue #180 -
added a workaround for a binary incompatible change in AssertJ that caused xmlunit-assertj to be incompatible with AssertJ 3.15.0
Issue #181 -
added a new
${xmlunit.matchesRegex(regex)}
placeholder
PR #178 by @Jazzyekim. -
add a new
${xmlunit.isDateTime}
placeholder
inspired by #xmlunit.net/31 and #xmlunit.net/32 by MilkyWare
Issue #174 -
avoid unnecessary creation of
DocumentBuilderFactory
inDOMDifferenceEngine
when a custom factory has been provided toDiffBuilder
.
Issue #182
XMLUnit 2.6.4
This release fixes a bug that affects the XPath for missing nodes in certain corner cases and improves the AsssertJ module. In particular XMLUnit 2.6.4 is supposed to be compatible with AssertJ 3.13.x.
The full list of changes:
-
the dependencies on JAXB implementation and its transitive
dependencies has been promoted from test scope to optional for Java
9 and later
Issue #162 -
added
containsAnyNodeHavingXPath
,containsAllNodesHavingXPath
andhasXPath
assertions to xmlunit-assertj. -
added
extractingAttribute
method to xmlunit-assertj. -
removed some redundant
instanceof
checks.
PR #171 by
@PascalSchumacher. -
xmlunit-assertj should now work with AssertJ-Core 3.13.x
Issue #166 -
the XPath values for comparisons resulting in
CHILD_LOOKUP
differences could be wrong whenNodeFilter
s were present.
XMLUnit.NET Issue
xmlunit.net/#29 -
xmlunit-legacy will now use
NewDifferenceEngine
even when an
ElementQualifier
different from the built-in ones is used.