MockMotor Diff & Impact Tool

Release Notes

Download the On-Premise Version

If your corporate security or your own caution stops you from uploading WSDLs to MockMotor WSDL Diff, download the whole app as a JAR and use it on the premises:

Download MockMotor WSDL Diff JAR

Usage:

    java -jar webwsdllib.jar -p 8080

where -p specifies the port MockMotor WSDL Diff listens on.

Change Log

Mar 24, 2019

More complete JSON Schema support at its draft 7 level. Relative- and anchor-based $ref's are supported, as well as JSON Pointer notation.

Next JSON Schema release is planned after draft 8 is out. Draft 8 contains too many changes to invest time into fixing draft 7 support.

Mar 19, 2019

Initial support for JSON Schema diff. The code is still not feature-complete: nested $id are not supported, and most of upcoming draft 8 properties are not recognized. Expected to be finalized by the time draft 8 is out.

Mar 7, 2019

  • Fix: implicitly include SOAP encoding schema.
  • Fix: implicitly include XML namespace attributes (xml:lang, xml:space, xml:base).
  • Fix: report attribute namespace in details page.

Feb 13, 2019

SHAME ON ME! A silly, silly bug.

I made a typo and the changes in the port and binding properties - such as SOAP version - were lost from UI. They were still found by the code, but the details view did not show them.

Fixed.

Jan 26, 2019

A fuzzy logic change.

For each pair of WSDL services, we have to decide if one of them is a modification of another or two completely separate ones. In first case we compare them operation by operation, and in the second case we show a removal of one and adding of another. Sometimes this decision is easy. Sometimes, however, the services are not too different, but not too similar, either.

Until today, WSDL Diff was leaning on the side of not considering the services related if in doubt. However, people sent me WSDLs where the service that had just a few operations before got updated with a few dozens more. From a human point of view, this is clearly the same service/binding. For WSDL Diff, alas, the bindings were too different, and it has shown the Add/Remove pattern.

No more. Now WSDL Diff refuses to relate two services/bindings ONLY if it can find no common operations between two bindings.

Jan 08, 2019

Fix: scope error caused incorrect compare of xsd:choice.

Jan 02, 2019

Fix: failure to find the matching operations in RPC-style bindings.

Dec 14, 2018

Support for XML files in UTF16 (BE and LE) and UTF32 (BE and LE) with the BOM mark. Also, support for UTF-8 XMLs with the BOM mark.

Dec 13, 2018

A surprisingly often happening error:

Someone views a WSDL or XSD via an URL in a browser. The browser helpfully adds tiny open/close branch signs (minuses and pluses). Then Ctrl-A, Ctrl-C, paste into a file - and the file is not recognized as a WSDL anymore. The issue is because these little minuses got copied into the file, too, and they make the file invalid.

-<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" ...
-<wsdl:types>

WSDLDiff now tries to detect this case whenever an unparsable file is uploaded and reports it as an error:

old.wsdl: file is not parsable and contains -</+< sequences that are typically added by browsers when viewing WSDL/XSD. Please obtain an undamaged copy.
Nov 19, 2018

Improved performance for large WSDLs with many ports and hundreds of operations.

Nov 12, 2018

In the details view, show the non-changed elements that surround the changed ones. That helps to understand the change better, especially when the same element has been moved to another position in the sequence.

Oct 13, 2018

Fix: a workaround for WSDLs where all SOAPAction values have the same, non-empty, value.

Such WSDLs are incorrect and can cause issues with systems performing request routing based on SOAPAction. However, these WSDLs exist in the wild, and WSDLDiff has to deal with them and try and provide as correct compare as possible in these harsh conditions. :-)

Sep 28, 2018

Fix: support imports with Windows path separators (back-slashes).

Aug 28, 2018

Fix: default @style is "document". If the style has changed from "document" to nothing, this is not a breaking change. If the style has changed from "rpc" to nothing, this is "rpc" to "document" and hence a breaking change.

Aug 22, 2018

Fix: message parts with @type were not compared correctly.

Aug 13, 2018

Added descriptions for breaking/non-breaking changes in the details page.

Not all change types are described yet, but this is a work in progress.

Aug 08, 2018

Made the details page much more readable by default, with a diff-like markup and coloring.

Apr 21, 2018

Large change: the application compares the ports, trying to find the ones that resemble each other most in the old and the updated WSDL, even if the namespace or name has changed. In many cases it allows to see the details that used to be hidden by the port, binding or port type meta information.

Apr 1, 2018

Fix: ignore missing or empty @memberTypes in xsd:union

March 27, 2018

Added support for uploading ZIP archives containing the required WSDL and XSD files.

March 26, 2018

Added support for imported WSDLs. The UI warns you if an imported WSDL is missing, just like with the schemas.

Let users to upload multiple files at once, e.g. a WSDL and a number of schema files. The files should be in the same directory. I will support more complex directory structures later.

March 20, 2018

Added support for message exchange pattern. Yes, I know that nobody uses them, and tools even ignore them generating Input-Output code even if stumbled on a Output-Input operation, but still it wasn't good that Impact Tool did not detect this difference. Now it does.

March 19, 2018

Fix: if the same element reference is found in different places of schema, reported it as circular element. No more.

Fix: if the same schema type is used in different places of schema, reported it as circular type. No more.

March 18, 2018

Support for SOAP 1.2 soapActionRequired, taking into account its directional impact.

Support for multiple URIs in encodingStyle for SOAP 1.1.

Added an explicit error message that WSDL 2.0 is not supported. It wouldn't be too hard to add such a support, but I consider it a low priority - I never have seen WSDL 2.0 in the wild.

March 17, 2018

Fixes: some bindings' changes did not affect the overall reported compatibility status.

March 16, 2018

Added a basic support for HTTP Binding extension. Reports urlEncoded, urlReplacement, mime:content and mimeXml elements.

March 14, 2018

Added support for @type for message parts (normally only found in RPC encodings?).