From 22b0869ddb2a8c78d5d6cb71855172c20d2f4255 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 28 Nov 2017 19:01:19 +0100 Subject: [PATCH 1/4] Updated whitelisted branches --- docs/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pom.xml b/docs/pom.xml index 1139dc4e22..6bc3b5d89e 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -16,7 +16,7 @@ spring-cloud-contract ${basedir}/.. 3.4 - 1.0.x,1.1.x + 1.0.x,1.1.x,1.2.x From 7477207a724674e042c2bfa7a25d741fa73db945 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sun, 3 Dec 2017 15:28:35 -0500 Subject: [PATCH 2/4] Updated versions --- pom.xml | 12 ++++++------ spring-cloud-contract-dependencies/pom.xml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/pom.xml b/pom.xml index 215bfc9d00..becff5a997 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ org.springframework.cloud spring-cloud-build - 1.3.6.BUILD-SNAPSHOT + 1.3.7.BUILD-SNAPSHOT @@ -26,12 +26,12 @@ 5.12.1 2.18.3 2.17 - 1.3.6.BUILD-SNAPSHOT - 1.2.0.BUILD-SNAPSHOT + 1.3.7.BUILD-SNAPSHOT + 1.2.1.BUILD-SNAPSHOT Ditmars.BUILD-SNAPSHOT - 1.4.0.BUILD-SNAPSHOT - 1.2.2.BUILD-SNAPSHOT - 1.3.0.BUILD-SNAPSHOT + 1.4.1.BUILD-SNAPSHOT + 1.3.1.BUILD-SNAPSHOT + 1.3.1.BUILD-SNAPSHOT diff --git a/spring-cloud-contract-dependencies/pom.xml b/spring-cloud-contract-dependencies/pom.xml index 6578e1c9a0..da2163d7a0 100644 --- a/spring-cloud-contract-dependencies/pom.xml +++ b/spring-cloud-contract-dependencies/pom.xml @@ -5,7 +5,7 @@ spring-cloud-dependencies-parent org.springframework.cloud - 1.3.6.BUILD-SNAPSHOT + 1.3.7.BUILD-SNAPSHOT spring-cloud-contract-dependencies From 1ea834bc19b35abcadea9f71fadc7fecf24ffac6 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sun, 3 Dec 2017 15:45:42 -0500 Subject: [PATCH 3/4] bumping Boot o 1.5.9 --- samples/standalone/dsl/http-client/build.gradle | 2 +- samples/standalone/dsl/http-server/build.gradle | 2 +- samples/standalone/messaging/stream-sink/build.gradle | 2 +- samples/standalone/messaging/stream-source/build.gradle | 2 +- samples/standalone/pact/pact-http-client/build.gradle | 2 +- samples/standalone/pact/pact-http-server/build.gradle | 2 +- samples/standalone/restdocs/http-client/build.gradle | 2 +- samples/standalone/restdocs/http-server/build.gradle | 2 +- .../spring-cloud-contract-gradle-plugin/build.gradle | 2 +- .../resources/functionalTest/sampleJerseyProject/build.gradle | 2 +- .../test/resources/functionalTest/sampleProject/build.gradle | 2 +- .../test/resources/functionalTest/scenarioProject/build.gradle | 2 +- .../src/test/projects/plugin-extension/pom.xml | 2 +- .../src/test/projects/spring-boot-groovy/pom.xml | 2 +- .../src/test/projects/spring-boot-java/pom.xml | 2 +- 15 files changed, 15 insertions(+), 15 deletions(-) diff --git a/samples/standalone/dsl/http-client/build.gradle b/samples/standalone/dsl/http-client/build.gradle index 8c205cbed3..752be56a53 100644 --- a/samples/standalone/dsl/http-client/build.gradle +++ b/samples/standalone/dsl/http-client/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" } } diff --git a/samples/standalone/dsl/http-server/build.gradle b/samples/standalone/dsl/http-server/build.gradle index 708e19075e..95237b337a 100644 --- a/samples/standalone/dsl/http-server/build.gradle +++ b/samples/standalone/dsl/http-server/build.gradle @@ -9,7 +9,7 @@ buildscript { } // end::repos[] dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${findProperty('verifierVersion') ?: verifierVersion}" } } diff --git a/samples/standalone/messaging/stream-sink/build.gradle b/samples/standalone/messaging/stream-sink/build.gradle index 804e0a1224..aa3a71be22 100644 --- a/samples/standalone/messaging/stream-sink/build.gradle +++ b/samples/standalone/messaging/stream-sink/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" } } diff --git a/samples/standalone/messaging/stream-source/build.gradle b/samples/standalone/messaging/stream-source/build.gradle index f37f6bd09c..d44e965526 100644 --- a/samples/standalone/messaging/stream-source/build.gradle +++ b/samples/standalone/messaging/stream-source/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${findProperty('verifierVersion') ?: verifierVersion}" classpath "com.jayway.restassured:rest-assured:2.9.0" classpath "com.jayway.restassured:spring-mock-mvc:2.9.0" diff --git a/samples/standalone/pact/pact-http-client/build.gradle b/samples/standalone/pact/pact-http-client/build.gradle index f477e647d2..0d73f96f4d 100644 --- a/samples/standalone/pact/pact-http-client/build.gradle +++ b/samples/standalone/pact/pact-http-client/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" } } diff --git a/samples/standalone/pact/pact-http-server/build.gradle b/samples/standalone/pact/pact-http-server/build.gradle index 6833482dc8..1edf17f642 100644 --- a/samples/standalone/pact/pact-http-server/build.gradle +++ b/samples/standalone/pact/pact-http-server/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${findProperty('verifierVersion') ?: verifierVersion}" //tag::pact_dependency[] classpath "org.springframework.cloud:spring-cloud-contract-spec-pact:${findProperty('verifierVersion') ?: verifierVersion}" diff --git a/samples/standalone/restdocs/http-client/build.gradle b/samples/standalone/restdocs/http-client/build.gradle index 612371779f..3457d39d16 100644 --- a/samples/standalone/restdocs/http-client/build.gradle +++ b/samples/standalone/restdocs/http-client/build.gradle @@ -7,7 +7,7 @@ buildscript { maven { url "http://repo.spring.io/release" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" } } diff --git a/samples/standalone/restdocs/http-server/build.gradle b/samples/standalone/restdocs/http-server/build.gradle index f4c0302c39..7a23f84dfb 100644 --- a/samples/standalone/restdocs/http-server/build.gradle +++ b/samples/standalone/restdocs/http-server/build.gradle @@ -10,7 +10,7 @@ buildscript { maven { url "http://repo.spring.io/plugins-staging-local/" } } dependencies { - classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE" + classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE" } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle index 5674941167..2d383f25d3 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/build.gradle @@ -23,7 +23,7 @@ ext { ] } -project.version = findProperty('verifierVersion') ?: '1.5.4.RELEASE' +project.version = findProperty('verifierVersion') ?: '1.5.9.RELEASE' apply plugin: 'groovy' apply from: "$rootDir/gradle/release.gradle" apply plugin: 'eclipse' diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle index 41e05260c2..5a0f9725c7 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleJerseyProject/build.gradle @@ -20,7 +20,7 @@ buildscript { mavenCentral() } dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE") + classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE") } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle index c690f91b42..80388a96d9 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/sampleProject/build.gradle @@ -20,7 +20,7 @@ buildscript { mavenLocal() } dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE") + classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE") } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle index 12068579b3..25b5133ae9 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle @@ -20,7 +20,7 @@ buildscript { mavenLocal() } dependencies { - classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.4.RELEASE") + classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.9.RELEASE") } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml index 3c718f96f0..d83b95cf92 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.4.RELEASE + 1.5.9.RELEASE diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml index 77aacd7970..fe239312b9 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.4.RELEASE + 1.5.9.RELEASE diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml index 3c718f96f0..d83b95cf92 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml +++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml @@ -28,7 +28,7 @@ org.springframework.boot spring-boot-starter-parent - 1.5.4.RELEASE + 1.5.9.RELEASE From bff685eb46062609b50fa333efe9bf7e0739e8e0 Mon Sep 17 00:00:00 2001 From: chengpohi Date: Sat, 9 Dec 2017 02:21:21 +0800 Subject: [PATCH 4/4] when contract is ignored, should not generate empty json, since it's invalid format for json --- .../converter/RecursiveFilesConverter.groovy | 10 ++++--- .../RecursiveFilesConverterSpec.groovy | 28 +++++++++++++++++++ 2 files changed, 34 insertions(+), 4 deletions(-) diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.groovy index 772a936ecd..efbb938dbd 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverter.groovy @@ -95,10 +95,12 @@ class RecursiveFilesConverter { convertedContent.entrySet().eachWithIndex { Map.Entry content, int index -> Contract dsl = content.key String converted = content.value - Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile) - File newJsonFile = createTargetFileWithProperName(stubGenerator, absoluteTargetPath, - sourceFile, contractsSize, index, dsl) - newJsonFile.setText(converted, StandardCharsets.UTF_8.toString()) + if (converted) { + Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile) + File newJsonFile = createTargetFileWithProperName(stubGenerator, absoluteTargetPath, + sourceFile, contractsSize, index, dsl) + newJsonFile.setText(converted, StandardCharsets.UTF_8.toString()) + } } } } catch (Exception e) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverterSpec.groovy index d3628d8542..baca9e39ff 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverterSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/converter/RecursiveFilesConverterSpec.groovy @@ -130,6 +130,34 @@ class RecursiveFilesConverterSpec extends Specification { tmpFolder.root.list().toList().containsAll("foo", "bar") } + def "should not create stub file when generated stub is empty"() { + given: + def sourceFile = tmpFolder.newFile("test.groovy") + sourceFile.text = """ + org.springframework.cloud.contract.spec.Contract.make { + request { + url "/baz" + method "GET" + } + response { + status 200 + } + } + """ + and: + StubGenerator stubGenerator = stubGenerator("") + and: + ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties() + properties.contractsDslDir = tmpFolder.root + properties.stubsOutputDir = tmpFolder.newFolder("target") + and: + RecursiveFilesConverter recursiveFilesConverter = new RecursiveFilesConverter(properties, new StubGeneratorProvider([stubGenerator])) + when: + recursiveFilesConverter.processFiles() + then: + properties.stubsOutputDir.list().toList().isEmpty() + } + private static Set getRelativePathsForFilesInDirectory(Collection createdFiles, File targetRootDirectory) { Path rootSourcePath = Paths.get(targetRootDirectory.toURI()) Set relativizedCreatedFiles = createdFiles.collect { File file ->