* Start working on generating stub requests from Xml.
* Start implementing matching by xpath.
* Handle xml request body matchers.
* Merge branch 'master' into add-xml-support
* Implement analysing xmls and converting nodes to matchers.
* Handle attributes in xml analysis and generate stubs with xml body matchers.
* Make XmlToXPathsConverter statically compiled.
* Start extracting json test generation logic out of the MethodBodyBuilder.
* Fix extracted JsonBodyVerificationBuilder. Fix processing attributes
from xml while generating stubs. Fix and adjust tests to recent changes.
* Merge branch 'master' into add-xml-support
# Conflicts:
# spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilder.groovy
# spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/converter/ContractsToYaml.groovy
# spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/dsl/wiremock/WireMockRequestStubStrategy.groovy
# spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/JsonToJsonPathsConverter.groovy
# spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/converter/YamlContractConverterSpec.groovy
* Implement test generation for XML body matchers. Start implementing handling XML lists in assertions.
* Fix generating list element assertions and regex body matcher assertions.
Move XML-assert lib content to project sources. Add tests.
* Fix recognising XML content from String body. Minor refactoring.
* Adjust yaml contracts to new xml handling.
* Add tests for handling XML with yaml contracts. Handle incorrect request
matchers processing.
* Minor refactoring.
* Add docs.
* Fix docs.
* Fixes after code review.
* Switch to apache commons logger in `XmlAsserter`.
without this change you always have to pass the concrete version for git based storage
with this change we support passing of a latests version
fixes gh-745
without this change if one does $(regex("[0-9]")) we have no knowledge of whether the result should be text or a number. What we do ATM is we always generate a String
with this change once can pass the type of regular expression and we will generate the concrete value of that given type
fixes gh-768
without this change, if you're using some external libraries and you reference them in your DSL, those libraries need to also be used on the consumer side.
with this change, you can set the contractsToYaml property of the plugin, that will convert the contract definitions into YAML, and then generate tests and stubs. We will store the original contract definitions under the originals folder.
fixes#744
without this change we always include `spring-boot-starter-web` to Stub Runner. With this change the dependency is optional. Thanks to this reactive applications will be able to work fine with contract on the classpath.
without this change we always run Stub Runner test execution listener, even if the test class is not annotated. With this change we run the listener only, if the test class was annotated with `@AutoConfigureStubRunner`.
Also we add information about the `java.net.SocketException: Unexpected end of file from server` exception to the docs and how to override that issue.
Fixes gh-798, gh-809, gh-799
Sometimes people want to use methods like `addMockServiceRequestListener`, which are not static. But there is no any notes about `WireMockServer` in spring-cloud-wiremock documentation.
I saw how the developers did not know about it and made a mistake.
They mixed junit4 and junit5 even for new services, because `WireMockRule` inherits from `WireMockServer` and provides non static methods.
This situation may seem funny, but many can get into it.