From d739efc50b8d14507b39d830357b3074e66be798 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Fri, 28 Jun 2019 17:17:32 +0200 Subject: [PATCH] Bumped pact to 3.6.7; fixes gh-1099 --- pom.xml | 2 +- spring-cloud-contract-shade/pom.xml | 14 +++++----- .../spring-cloud-contract-pact/pom.xml | 2 -- .../stubrunner/PactStubDownloaderBuilder.java | 14 ++++++++-- .../verifier/spec/pact/BodyConverter.groovy | 2 +- .../spec/pact/MessagePactCreator.groovy | 2 +- .../RequestResponseSCContractCreator.groovy | 27 ++++++++++++------- .../spec/pact/ValueGeneratorConverter.groovy | 2 +- .../PactStubDownloaderBuilderSpec.groovy | 2 +- .../pact/PactContractConverterSpec.groovy | 5 +--- .../contracts/grouped/shouldWorkWithBeer.json | 5 +--- .../contracts/shouldConvertAllGenerators.json | 4 +-- .../contracts/shouldMarkClientAsFraud.json | 4 +-- .../contracts/shouldMarkClientAsNotFraud.json | 4 +-- .../contracts/shouldReturnFraudStats.json | 12 ++++----- .../shouldSendMessageWhenBookReturned.json | 4 +-- .../shouldSendMessageWhenMessageReceived.json | 4 +-- .../shouldVerifyWhenBookWasDeleted.json | 4 +-- .../verifier/builder/ImportsBuilder.java | 3 +-- .../restdocs/ContractExchangeHandler.java | 4 +-- 20 files changed, 65 insertions(+), 55 deletions(-) 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());