From 85596e8f05fc6b9e1e53d9c46163f2e6f6b677cf Mon Sep 17 00:00:00 2001 From: buildmaster Date: Fri, 1 Apr 2022 00:26:07 +0000 Subject: [PATCH 1/3] Bumping versions --- docker/spring-cloud-contract-docker/project/gradle.properties | 2 +- guides/gs-contract-rest/complete/contract-rest-client/pom.xml | 2 +- guides/gs-contract-rest/complete/contract-rest-service/pom.xml | 2 +- guides/gs-contract-rest/initial/contract-rest-client/pom.xml | 2 +- guides/gs-contract-rest/initial/contract-rest-service/pom.xml | 2 +- .../resources/functionalTest/scenarioProject/gradle.properties | 2 +- .../functionalTest/scenarioProjectKotlin/gradle.properties | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docker/spring-cloud-contract-docker/project/gradle.properties b/docker/spring-cloud-contract-docker/project/gradle.properties index c70ba1dc9d..3a250f5610 100644 --- a/docker/spring-cloud-contract-docker/project/gradle.properties +++ b/docker/spring-cloud-contract-docker/project/gradle.properties @@ -1,4 +1,4 @@ org.gradle.daemon=false verifierVersion=3.1.2-SNAPSHOT -springBootVersion=2.6.3 +springBootVersion=2.6.6 camelVersion=3.11.0 \ No newline at end of file diff --git a/guides/gs-contract-rest/complete/contract-rest-client/pom.xml b/guides/gs-contract-rest/complete/contract-rest-client/pom.xml index 1f978bbc18..685e37e987 100644 --- a/guides/gs-contract-rest/complete/contract-rest-client/pom.xml +++ b/guides/gs-contract-rest/complete/contract-rest-client/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 2.6.6 diff --git a/guides/gs-contract-rest/complete/contract-rest-service/pom.xml b/guides/gs-contract-rest/complete/contract-rest-service/pom.xml index fd54e373be..945b2f1871 100644 --- a/guides/gs-contract-rest/complete/contract-rest-service/pom.xml +++ b/guides/gs-contract-rest/complete/contract-rest-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 2.6.6 diff --git a/guides/gs-contract-rest/initial/contract-rest-client/pom.xml b/guides/gs-contract-rest/initial/contract-rest-client/pom.xml index 3c86e23a36..340a709578 100644 --- a/guides/gs-contract-rest/initial/contract-rest-client/pom.xml +++ b/guides/gs-contract-rest/initial/contract-rest-client/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 2.6.6 diff --git a/guides/gs-contract-rest/initial/contract-rest-service/pom.xml b/guides/gs-contract-rest/initial/contract-rest-service/pom.xml index 6db725f3b2..060ea15ab9 100644 --- a/guides/gs-contract-rest/initial/contract-rest-service/pom.xml +++ b/guides/gs-contract-rest/initial/contract-rest-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.boot spring-boot-starter-parent - 2.6.3 + 2.6.6 diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties index 463411e0d6..b82cafeb6d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties @@ -16,5 +16,5 @@ wiremockVersion=2.30.1 jsonAssertVersion=0.6.1 verifierVersion=3.1.2-SNAPSHOT -bootVersion=2.6.3 +bootVersion=2.6.6 groovyVersion=2.4.17 diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties index 463411e0d6..b82cafeb6d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties @@ -16,5 +16,5 @@ wiremockVersion=2.30.1 jsonAssertVersion=0.6.1 verifierVersion=3.1.2-SNAPSHOT -bootVersion=2.6.3 +bootVersion=2.6.6 groovyVersion=2.4.17 From 9f96bb87d99ca9a61d9c5d1fecba40946dccc796 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 11 Apr 2022 14:13:37 +0200 Subject: [PATCH 2/3] Upgraded WireMock to 2.33.0; fixes gh-1771 --- spring-cloud-contract-dependencies/pom.xml | 2 +- .../wiremock/TestWireMockExtensions.groovy | 1 - .../wiremock/DefaultWireMockStubPostProcessor.java | 14 ++++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/spring-cloud-contract-dependencies/pom.xml b/spring-cloud-contract-dependencies/pom.xml index 697604b9e8..72736d94b5 100644 --- a/spring-cloud-contract-dependencies/pom.xml +++ b/spring-cloud-contract-dependencies/pom.xml @@ -15,7 +15,7 @@ spring-cloud-contract-dependencies Spring Cloud Contract Dependencies - 2.31.0 + 2.33.0 0.6.1 diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/provider/wiremock/TestWireMockExtensions.groovy b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/provider/wiremock/TestWireMockExtensions.groovy index bb69a4b1fc..346f457730 100644 --- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/provider/wiremock/TestWireMockExtensions.groovy +++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/provider/wiremock/TestWireMockExtensions.groovy @@ -24,7 +24,6 @@ import com.github.tomakehurst.wiremock.http.ChunkedDribbleDelay import com.github.tomakehurst.wiremock.http.HttpHeader import com.github.tomakehurst.wiremock.http.Request import com.github.tomakehurst.wiremock.http.Response -import wiremock.org.apache.http.HttpHeaders import org.springframework.cloud.contract.verifier.dsl.wiremock.DefaultResponseTransformer import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockExtensions diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java index 6126e7fcf0..c7a646d4c9 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/DefaultWireMockStubPostProcessor.java @@ -66,7 +66,7 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { } public ResponseDefinition mergedResponse(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { - ResponseDefinition responseDefinition = new ResponseDefinition(stubMapping.getResponse().getStatus(), + return new ResponseDefinition(stubMapping.getResponse().getStatus(), stubMapping.getResponse().getStatusMessage(), stubMapping.getResponse().getBody(), stubMapping.getResponse().getJsonBody(), stubMapping.getResponse().getBase64Body(), stubMapping.getResponse().getBodyFileName(), stubMapping.getResponse().getHeaders(), @@ -74,11 +74,11 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { fixedDelayMilliseconds(stubMapping, stubMappingFromMetadata), delayDistribution(stubMapping, stubMappingFromMetadata), chunkedDribbleDelay(stubMapping, stubMappingFromMetadata), - proxyBaseUrl(stubMapping, stubMappingFromMetadata), fault(stubMapping, stubMappingFromMetadata), - transformers(stubMapping, stubMappingFromMetadata), + proxyBaseUrl(stubMapping, stubMappingFromMetadata), + proxyUrlPrefixToRemove(stubMapping, stubMappingFromMetadata), + fault(stubMapping, stubMappingFromMetadata), transformers(stubMapping, stubMappingFromMetadata), transformerParameters(stubMapping, stubMappingFromMetadata), wasConfigured(stubMapping, stubMappingFromMetadata)); - return responseDefinition; } public Boolean wasConfigured(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { @@ -108,6 +108,12 @@ class DefaultWireMockStubPostProcessor implements WireMockStubPostProcessor { ? stubMappingFromMetadata.getResponse().getProxyBaseUrl() : stubMapping.getResponse().getProxyBaseUrl(); } + public String proxyUrlPrefixToRemove(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { + return stubMappingFromMetadata.getResponse().getProxyUrlPrefixToRemove() != null + ? stubMappingFromMetadata.getResponse().getProxyUrlPrefixToRemove() + : stubMapping.getResponse().getProxyUrlPrefixToRemove(); + } + public ChunkedDribbleDelay chunkedDribbleDelay(StubMapping stubMapping, StubMapping stubMappingFromMetadata) { return stubMappingFromMetadata.getResponse().getChunkedDribbleDelay() != null ? stubMappingFromMetadata.getResponse().getChunkedDribbleDelay() From 2142931114c30dd8eb4e4adf215c45cf79fb3940 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 11 Apr 2022 14:13:45 +0200 Subject: [PATCH 3/3] Made tests less brittle --- .../messaging/kafka/KafkaStubRunnerSpec.groovy | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/spring-cloud-contract-stub-runner-kafka/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/kafka/KafkaStubRunnerSpec.groovy b/tests/spring-cloud-contract-stub-runner-kafka/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/kafka/KafkaStubRunnerSpec.groovy index 0915919b32..5f11a176fb 100644 --- a/tests/spring-cloud-contract-stub-runner-kafka/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/kafka/KafkaStubRunnerSpec.groovy +++ b/tests/spring-cloud-contract-stub-runner-kafka/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/kafka/KafkaStubRunnerSpec.groovy @@ -22,6 +22,8 @@ import java.util.concurrent.TimeUnit import groovy.json.JsonOutput import groovy.json.JsonSlurper import groovy.util.logging.Commons +import org.apache.kafka.clients.consumer.MockConsumer +import org.apache.kafka.clients.consumer.OffsetResetStrategy import spock.lang.IgnoreIf import spock.lang.Specification import spock.util.concurrent.PollingConditions @@ -38,6 +40,7 @@ import org.springframework.kafka.annotation.EnableKafka import org.springframework.kafka.annotation.KafkaListener import org.springframework.kafka.core.KafkaTemplate import org.springframework.kafka.support.DefaultKafkaHeaderMapper +import org.springframework.kafka.test.EmbeddedKafkaBroker import org.springframework.kafka.test.context.EmbeddedKafka import org.springframework.messaging.Message import org.springframework.messaging.MessageHeaders @@ -190,8 +193,8 @@ class KafkaStubRunnerSpec extends Specification { // end::trigger_all[] Message receivedMessage = receiveFromOutput() assert receivedMessage != null - assert assertThatBodyContainsBookNameFoo(receivedMessage.getPayload()) - assert receivedMessage.getHeaders().get('BOOK-NAME') == 'foo' + assert assertThatBodyContainsBookName(receivedMessage.getPayload()) + assert receivedMessage.getHeaders().get('BOOK-NAME') != null } } @@ -229,6 +232,14 @@ class KafkaStubRunnerSpec extends Specification { return json.bookName == expectedValue } + private boolean assertThatBodyContainsBookName(Object payload) { + log.info("Got payload [" + payload + "]") + String objectAsString = payload instanceof String ? payload : + JsonOutput.toJson(payload) + def json = new JsonSlurper().parseText(objectAsString) + return json.bookName != null + } + @Configuration @ComponentScan @EnableAutoConfiguration @@ -267,4 +278,4 @@ class KafkaStubRunnerSpec extends Specification { return this.output } } -} \ No newline at end of file +}