diff --git a/pom.xml b/pom.xml
index fee231f4ad..57215b617f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
5.15.9
2.24.0
2.17
- 3.5.13
+ 3.6.7
0.0.9
2.2.0.BUILD-SNAPSHOT
2.2.0.BUILD-SNAPSHOT
diff --git a/spring-cloud-contract-shade/pom.xml b/spring-cloud-contract-shade/pom.xml
index 2595e08840..0b1648e1fa 100644
--- a/spring-cloud-contract-shade/pom.xml
+++ b/spring-cloud-contract-shade/pom.xml
@@ -10,6 +10,7 @@
4.2.2
27.1-jre
7.1
+ 2.8.2
3.2.1
3.0.0
@@ -119,12 +120,6 @@
guava
${guava.version}
true
-
-
- com.google.guava
- failureaccess
-
-
com.google.inject
@@ -145,6 +140,13 @@
true
provided
+
+ org.checkerframework
+ checker
+ ${checker.version}
+ true
+ provided
+
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
index e4534b169f..6b5fc30527 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/pom.xml
@@ -86,8 +86,6 @@
compile
generateTestStubs
compileTests
- removeStubs
- removeTestStubs
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java
index 1282d49f72..60f76fa4e4 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilder.java
@@ -37,8 +37,8 @@ import au.com.dius.pact.provider.junit.loader.PactBroker;
import au.com.dius.pact.provider.junit.loader.PactBrokerAuth;
import au.com.dius.pact.provider.junit.loader.PactBrokerLoader;
import au.com.dius.pact.provider.junit.loader.PactLoader;
-import au.com.dius.pact.provider.junit.sysprops.SystemPropertyResolver;
-import au.com.dius.pact.provider.junit.sysprops.ValueResolver;
+import au.com.dius.pact.support.expressions.SystemPropertyResolver;
+import au.com.dius.pact.support.expressions.ValueResolver;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.logging.Log;
@@ -288,6 +288,11 @@ class PactStubDownloader implements StubDownloader {
@Override
public String protocol() {
+ return scheme();
+ }
+
+ @Override
+ public String scheme() {
return resolver
.resolveValue("pactbroker.protocol:" + pactBrokerUrl.getScheme());
}
@@ -297,6 +302,11 @@ class PactStubDownloader implements StubDownloader {
return tags.toArray(new String[0]);
}
+ @Override
+ public String[] consumers() {
+ return new String[] { resolver.resolveValue("pactbroker.consumers:") };
+ }
+
@Override
public boolean failIfNoPactsFound() {
return true;
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/BodyConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/BodyConverter.groovy
index 3408bcf085..77b0ab8b14 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/BodyConverter.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/BodyConverter.groovy
@@ -195,7 +195,7 @@ class BodyConverter {
private static def parseBody(OptionalBody optionalBody) {
if (optionalBody.present) {
- return new JsonSlurper().parseText(optionalBody.value)
+ return new JsonSlurper().parse(optionalBody.value)
}
else {
return optionalBody.value
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/MessagePactCreator.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/MessagePactCreator.groovy
index a0c5938de2..183cbd0ee9 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/MessagePactCreator.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/MessagePactCreator.groovy
@@ -98,7 +98,7 @@ class MessagePactCreator {
private Map getMetadata(Headers headers) {
return headers.entries.collectEntries({ Header header ->
- return ["$header.name": extractValue(header)]
+ return [(header.name): extractValue(header)]
})
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/RequestResponseSCContractCreator.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/RequestResponseSCContractCreator.groovy
index f93574e05c..c443fcf38c 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/RequestResponseSCContractCreator.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/RequestResponseSCContractCreator.groovy
@@ -86,7 +86,7 @@ class RequestResponseSCContractCreator {
Category headerRules = request.matchingRules.
rulesForCategory('header')
headers {
- request.headers.each { k, v ->
+ request.headers.each { String k, List v ->
if (headerRules.matchingRules.containsKey(k)) {
MatchingRuleGroup ruleGroup = headerRules.matchingRules.
get(k)
@@ -95,15 +95,19 @@ class RequestResponseSCContractCreator {
}
MatchingRule rule = ruleGroup.rules[0]
if (rule instanceof RegexMatcher) {
- header(k, new DslProperty((Object) Pattern.
- compile(rule.getRegex()), (Object) v))
+ v.each({
+ header(k, new DslProperty((Object) Pattern.
+ compile(((RegexMatcher) rule).getRegex()), it))
+ })
}
else {
throw new UnsupportedOperationException("Currently only the header matcher of type regex is supported")
}
}
else {
- header(k, v)
+ v.each({
+ header(k, it)
+ })
}
}
}
@@ -191,7 +195,7 @@ class RequestResponseSCContractCreator {
if (FULL_BODY == key) {
JsonPaths jsonPaths = JsonToJsonPathsConverter.
- transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(response.body.value)
+ transformToJsonPathWithStubsSideValuesAndNoArraySizeCheck(response.body.value instanceof byte[] ? new String(response.body.value) : response.body.value)
jsonPaths.each {
jsonPath(it.keyBeforeChecking(), byType())
}
@@ -262,7 +266,7 @@ class RequestResponseSCContractCreator {
Category headerRules = response.matchingRules.
rulesForCategory('header')
headers {
- response.headers.forEach({ String k, String v ->
+ response.headers.forEach({ String k, List v ->
if (headerRules.matchingRules.containsKey(k)) {
MatchingRuleGroup ruleGroup = headerRules.matchingRules.
get(k)
@@ -271,15 +275,20 @@ class RequestResponseSCContractCreator {
}
MatchingRule rule = ruleGroup.rules[0]
if (rule instanceof RegexMatcher) {
- header(k, new DslProperty(new DslProperty(v), new NotToEscapePattern(Pattern.
- compile(rule.getRegex()))))
+ v.each({
+ header(k, new DslProperty(new DslProperty(it), new NotToEscapePattern(Pattern.
+ compile(((RegexMatcher) rule).getRegex()))))
+ })
+
}
else {
throw new UnsupportedOperationException("Currently only the header matcher of type regex is supported")
}
}
else {
- header(k, v)
+ v.each({
+ header(k, it)
+ })
}
})
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/ValueGeneratorConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/ValueGeneratorConverter.groovy
index 7913cfe989..d792fa0f45 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/ValueGeneratorConverter.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/main/groovy/org/springframework/cloud/contract/verifier/spec/pact/ValueGeneratorConverter.groovy
@@ -103,7 +103,7 @@ class ValueGeneratorConverter {
throw new UnsupportedOperationException("We currently don't support a generator of type " + generator.class.simpleName)
}
else {
- Object generatedValue = generator.generate(null)
+ Object generatedValue = generator.generate([:])
return dslPropertyProvider(pattern, generatedValue)
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilderSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilderSpec.groovy
index 83cd8da8d7..e567552c96 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilderSpec.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/stubrunner/PactStubDownloaderBuilderSpec.groovy
@@ -21,7 +21,7 @@ import java.nio.file.Files
import au.com.dius.pact.model.Pact
import au.com.dius.pact.model.PactSource
import au.com.dius.pact.provider.junit.loader.PactLoader
-import au.com.dius.pact.provider.junit.sysprops.ValueResolver
+import au.com.dius.pact.support.expressions.ValueResolver
import com.github.tomakehurst.wiremock.stubbing.StubMapping
import org.jetbrains.annotations.NotNull
import spock.lang.Ignore
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy
index 240911f6eb..290083dbba 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/groovy/org/springframework/cloud/contract/verifier/spec/pact/PactContractConverterSpec.groovy
@@ -338,11 +338,8 @@ class PactContractConverterSpec extends Specification {
}
],
"metadata": {
- "pact-specification": {
- "version": "3.0.0"
- },
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/grouped/shouldWorkWithBeer.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/grouped/shouldWorkWithBeer.json
index 38378a1b3b..66ccb60dda 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/grouped/shouldWorkWithBeer.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/grouped/shouldWorkWithBeer.json
@@ -146,11 +146,8 @@
}
],
"metadata": {
- "pact-specification": {
- "version": "3.0.0"
- },
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldConvertAllGenerators.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldConvertAllGenerators.json
index 204bd809cc..4ded0853aa 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldConvertAllGenerators.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldConvertAllGenerators.json
@@ -270,11 +270,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsFraud.json
index da4759683e..24709fde7c 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsFraud.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsFraud.json
@@ -94,11 +94,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsNotFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsNotFraud.json
index 58dda993f5..8b19aac3e6 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsNotFraud.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldMarkClientAsNotFraud.json
@@ -86,11 +86,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldReturnFraudStats.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldReturnFraudStats.json
index 38d9bd01dc..85880e28df 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldReturnFraudStats.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldReturnFraudStats.json
@@ -31,8 +31,7 @@
],
"combine": "AND"
}
- },
- "body": {}
+ }
}
}
},
@@ -61,18 +60,17 @@
],
"combine": "AND"
}
- },
- "body": {}
+ }
}
}
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
-}
+}
\ No newline at end of file
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenBookReturned.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenBookReturned.json
index 496e77d007..1d1bf3973a 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenBookReturned.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenBookReturned.json
@@ -35,11 +35,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenMessageReceived.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenMessageReceived.json
index decbaa946c..6eb20a150a 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenMessageReceived.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldSendMessageWhenMessageReceived.json
@@ -34,11 +34,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldVerifyWhenBookWasDeleted.json b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldVerifyWhenBookWasDeleted.json
index 6857d0d2fd..53e435ed23 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldVerifyWhenBookWasDeleted.json
+++ b/spring-cloud-contract-tools/spring-cloud-contract-pact/src/test/resources/contracts/shouldVerifyWhenBookWasDeleted.json
@@ -18,11 +18,11 @@
}
],
"metadata": {
- "pact-specification": {
+ "pactSpecification": {
"version": "3.0.0"
},
"pact-jvm": {
- "version": "3.5.13"
+ "version": "3.6.7"
}
}
}
diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java
index 053a14b138..e9f8221fd9 100644
--- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java
+++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ImportsBuilder.java
@@ -43,8 +43,7 @@ class ImportsBuilder {
}
ImportsBuilder json() {
- this.parentBuilder.imports(
- new JsonPathImports(builder, metaData));
+ this.parentBuilder.imports(new JsonPathImports(builder, metaData));
this.parentBuilder.staticImports(new DefaultJsonStaticImports(builder, metaData));
return this;
}
diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java
index 322fb9c40f..7ffc779f01 100644
--- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java
+++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/restdocs/ContractExchangeHandler.java
@@ -36,8 +36,8 @@ import com.github.tomakehurst.wiremock.http.HttpHeader;
import com.github.tomakehurst.wiremock.http.QueryParameter;
import com.github.tomakehurst.wiremock.http.Request;
import com.github.tomakehurst.wiremock.http.RequestMethod;
+import org.apache.commons.codec.binary.Base64;
import wiremock.com.google.common.base.Optional;
-import wiremock.org.apache.commons.codec.binary.Base64;
import wiremock.org.eclipse.jetty.server.handler.ContextHandler;
import org.springframework.http.HttpHeaders;
@@ -263,7 +263,7 @@ class WireMockHttpRequestAdapter implements Request {
.request(this.result.getMethod(), this.result.getUriTemplate())
.contentType(this.result.getRequestHeaders().getContentType())
.content(this.result.getRequestBodyContent())
- .buildRequest(new ContextHandler.StaticContext());
+ .buildRequest(new ContextHandler.NoContext());
try {
return new StandardMultipartHttpServletRequest(request).getParts().stream()
.map(part -> partFromServletPart(part)).collect(Collectors.toList());