From 9fcf5a36126172278b4ed7b90ca37378413157b7 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Wed, 13 May 2020 14:47:33 +0200 Subject: [PATCH 1/6] 2.2.x gradle 6.4 (#1405) * Upgrade gradle wrapper to 6.4. Fixes gh-1387. * Document PublishStubsToScmTask API changes. * Upgrade groovy to 2.5.10. --- .../project/build.gradle | 2 +- docs/src/main/asciidoc/_configprops.adoc | 2 +- .../asciidoc/_project-features-wiremock.adoc | 2 +- docs/src/main/asciidoc/howto.adoc | 30 +++ .../contract-rest-client/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 56177 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../complete/contract-rest-client/gradlew | 2 +- .../complete/contract-rest-client/gradlew.bat | 2 +- .../contract-rest-service/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 54731 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../complete/contract-rest-service/gradlew | 53 +++-- .../contract-rest-service/gradlew.bat | 22 ++- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 56177 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- guides/gs-contract-rest/complete/gradlew | 2 +- guides/gs-contract-rest/complete/gradlew.bat | 2 +- .../initial/contract-rest-client/build.gradle | 11 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../initial/contract-rest-client/gradlew | 53 +++-- .../initial/contract-rest-client/gradlew.bat | 22 ++- .../contract-rest-service/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../initial/contract-rest-service/gradlew | 53 +++-- .../initial/contract-rest-service/gradlew.bat | 22 ++- .../initial/gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 58910 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- guides/gs-contract-rest/initial/gradlew | 53 +++-- guides/gs-contract-rest/initial/gradlew.bat | 22 ++- pom.xml | 7 +- .../standalone/dsl/http-client/build.gradle | 12 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../standalone/dsl/http-server/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../restdocs/http-client/build.gradle | 14 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../restdocs/http-server/build.gradle | 14 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../webclient/http-client/build.gradle | 12 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../webclient/http-server/build.gradle | 10 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../build.gradle | 12 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../plugin/ContractVerifierExtension.java | 81 ++++++-- .../verifier/plugin/ContractsCopyTask.groovy | 11 +- .../plugin/GenerateServerTestsTask.groovy | 161 ++++++++++++---- .../plugin/PublishStubsToScmTask.groovy | 181 ++++++------------ ...GradleContractsDownloaderHelperSpec.groovy | 6 +- .../functionalTest/bootSimple/build.gradle | 22 +-- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 55616 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../functionalTest/bootSimple/gradlew | 18 +- .../functionalTest/bootSimple/gradlew.bat | 18 +- .../scenarioProject/build.gradle | 32 ++-- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 55616 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../functionalTest/scenarioProject/gradlew | 18 +- .../scenarioProject/gradlew.bat | 18 +- .../shouldMarkClientAsFraud.json | 23 --- .../shouldMarkClientAsNotFraud.json | 23 --- .../gradle/wrapper/gradle-wrapper.jar | Bin 55190 -> 55616 bytes .../gradle/wrapper/gradle-wrapper.properties | 2 +- .../scenarioProjectKotlin/gradlew | 18 +- .../scenarioProjectKotlin/gradlew.bat | 18 +- .../shouldMarkClientAsFraud.json | 23 --- .../shouldMarkClientAsNotFraud.json | 23 --- src/checkstyle/checkstyle-suppressions.xml | 1 + 71 files changed, 733 insertions(+), 470 deletions(-) delete mode 100644 spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json delete mode 100644 spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json mode change 100644 => 100755 spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew delete mode 100644 spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json delete mode 100644 spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json diff --git a/docker/spring-cloud-contract-docker/project/build.gradle b/docker/spring-cloud-contract-docker/project/build.gradle index 833f2e7f23..fd857a5639 100644 --- a/docker/spring-cloud-contract-docker/project/build.gradle +++ b/docker/spring-cloud-contract-docker/project/build.gradle @@ -40,7 +40,7 @@ dependencyManagement { } dependencies { - testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier") + testImplementation("org.springframework.cloud:spring-cloud-starter-contract-verifier") } test { diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc index 7aee3f722c..c009174343 100644 --- a/docs/src/main/asciidoc/_configprops.adoc +++ b/docs/src/main/asciidoc/_configprops.adoc @@ -8,7 +8,7 @@ |stubrunner.cloud.delegate.enabled | true | Whether to enable DiscoveryClient's Stub Runner implementation. |stubrunner.cloud.enabled | true | Whether to enable Spring Cloud support for Stub Runner. |stubrunner.cloud.eureka.enabled | true | Whether to enable stubs registration in Eureka. -|stubrunner.cloud.ribbon.enabled | true | Whether to enable Stub Runner's Ribbon integration. +|stubrunner.cloud.loadbalancer.enabled | true | Whether to enable Stub Runner's Spring Cloud Load Balancer integration. |stubrunner.cloud.stubbed.discovery.enabled | true | Whether Service Discovery should be stubbed for Stub Runner. If set to false, stubs will get registered in real service discovery. |stubrunner.cloud.zookeeper.enabled | true | Whether to enable stubs registration in Zookeeper. |stubrunner.consumer-name | | You can override the default {@code spring.application.name} of this field by setting a value to this parameter. diff --git a/docs/src/main/asciidoc/_project-features-wiremock.adoc b/docs/src/main/asciidoc/_project-features-wiremock.adoc index 7a1912a174..2a20669bef 100644 --- a/docs/src/main/asciidoc/_project-features-wiremock.adoc +++ b/docs/src/main/asciidoc/_project-features-wiremock.adoc @@ -36,7 +36,7 @@ The registered WireMock server is reset after each test class, however, if you n If you use `@AutoConfigureWireMock`, it registers WireMock JSON stubs from the file system or classpath (by default, from `file:src/test/resources/mappings`). You can -customize the locations byusing the `stubs` attribute in the annotation, which can be an +customize the locations by using the `stubs` attribute in the annotation, which can be an Ant-style resource pattern or a directory. In the case of a directory, `**/*.json` is appended. The following code shows an example: diff --git a/docs/src/main/asciidoc/howto.adoc b/docs/src/main/asciidoc/howto.adoc index 4f1997e616..befbca9f71 100644 --- a/docs/src/main/asciidoc/howto.adoc +++ b/docs/src/main/asciidoc/howto.adoc @@ -718,6 +718,36 @@ the `publish` task is executed */ publish.dependsOn("publishStubsToScm") ---- + +It is also possible to further customise the `publishStubsToScm` gradle task. In the following example, +the task is customised to pick contracts from a local git repository: + +[source,groovy,indent=0,role="secondary"] +.gradle +---- +publishStubsToScm { + // We want to modify the default set up of the plugin when publish stubs to scm is called + // We want to pick contracts from a Git repository + contractDependency { + stringNotation = "${project.group}:${project.name}:${project.version}" + } + /* + We reuse the contract dependency section to set up the path + to the folder that contains the contract definitions. In our case the + path will be /groupId/artifactId/version/contracts + */ + contractRepository { + repositoryUrl = "git://file://${new File(project.rootDir, "../target")}/contract_empty_git/" + } + // We set the contracts mode to `LOCAL` + contractsMode = "LOCAL" + } +---- + +IMPORTANT:: Starting with `2.3.0.RELEASE` the `customize{}` closure previously used for the +`publishStubsToScm` customization is no longer available. The settings should be applied directly +within the `publishStubsToScm` closure as in the example above. + ==== With such a setup: diff --git a/guides/gs-contract-rest/complete/contract-rest-client/build.gradle b/guides/gs-contract-rest/complete/contract-rest-client/build.gradle index a974f49e7e..30acb24f9b 100644 --- a/guides/gs-contract-rest/complete/contract-rest-client/build.gradle +++ b/guides/gs-contract-rest/complete/contract-rest-client/build.gradle @@ -23,9 +23,9 @@ targetCompatibility = 1.8 repositories { mavenCentral() } dependencies { - compile('org.springframework.boot:spring-boot-starter-web') - testCompile('org.springframework.boot:spring-boot-starter-test') - testCompile('org.springframework.cloud:spring-cloud-starter-contract-stub-runner') + implementation('org.springframework.boot:spring-boot-starter-web') + testImplementation('org.springframework.boot:spring-boot-starter-test') + testImplementation('org.springframework.cloud:spring-cloud-starter-contract-stub-runner') } dependencyManagement { @@ -41,3 +41,7 @@ eclipse { } } +task wrapper(type: Wrapper){ + gradleVersion = '6.4' +} + diff --git a/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..94336fcae912db8a11d55634156fa011f4686124 100644 GIT binary patch delta 47854 zcmY(KQ*DWo<_WjQ}7Y{XRz3dwMVU4-Q zn%}IHTCm#|FbG8%FmSZ^JoI=RR8%w&kni6?KtO~*5c$i!g#T3<@q%*b#-shs8K>Ad zr`Y#Sw@%+c{`&~&xBr}5L;ue^5&RoI=KuWw38x$_I|K*_BMb-#ePSFbMxy*Te87D{ z9O*B{gu1cl_hD#GL1RfGHwO0Nq?DkNU&Lg);5Z^>(8W|w>&T-Ht)1=jBnuC$yK|!S;vP}>MV^c_r5GVcLs=nH^?rC-*=KA7NJXV?cuDb zS0XP*_AqA;t}qDGK_~w2gbd*IVL+s@XEB%-ar>e_Id-a96hu9C?RXo?piLW%$X3{o z6thF_ILtq7nlQ%HZieLF;a5y`uYWPL6cf4i#ThY!$5@7#D=@tn--Z8>zpi^Ws~JMrK>!OEzJ*l%TcY-YNr$DuvZ&5SeAQcQ`&2vpVPD^i~w>A3>y#3 zrPkuZ>hzg9iEw`#R+-_3Qs!3{ajlg#qK%nNbTX8(T*x!hvzA@>&khT<#UkpOqnSiz z;kisws8VZ&2jH@6o|>$cp12n3Ug>#?E03JkRqwNcke`G4t`38PU9zR|7?hS{!i;3} zY$eEqVL$O&H70pQ46^-)U;*x#H7N~=l&#8xMtrDfSdx&zk=RUwu;t7hXv^|m9!t5~+VRoN)j*{uEY6gE+W6zvCY z4#_@qY<5c#W_iWMD6M)YpLH%QD~Zvgm&QqmFBty5yi})XlHatyTj=KBRr@Snbo(%05sx7WMs$AydwDW?C

ohmj(wKVBMg2V`Or6Dh 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 delta 46897 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 diff --git a/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties index 290541c738..4c5803d13c 100644 --- a/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/guides/gs-contract-rest/complete/contract-rest-client/gradlew b/guides/gs-contract-rest/complete/contract-rest-client/gradlew index af6708ff22..cccdd3d517 100755 --- a/guides/gs-contract-rest/complete/contract-rest-client/gradlew +++ b/guides/gs-contract-rest/complete/contract-rest-client/gradlew @@ -28,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/guides/gs-contract-rest/complete/contract-rest-client/gradlew.bat b/guides/gs-contract-rest/complete/contract-rest-client/gradlew.bat index 6d57edc706..f9553162f1 100644 --- a/guides/gs-contract-rest/complete/contract-rest-client/gradlew.bat +++ b/guides/gs-contract-rest/complete/contract-rest-client/gradlew.bat @@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS= @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/guides/gs-contract-rest/complete/contract-rest-service/build.gradle b/guides/gs-contract-rest/complete/contract-rest-service/build.gradle index 0874d6bed2..53bddbfc07 100644 --- a/guides/gs-contract-rest/complete/contract-rest-service/build.gradle +++ b/guides/gs-contract-rest/complete/contract-rest-service/build.gradle @@ -31,9 +31,9 @@ targetCompatibility = 1.8 repositories { mavenCentral() } dependencies { - compile('org.springframework.boot:spring-boot-starter-web') - testCompile('org.springframework.boot:spring-boot-starter-test') - testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier') + implementation('org.springframework.boot:spring-boot-starter-web') + testImplementation('org.springframework.boot:spring-boot-starter-test') + testImplementation('org.springframework.cloud:spring-cloud-starter-contract-verifier') } dependencyManagement { @@ -48,3 +48,7 @@ contracts { baseClassMapping(".*hello.*", "hello.BaseClass") } } + +task wrapper(type: Wrapper){ + gradleVersion = '6.4' +} \ No newline at end of file diff --git a/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar index 6b6ea3ab4ff4f69d55c5fd9c0a6ac70f47d41008..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch literal 58910 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 literal 54731 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�A``0fKpc0WAU$bg;D1GyIQa;7hdW#MKpuc+fPkN63DB8-QCon}w55{+ zK*~kT%+g5EzyQD?t7onEf4S{n5`Y%HU(o_IxB{TT|7ske_`f6&x7P#Y(^Lk?K1$eF z8Ohk#SUB1Kx@itd&0`AyGX5-pngUK={i!e#{R8yBlYsrOyWkeC%j+RF5iuzNd@qNfB>rpz#I8f@s{`{nv9Lfe|_68v(EoSLz4a_*l*>a ze`!-MGn)To!IAynEWd7smziIGVoE6e67%Kc<1cw&U)K0#-o>Bj6zac3|F@C;A`9b7 z=$C2lenNw4{S)+GliV}2G}0N|fG z)sG;wmk+am&9E z{i*){Mdkk`{7ZrQpYTT3{{;VHviuVEr7rtV*j}4|g8j3f;U(rv3E-cYWBU$VtD_%M1M5Tztu!v61)^^{7FFK`5OfPAl>+q z>7}IGPbO2}-(dPJfwz~OFNL~(a)Jl^2IoJ?cDeQ`pGlj`8S@I)6PGc(f|02zx2HPq$%$HzbV~+ v^TYh7&j0bc{Ml*p!|U?1+ylV=n-AuVG#FqV^dowa3FsZ*6oN|6kH7vOrqDWo<_WjQ}7Y{XRz3dwMVU4-Q zn%}IHTCm#|FbG8%FmSZ^JoI=RR8%w&kni6?KtO~*5c$i!g#T3<@q%*b#-shs8K>Ad zr`Y#Sw@%+c{`&~&xBr}5L;ue^5&RoI=KuWw38x$_I|K*_BMb-#ePSFbMxy*Te87D{ z9O*B{gu1cl_hD#GL1RfGHwO0Nq?DkNU&Lg);5Z^>(8W|w>&T-Ht)1=jBnuC$yK|!S;vP}>MV^c_r5GVcLs=nH^?rC-*=KA7NJXV?cuDb zS0XP*_AqA;t}qDGK_~w2gbd*IVL+s@XEB%-ar>e_Id-a96hu9C?RXo?piLW%$X3{o z6thF_ILtq7nlQ%HZieLF;a5y`uYWPL6cf4i#ThY!$5@7#D=@tn--Z8>zpi^Ws~JMrK>!OEzJ*l%TcY-YNr$DuvZ&5SeAQcQ`&2vpVPD^i~w>A3>y#3 zrPkuZ>hzg9iEw`#R+-_3Qs!3{ajlg#qK%nNbTX8(T*x!hvzA@>&khT<#UkpOqnSiz z;kisws8VZ&2jH@6o|>$cp12n3Ug>#?E03JkRqwNcke`G4t`38PU9zR|7?hS{!i;3} zY$eEqVL$O&H70pQ46^-)U;*x#H7N~=l&#8xMtrDfSdx&zk=RUwu;t7hXv^|m9!t5~+VRoN)j*{uEY6gE+W6zvCY z4#_@qY<5c#W_iWMD6M)YpLH%QD~Zvgm&QqmFBty5yi})XlHatyTj=KBRr@Snbo(%05sx7WMs$AydwDW?C

ohmj(wKVBMg2V`Or6Dh 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 delta 46897 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 diff --git a/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties index 290541c738..4c5803d13c 100644 --- a/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/guides/gs-contract-rest/complete/gradlew b/guides/gs-contract-rest/complete/gradlew index af6708ff22..cccdd3d517 100755 --- a/guides/gs-contract-rest/complete/gradlew +++ b/guides/gs-contract-rest/complete/gradlew @@ -28,7 +28,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/guides/gs-contract-rest/complete/gradlew.bat b/guides/gs-contract-rest/complete/gradlew.bat index 6d57edc706..f9553162f1 100644 --- a/guides/gs-contract-rest/complete/gradlew.bat +++ b/guides/gs-contract-rest/complete/gradlew.bat @@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS= @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/guides/gs-contract-rest/initial/contract-rest-client/build.gradle b/guides/gs-contract-rest/initial/contract-rest-client/build.gradle index 9892419e7e..aa37452d1c 100644 --- a/guides/gs-contract-rest/initial/contract-rest-client/build.gradle +++ b/guides/gs-contract-rest/initial/contract-rest-client/build.gradle @@ -22,9 +22,9 @@ targetCompatibility = 1.8 repositories { mavenCentral() } dependencies { - compile('org.springframework.boot:spring-boot-starter-web') - testCompile('org.springframework.boot:spring-boot-starter-test') - testCompile('org.springframework.cloud:spring-cloud-starter-contract-stub-runner') + implementation('org.springframework.boot:spring-boot-starter-web') + testImplementation('org.springframework.boot:spring-boot-starter-test') + testImplementation('org.springframework.cloud:spring-cloud-starter-contract-stub-runner') } dependencyManagement { @@ -40,3 +40,8 @@ eclipse { } } +task wrapper(type: Wrapper){ + gradleVersion = '6.4' +} + + diff --git a/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 25879 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 Nq$R_^uaqX; diff --git a/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties index 290541c738..4c5803d13c 100644 --- a/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/guides/gs-contract-rest/initial/contract-rest-client/gradlew b/guides/gs-contract-rest/initial/contract-rest-client/gradlew index af6708ff22..fbd7c51583 100755 --- a/guides/gs-contract-rest/initial/contract-rest-client/gradlew +++ b/guides/gs-contract-rest/initial/contract-rest-client/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/guides/gs-contract-rest/initial/contract-rest-client/gradlew.bat b/guides/gs-contract-rest/initial/contract-rest-client/gradlew.bat index 6d57edc706..5093609d51 100644 --- a/guides/gs-contract-rest/initial/contract-rest-client/gradlew.bat +++ b/guides/gs-contract-rest/initial/contract-rest-client/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -65,6 +84,7 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% diff --git a/guides/gs-contract-rest/initial/contract-rest-service/build.gradle b/guides/gs-contract-rest/initial/contract-rest-service/build.gradle index 3e99e38fbb..b522b11e4f 100644 --- a/guides/gs-contract-rest/initial/contract-rest-service/build.gradle +++ b/guides/gs-contract-rest/initial/contract-rest-service/build.gradle @@ -29,9 +29,9 @@ targetCompatibility = 1.8 repositories { mavenCentral() } dependencies { - compile('org.springframework.boot:spring-boot-starter-web') - testCompile('org.springframework.boot:spring-boot-starter-test') - testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier') + implementation('org.springframework.boot:spring-boot-starter-web') + testImplementation('org.springframework.boot:spring-boot-starter-test') + testImplementation('org.springframework.cloud:spring-cloud-starter-contract-verifier') } dependencyManagement { @@ -46,3 +46,7 @@ contracts { baseClassMapping(".*hello.*", "hello.BaseClass") } } + +task wrapper(type: Wrapper){ + gradleVersion = '6.4' +} diff --git a/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 25879 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 Nq$R_^uaqX; diff --git a/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties index 290541c738..4c5803d13c 100644 --- a/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/guides/gs-contract-rest/initial/contract-rest-service/gradlew b/guides/gs-contract-rest/initial/contract-rest-service/gradlew index af6708ff22..fbd7c51583 100755 --- a/guides/gs-contract-rest/initial/contract-rest-service/gradlew +++ b/guides/gs-contract-rest/initial/contract-rest-service/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/guides/gs-contract-rest/initial/contract-rest-service/gradlew.bat b/guides/gs-contract-rest/initial/contract-rest-service/gradlew.bat index 6d57edc706..5093609d51 100644 --- a/guides/gs-contract-rest/initial/contract-rest-service/gradlew.bat +++ b/guides/gs-contract-rest/initial/contract-rest-service/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -65,6 +84,7 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% diff --git a/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 25879 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 Nq$R_^uaqX; diff --git a/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties index 290541c738..4c5803d13c 100644 --- a/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/guides/gs-contract-rest/initial/gradlew b/guides/gs-contract-rest/initial/gradlew index af6708ff22..fbd7c51583 100755 --- a/guides/gs-contract-rest/initial/gradlew +++ b/guides/gs-contract-rest/initial/gradlew @@ -1,5 +1,21 @@ #!/usr/bin/env sh +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + ############################################################################## ## ## Gradle start up script for UN*X @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m"' +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -66,6 +82,7 @@ esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then @@ -109,10 +126,11 @@ if $darwin; then GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" fi -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath @@ -138,19 +156,19 @@ if $cygwin ; then else eval `echo args$i`="\"$arg\"" fi - i=$((i+1)) + i=`expr $i + 1` done case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; esac fi @@ -159,14 +177,9 @@ save () { for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done echo " " } -APP_ARGS=$(save "$@") +APP_ARGS=`save "$@"` # Collect all arguments for the java command, following the shell quoting and substitution rules eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" -# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong -if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then - cd "$(dirname "$0")" -fi - exec "$JAVACMD" "$@" diff --git a/guides/gs-contract-rest/initial/gradlew.bat b/guides/gs-contract-rest/initial/gradlew.bat index 6d57edc706..5093609d51 100644 --- a/guides/gs-contract-rest/initial/gradlew.bat +++ b/guides/gs-contract-rest/initial/gradlew.bat @@ -1,3 +1,19 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + @if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @@ -13,8 +29,11 @@ if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -65,6 +84,7 @@ set CMD_LINE_ARGS=%* set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + @rem Execute Gradle "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% diff --git a/pom.xml b/pom.xml index 1c9053f1ba..6d826de31e 100644 --- a/pom.xml +++ b/pom.xml @@ -56,7 +56,7 @@ 1.6.3 - 2.5.9 + 2.5.10 3.5.4 @@ -401,6 +401,11 @@ groovy-xml ${groovy.version} + + org.codehaus.groovy + groovy-macro + ${groovy.version} + org.apache.maven maven-resolver-provider diff --git a/samples/standalone/dsl/http-client/build.gradle b/samples/standalone/dsl/http-client/build.gradle index 85d3373d5e..0677aba160 100644 --- a/samples/standalone/dsl/http-client/build.gradle +++ b/samples/standalone/dsl/http-client/build.gradle @@ -34,13 +34,13 @@ dependencyManagement { } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-actuator") - compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.cloud:spring-cloud-starter-stream-rabbit") - testCompile("org.springframework.cloud:spring-cloud-stream-test-support") - testCompile "org.springframework.cloud:spring-cloud-starter-contract-stub-runner" - testCompile "org.springframework.cloud:spring-cloud-starter-contract-verifier" + testImplementation("org.springframework.cloud:spring-cloud-stream-test-support") + testImplementation "org.springframework.cloud:spring-cloud-starter-contract-stub-runner" + testImplementation "org.springframework.cloud:spring-cloud-starter-contract-verifier" } test { diff --git a/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/dsl/http-client/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/standalone/dsl/http-server/build.gradle b/samples/standalone/dsl/http-server/build.gradle index c4e04a9997..7c0a8b390e 100644 --- a/samples/standalone/dsl/http-server/build.gradle +++ b/samples/standalone/dsl/http-server/build.gradle @@ -70,12 +70,12 @@ contracts { } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-actuator") - compile("org.springframework.cloud:spring-cloud-starter-stream-rabbit") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.cloud:spring-cloud-starter-stream-rabbit") - testCompile 'org.springframework.cloud:spring-cloud-starter-contract-verifier' - testCompile "org.springframework.cloud:spring-cloud-stream-test-support" + testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-verifier' + testImplementation "org.springframework.cloud:spring-cloud-stream-test-support" } test { diff --git a/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/dsl/http-server/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/standalone/restdocs/http-client/build.gradle b/samples/standalone/restdocs/http-client/build.gradle index d0b29c337f..cc3326c8fc 100644 --- a/samples/standalone/restdocs/http-client/build.gradle +++ b/samples/standalone/restdocs/http-client/build.gradle @@ -35,14 +35,14 @@ dependencyManagement { } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-actuator") - compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") - testCompile 'org.springframework.cloud:spring-cloud-contract-wiremock' - testCompile 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' - testCompile "org.springframework.boot:spring-boot-starter-test" - testCompile "com.example:http-server-restdocs:0.0.1:stubs" + testImplementation 'org.springframework.cloud:spring-cloud-contract-wiremock' + testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' + testImplementation "org.springframework.boot:spring-boot-starter-test" + testImplementation "com.example:http-server-restdocs:0.0.1:stubs" } test { diff --git a/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/restdocs/http-client/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/standalone/restdocs/http-server/build.gradle b/samples/standalone/restdocs/http-server/build.gradle index a0968081ff..0368266f77 100644 --- a/samples/standalone/restdocs/http-server/build.gradle +++ b/samples/standalone/restdocs/http-server/build.gradle @@ -41,15 +41,15 @@ dependencyManagement { } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-actuator") - compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-xml") - testCompile 'org.springframework.boot:spring-boot-starter-test' - testCompile 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' + testImplementation('org.springframework.boot:spring-boot-starter-test') + testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' // tag::dependencies[] - testCompile 'org.springframework.cloud:spring-cloud-starter-contract-verifier' - testCompile 'org.springframework.restdocs:spring-restdocs-mockmvc' + testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-verifier' + testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' // end::dependencies[] } diff --git a/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/restdocs/http-server/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/standalone/webclient/http-client/build.gradle b/samples/standalone/webclient/http-client/build.gradle index f7ab0e7c37..af27bb35a6 100644 --- a/samples/standalone/webclient/http-client/build.gradle +++ b/samples/standalone/webclient/http-client/build.gradle @@ -35,13 +35,13 @@ dependencyManagement { } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") - compile("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.boot:spring-boot-starter-web") + implementation("org.springframework.boot:spring-boot-starter-actuator") - testCompile 'org.springframework.cloud:spring-cloud-contract-wiremock' - testCompile 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' - testCompile "org.springframework.boot:spring-boot-starter-test" - testCompile "com.example:http-server-webclient:0.0.1:stubs" + testImplementation 'org.springframework.cloud:spring-cloud-contract-wiremock' + testImplementation 'org.springframework.cloud:spring-cloud-starter-contract-stub-runner' + testImplementation "org.springframework.boot:spring-boot-starter-test" + testImplementation "com.example:http-server-webclient:0.0.1:stubs" } test { diff --git a/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/webclient/http-client/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/samples/standalone/webclient/http-server/build.gradle b/samples/standalone/webclient/http-server/build.gradle index 3a14945d3e..00198b17d5 100644 --- a/samples/standalone/webclient/http-server/build.gradle +++ b/samples/standalone/webclient/http-server/build.gradle @@ -26,12 +26,12 @@ dependencyManagement { } dependencies { - compile("org.springframework.boot:spring-boot-starter-webflux") - compile("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.boot:spring-boot-starter-webflux") + implementation("org.springframework.boot:spring-boot-starter-actuator") - testCompile 'org.springframework.boot:spring-boot-starter-test' - testCompile 'org.springframework.restdocs:spring-restdocs-webtestclient' - testCompile 'org.springframework.cloud:spring-cloud-contract-wiremock' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'org.springframework.restdocs:spring-restdocs-webtestclient' + testImplementation 'org.springframework.cloud:spring-cloud-contract-wiremock' } contracts { diff --git a/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties b/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties +++ b/samples/standalone/webclient/http-server/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists 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 56837aae7f..1b794027c2 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 @@ -29,7 +29,6 @@ ext { JavaVersion javaVer = JavaVersion.current() println "Current Java version equal to [${javaVer}]" javaVersionNumber = javaVer.toString() - incompatibleJdk = javaVer.ordinal() > 8 } project.version = findProperty('verifierVersion') @@ -89,21 +88,12 @@ task libtest() { } } -task checkJdkVersion { - doLast { - if (incompatibleJdk) { - logger.warn("Java Version is equal to [${javaVersionNumber}]. The tests will be disabled (due to issues with compilation)") - } - } -} - test { testLogging { exceptionFormat = 'full' } systemProperties = testSystemProperties - dependsOn(checkJdkVersion) - enabled = !project.hasProperty('fast') && !incompatibleJdk + enabled = !project.hasProperty('fast') } groovydoc { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties index 5028f28f8e..4c5803d13c 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.java b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.java index ddcfa259c0..5dd4f7b631 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.java +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.java @@ -17,14 +17,18 @@ package org.springframework.cloud.contract.verifier.plugin; import java.io.File; +import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.function.Consumer; import javax.inject.Inject; +import groovy.lang.Closure; +import groovy.lang.DelegatesTo; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.gradle.api.Action; @@ -36,6 +40,7 @@ import org.gradle.api.provider.MapProperty; import org.gradle.api.provider.Property; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Internal; +import org.gradle.api.tasks.Nested; import org.gradle.api.tasks.Optional; import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties; @@ -48,7 +53,7 @@ import org.springframework.util.Assert; * @author Anatoliy Balakirev * @author Shannon Pamperl */ -public class ContractVerifierExtension { +public class ContractVerifierExtension implements Serializable { private static final Log log = LogFactory.getLog(ContractVerifierExtension.class); @@ -155,6 +160,8 @@ public class ContractVerifierExtension { private ContractRepository contractRepository; + private PublishStubsToScm publishStubsToScm; + /** * Dependency that contains packaged contracts */ @@ -163,7 +170,6 @@ public class ContractVerifierExtension { /** * The path in the JAR with all the contracts where contracts for this particular service lay. * If not provided will be resolved to {@code groupid/artifactid}. Example: - *

* If {@code groupid} is {@code com.example} and {@code artifactid} is {@code service} then the resolved path will be * {@code /com/example/artifactid} */ @@ -186,7 +192,6 @@ public class ContractVerifierExtension { /** * A way to override any base class mappings. The keys are regular expressions on the package name * and the values FQN to a base class for that given expression. - *

* Example of a mapping * [.*.com.example.v1..*] to [com.example.SomeBaseClass] * When a contract's package matches the provided regular expression then extending class will be the one @@ -236,6 +241,8 @@ public class ContractVerifierExtension { */ private Property sourceSet; + private final ObjectFactory objects; + @Inject public ContractVerifierExtension(ProjectLayout layout, ObjectFactory objects) { this.testFramework = objects.property(TestFramework.class).convention(TestFramework.JUNIT); @@ -258,6 +265,7 @@ public class ContractVerifierExtension { this.failOnNoContracts = objects.property(Boolean.class).convention(true); this.failOnInProgress = objects.property(Boolean.class).convention(true); this.contractRepository = objects.newInstance(ContractRepository.class); + this.publishStubsToScm = objects.newInstance(PublishStubsToScm.class); this.contractDependency = objects.newInstance(Dependency.class); this.contractsPath = objects.property(String.class); this.contractsMode = objects.property(StubRunnerProperties.StubsMode.class).convention(StubRunnerProperties.StubsMode.CLASSPATH); @@ -270,6 +278,7 @@ public class ContractVerifierExtension { this.contractsProperties = objects.mapProperty(String.class, String.class).convention(new HashMap<>()); this.disableStubPublication = objects.property(Boolean.class).convention(false); this.sourceSet = objects.property(String.class); + this.objects = objects; } @Deprecated @@ -455,6 +464,7 @@ public class ContractVerifierExtension { this.failOnInProgress.set(failOnInProgress); } + @Nested public ContractRepository getContractRepository() { return contractRepository; } @@ -463,6 +473,15 @@ public class ContractVerifierExtension { action.execute(contractRepository); } + @Nested + public PublishStubsToScm getPublishStubsToScm() { + return publishStubsToScm; + } + + public void publishStubsToScm(Action action) { + action.execute(publishStubsToScm); + } + public Dependency getContractDependency() { return contractDependency; } @@ -575,7 +594,7 @@ public class ContractVerifierExtension { this.sourceSet.set(sourceSet); } - public static class Dependency { + public static class Dependency implements Serializable { private Property groupId; private Property artifactId; private Property version; @@ -653,7 +672,7 @@ public class ContractVerifierExtension { } } - public static class BaseClassMapping { + public static class BaseClassMapping implements Serializable { private final MapProperty baseClassMappings; @Inject @@ -675,7 +694,7 @@ public class ContractVerifierExtension { } // This class is used as an input to the tasks, so all fields are marked as `@Input` to allow incremental build - public static class ContractRepository { + public static class ContractRepository implements Serializable { private Property repositoryUrl; private Property username; private Property password; @@ -768,12 +787,6 @@ public class ContractVerifierExtension { return proxyPort; } - // favor unwrapped int - @Deprecated - public void setProxyPort(Integer proxyPort) { - this.proxyPort.set(proxyPort); - } - public void setProxyPort(int proxyPort) { Assert.state(0 < proxyPort && proxyPort <= 65536, "Proxy port should be between 1 and 65536"); this.proxyPort.set(proxyPort); @@ -802,4 +815,46 @@ public class ContractVerifierExtension { '}'; } } -} \ No newline at end of file + + public static class PublishStubsToScm implements Serializable { + + /** + * Dependency that contains packaged contracts + */ + private Dependency contractDependency; + + private ContractRepository contractRepository; + + @Inject + public PublishStubsToScm(ObjectFactory objects) { + contractDependency = objects.newInstance(Dependency.class); + contractRepository = objects.newInstance(ContractRepository.class); + } + + @Nested + public Dependency getContractDependency() { + return contractDependency; + } + + public void contractDependency(Action action) { + action.execute(contractDependency); + } + + @Nested + public ContractRepository getContractRepository() { + return contractRepository; + } + + public void contractRepository(Action action) { + action.execute(contractRepository); + } + + @Override + public String toString() { + return "PublishStubsToScm{" + + "contractDependency=" + contractDependency + + ", contractRepository=" + contractRepository + + '}'; + } + } +} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractsCopyTask.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractsCopyTask.groovy index e4337687e7..8c5f91ceeb 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractsCopyTask.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractsCopyTask.groovy @@ -122,7 +122,7 @@ class ContractsCopyTask extends DefaultTask { } private boolean contractFolderMissing() { - contractsDirectory.isPresent() && !contractsDirectory.get().asFile.exists() + return contractsDirectory.isPresent() && !contractsDirectory.get().asFile.exists() } @Internal @@ -139,6 +139,8 @@ class ContractsCopyTask extends DefaultTask { @OutputDirectory DirectoryProperty copiedContractsFolder + @OutputDirectory + DirectoryProperty stubsOutputDir @Optional @OutputDirectory DirectoryProperty backupContractsFolder @@ -148,7 +150,7 @@ class ContractsCopyTask extends DefaultTask { void sync() { final DownloadedData downloadedData = downloadContractsIfNeeded() final File contractsDirectory - final String antPattern + String antPattern = "" if (downloadedData) { contractsDirectory = downloadedData.downloadedContracts antPattern = "${downloadedData.inclusionProperties.includedRootFolderAntPattern}*.*" @@ -162,7 +164,7 @@ class ContractsCopyTask extends DefaultTask { contractsDirectory = null } logger.info("For project [{}] will use contracts provided in the folder [{}]", project.name, contractsDirectory) - final String contractsRepository = config.contractRepository.repositoryUrl.isPresent() ? config.contractRepository.repositoryUrl : "" + final String contractsRepository = config.contractRepository.repositoryUrl.isPresent() ? config.contractRepository.repositoryUrl.get() : "" throwExceptionWhenFailOnNoContracts(contractsDirectory, contractsRepository) if (contractsDirectory == null) { logger.info("Contracts directory not set and contracts weren't downloaded. There's nothing to copy") @@ -170,7 +172,7 @@ class ContractsCopyTask extends DefaultTask { } final String slashSeparatedGroupId = project.group.toString().replace(".", File.separator) final String slashSeparatedAntPattern = antPattern.replace(slashSeparatedGroupId, project.group.toString()) - final File output = config.copiedContractsFolder.get().asFile + File output = config.copiedContractsFolder.get().getAsFile() logger.info("Downloading and unpacking files from [${contractsDirectory}] to [$output]. The inclusion ant patterns are [${antPattern}] and [${slashSeparatedAntPattern}]") sync(contractsDirectory, antPattern, slashSeparatedAntPattern, config.excludeBuildFolders.get(), output) if (config.convertToYaml.get()) { @@ -184,6 +186,7 @@ class ContractsCopyTask extends DefaultTask { excludeBuildFolders: extension.excludeBuildFolders, failOnNoContracts: extension.failOnNoContracts, contractsDirectory: extension.contractsDslDir, + stubsOutputDir: extension.stubsOutputDir, copiedContractsFolder: createTaskOutput(root, extension.stubsOutputDir, ContractsCopyTask.CONTRACTS, project), backupContractsFolder: createTaskOutput(root, extension.stubsOutputDir, ContractsCopyTask.BACKUP, project), contractDependency: extension.contractDependency, diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy index 34be261875..6ca601b0d6 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/GenerateServerTestsTask.groovy @@ -17,6 +17,7 @@ package org.springframework.cloud.contract.verifier.plugin import groovy.transform.CompileStatic +import groovy.transform.builder.Builder import org.gradle.api.DefaultTask import org.gradle.api.GradleException import org.gradle.api.file.Directory @@ -50,46 +51,136 @@ class GenerateServerTestsTask extends DefaultTask { @Nested Config config + @CompileStatic + @Builder static class Config { + + final Provider contractsDslDir + final Provider nameSuffixForTests + final Provider basePackageForTests + final Provider baseClassForTests + final Provider packageWithBaseClasses + final ListProperty excludedFiles + final ListProperty ignoredFiles + final ListProperty includedFiles + final ListProperty imports + final ListProperty staticImports + final Provider testMode + final Provider testFramework + final MapProperty baseClassMappings + final Provider assertJsonSize + final Provider failOnInProgress + final DirectoryProperty generatedTestSourcesDir + final DirectoryProperty generatedTestResourcesDir + + Config(Provider contractsDslDir, Provider nameSuffixForTests, Provider basePackageForTests, Provider baseClassForTests, Provider packageWithBaseClasses, ListProperty excludedFiles, ListProperty ignoredFiles, ListProperty includedFiles, ListProperty imports, ListProperty staticImports, Provider testMode, Provider testFramework, MapProperty baseClassMappings, Provider assertJsonSize, Provider failOnInProgress, DirectoryProperty generatedTestSourcesDir, DirectoryProperty generatedTestResourcesDir) { + this.contractsDslDir = contractsDslDir + this.nameSuffixForTests = nameSuffixForTests + this.basePackageForTests = basePackageForTests + this.baseClassForTests = baseClassForTests + this.packageWithBaseClasses = packageWithBaseClasses + this.excludedFiles = excludedFiles + this.ignoredFiles = ignoredFiles + this.includedFiles = includedFiles + this.imports = imports + this.staticImports = staticImports + this.testMode = testMode + this.testFramework = testFramework + this.baseClassMappings = baseClassMappings + this.assertJsonSize = assertJsonSize + this.failOnInProgress = failOnInProgress + this.generatedTestSourcesDir = generatedTestSourcesDir + this.generatedTestResourcesDir = generatedTestResourcesDir + } + @InputDirectory - Provider contractsDslDir + Provider getContractsDslDir() { + return contractsDslDir + } + @Input @Optional - Provider nameSuffixForTests + Provider getNameSuffixForTests() { + return nameSuffixForTests + } + @Input @Optional - Provider basePackageForTests + Provider getBasePackageForTests() { + return basePackageForTests + } + @Input @Optional - Provider baseClassForTests + Provider getBaseClassForTests() { + return baseClassForTests + } + @Input @Optional - Provider packageWithBaseClasses + Provider getPackageWithBaseClasses() { + return packageWithBaseClasses + } + @Input - ListProperty excludedFiles + ListProperty getExcludedFiles() { + return excludedFiles + } + @Input - ListProperty ignoredFiles + ListProperty getIgnoredFiles() { + return ignoredFiles + } + @Input - ListProperty includedFiles + ListProperty getIncludedFiles() { + return includedFiles + } + @Input - ListProperty imports + ListProperty getImports() { + return imports + } + @Input - ListProperty staticImports + ListProperty getStaticImports() { + return staticImports + } + @Input - Provider testMode + Provider getTestMode() { + return testMode + } + @Input - Provider testFramework + Provider getTestFramework() { + return testFramework + } + @Input - MapProperty baseClassMappings + MapProperty getBaseClassMappings() { + return baseClassMappings + } + @Input - Provider assertJsonSize + Provider getAssertJsonSize() { + return assertJsonSize + } + @Input - Provider failOnInProgress + Provider getFailOnInProgress() { + return failOnInProgress + } @OutputDirectory - DirectoryProperty generatedTestSourcesDir + DirectoryProperty getGeneratedTestSourcesDir() { + return generatedTestSourcesDir + } + @OutputDirectory - DirectoryProperty generatedTestResourcesDir + DirectoryProperty getGeneratedTestResourcesDir() { + return generatedTestResourcesDir + } } @TaskAction @@ -139,24 +230,22 @@ class GenerateServerTestsTask extends DefaultTask { static Config fromExtension(ContractVerifierExtension extension, TaskProvider copyContractsTask) { return new Config( - contractsDslDir: copyContractsTask.flatMap { it.config.copiedContractsFolder }, - nameSuffixForTests: extension.nameSuffixForTests, - basePackageForTests: extension.basePackageForTests, - baseClassForTests: extension.baseClassForTests, - packageWithBaseClasses: extension.packageWithBaseClasses, - excludedFiles: extension.excludedFiles, - ignoredFiles: extension.ignoredFiles, - includedFiles: extension.includedFiles, - imports: extension.imports, - staticImports: extension.staticImports, - testMode: extension.testMode, - testFramework: extension.testFramework, - baseClassMappings: extension.baseClassMappings.getBaseClassMappings(), - assertJsonSize: extension.assertJsonSize, - failOnInProgress: extension.failOnInProgress, - - generatedTestSourcesDir: extension.generatedTestSourcesDir, - generatedTestResourcesDir: extension.generatedTestResourcesDir, - ) + copyContractsTask.flatMap { it.config.copiedContractsFolder }, + extension.nameSuffixForTests, + extension.basePackageForTests, + extension.baseClassForTests, + extension.packageWithBaseClasses, + extension.excludedFiles, + extension.ignoredFiles, + extension.includedFiles, + extension.imports, + extension.staticImports, + extension.testMode, + extension.testFramework, + extension.baseClassMappings.getBaseClassMappings(), + extension.assertJsonSize, + extension.failOnInProgress, + extension.generatedTestSourcesDir, + extension.generatedTestResourcesDir) } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/PublishStubsToScmTask.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/PublishStubsToScmTask.groovy index 5b11f72173..34c6b8bcad 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/PublishStubsToScmTask.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/PublishStubsToScmTask.groovy @@ -17,12 +17,15 @@ package org.springframework.cloud.contract.verifier.plugin import groovy.transform.CompileStatic -import groovy.transform.PackageScope import org.gradle.api.DefaultTask import org.gradle.api.file.DirectoryProperty import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.MapProperty import org.gradle.api.provider.Property +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.Nested +import org.gradle.api.tasks.OutputDirectory import org.gradle.api.tasks.TaskAction import org.springframework.cloud.contract.stubrunner.ContractProjectUpdater import org.springframework.cloud.contract.stubrunner.ScmStubDownloaderBuilder @@ -34,6 +37,10 @@ import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties * to the cloned repo with contracts and stubs. Will also * commit the changes and push them to origin. * + * NOTE: starting with 2.3.0.RELEASE the customize{} closure previously used for + * {@link PublishStubsToScmTask} customisation is no longer available. The settings should be applied directly + * within the publishStubsToScm closure as in the example above. + * * @author Marcin Grzejszczak * @author Anatoliy Balakirev * @since 2.0.0 @@ -42,120 +49,67 @@ import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties class PublishStubsToScmTask extends DefaultTask { static final String TASK_NAME = 'publishStubsToScm' + @Nested Config config - private Closure customizationClosure = Closure.IDENTITY + @CompileStatic static class Config { - private ObjectFactory objects - ContractVerifierExtension.ContractRepository contractRepository - Property contractsMode - Property deleteStubsAfterTest - Property failOnNoContracts - MapProperty contractsProperties - DirectoryProperty stubsOutputDir + @Nested + final Property contractRepository + @Nested + final Property publishStubsToScm + @Input + final Property contractsMode + @Input + final Property deleteStubsAfterTest + @Input + final Property failOnNoContracts + @Input + final MapProperty contractsProperties + @OutputDirectory + final DirectoryProperty stubsOutputDir + @Internal + final ObjectFactory objects - void setContractsMode(Property contractsMode) { - this.contractsMode = contractsMode - } - - void setContractsMode(String contractsMode) { - if (contractsMode) { - this.contractsMode = objects.property(StubRunnerProperties.StubsMode).convention(StubRunnerProperties.StubsMode.valueOf(contractsMode.toUpperCase())) - } - } - - void setDeleteStubsAfterTest(Property deleteStubsAfterTest) { - this.deleteStubsAfterTest = deleteStubsAfterTest - } - - void setDeleteStubsAfterTest(Boolean deleteStubsAfterTest) { - if (deleteStubsAfterTest != null) { - this.deleteStubsAfterTest = objects.property(Boolean).convention(deleteStubsAfterTest) - } - } - - void setFailOnNoContracts(Property failOnNoContracts) { - this.failOnNoContracts = failOnNoContracts - } - - void setFailOnNoContracts(Boolean failOnNoContracts) { - if (failOnNoContracts != null) { - this.failOnNoContracts = objects.property(Boolean).convention(failOnNoContracts) - } - } - - void setContractsProperties(MapProperty contractsProperties) { - this.contractsProperties = contractsProperties - } - - void setContractsProperties(Map contractsProperties) { - if (contractsProperties) { - this.contractsProperties = objects.mapProperty(String, String).convention(contractsProperties) - } - } - - void setStubsOutputDir(DirectoryProperty stubsOutputDir) { - this.stubsOutputDir = stubsOutputDir - } - - void setStubsOutputDir(String stubsOutputDir) { - if (stubsOutputDir) { - this.stubsOutputDir = objects.directoryProperty() - this.stubsOutputDir.set(new File(stubsOutputDir)) - } - } - - void setStubsOutputDir(GString stubsOutputDir) { - if (stubsOutputDir) { - this.stubsOutputDir = objects.directoryProperty() - this.stubsOutputDir.set(new File(stubsOutputDir.toString())) - } - } - - void contractRepository(@DelegatesTo(ContractVerifierExtension.ContractRepository) Closure closure) { - closure.delegate = contractRepository - closure.call() - } - - @Deprecated - void contractDependency(Closure closure) { - // Here only to preserve backward compatibility. Was never used here. - } - - @PackageScope - void setObjects(ObjectFactory objects) { + Config(ObjectFactory objects, ContractVerifierExtension extension) { this.objects = objects + this.contractRepository = objects.property(ContractVerifierExtension.ContractRepository) + this.contractRepository.set(extension.contractRepository) + this.publishStubsToScm = objects.property(ContractVerifierExtension.PublishStubsToScm) + this.publishStubsToScm.set(extension.publishStubsToScm) + this.contractsMode = objects.property(StubRunnerProperties.StubsMode) + this.contractsMode.set(extension.contractsMode) + this.deleteStubsAfterTest = objects.property(Boolean) + this.deleteStubsAfterTest.set(extension.failOnNoContracts) + this.failOnNoContracts = objects.property(Boolean) + this.failOnNoContracts.set(extension.deleteStubsAfterTest) + this.contractsProperties = objects.mapProperty(String, String) + this.contractsProperties.set(extension.contractsProperties) + this.stubsOutputDir = objects.directoryProperty() + this.stubsOutputDir.set(extension.stubsOutputDir) } } @TaskAction void publishStubsToScm() { - applyConfigCustomizations() - if (!shouldRun()) { + ContractVerifierExtension.ContractRepository repository = merged() + if (!shouldRun(repository)) { return } String projectName = project.group.toString() + ":" + project.name.toString() + ":" + this.project.version.toString() project.logger.info("Pushing Stubs to SCM for project [" + projectName + "]") StubRunnerOptions stubRunnerOptions = StubRunnerOptionsFactory.createStubRunnerOptions( - config.contractRepository, config.contractsMode.getOrNull(), config.deleteStubsAfterTest.get(), + repository, config.contractsMode.getOrElse(StubRunnerProperties.StubsMode.REMOTE), config.deleteStubsAfterTest.get(), config.contractsProperties.get(), config.failOnNoContracts.get()) new ContractProjectUpdater(stubRunnerOptions).updateContractProject(projectName, config.stubsOutputDir.get().asFile.toPath()) } static Config fromExtension(ContractVerifierExtension extension, ObjectFactory objects) { - return new Config( - contractRepository: extension.contractRepository, - contractsMode: extension.contractsMode, - failOnNoContracts: extension.failOnNoContracts, - deleteStubsAfterTest: extension.deleteStubsAfterTest, - contractsProperties: extension.contractsProperties, - stubsOutputDir: extension.stubsOutputDir, - objects: objects - ) + return new Config(objects, extension) } - private boolean shouldRun() { - String contractRepoUrl = config.contractRepository.repositoryUrl.getOrNull() ?: "" + private boolean shouldRun(ContractVerifierExtension.ContractRepository repository) { + String contractRepoUrl = repository.repositoryUrl.getOrNull() ?: "" if (!contractRepoUrl || !ScmStubDownloaderBuilder.isProtocolAccepted(contractRepoUrl)) { project.logger.warn("Skipping pushing stubs to scm since your contracts repository URL [${contractRepoUrl}] doesn't match any of the accepted protocols for SCM stub downloader") return false @@ -163,37 +117,18 @@ class PublishStubsToScmTask extends DefaultTask { return true } - /** - * Some builds might want to customize this task only, overriding settings from plugin. - */ - void customize(@DelegatesTo(Config) Closure closure) { - customizationClosure = closure - } - - private void applyConfigCustomizations() { - // Needs to be copied, otherwise properties won't be updated: - config.contractRepository = copy(config.contractRepository, project.objects) - customizationClosure.delegate = config - customizationClosure.call() - } - - private static ContractVerifierExtension.ContractRepository copy(ContractVerifierExtension.ContractRepository original, ObjectFactory objects) { - ContractVerifierExtension.ContractRepository copied = new ContractVerifierExtension.ContractRepository(objects) - if (original.repositoryUrl.getOrNull()) { - copied.repositoryUrl.set(original.repositoryUrl.get()) - } - if (original.username.getOrNull()) { - copied.username.set(original.username.get()) - } - if (original.password.getOrNull()) { - copied.password.set(original.password.get()) - } - if (original.proxyPort.getOrNull()) { - copied.proxyPort.set(original.proxyPort.get()) - } - if (original.proxyHost.getOrNull()) { - copied.proxyHost.set(original.proxyHost.get()) + private ContractVerifierExtension.ContractRepository merged() { + ContractVerifierExtension.ContractRepository original = config.contractRepository.get() + ContractVerifierExtension.ContractRepository stubs = config.publishStubsToScm.get().getContractRepository() + ContractVerifierExtension.ContractRepository copied = new ContractVerifierExtension.ContractRepository(config.objects) + copied.setRepositoryUrl(stubs.getRepositoryUrl().getOrElse(original.getRepositoryUrl().getOrNull())) + copied.setUsername(stubs.getUsername().getOrElse(original.getUsername().getOrNull())) + copied.setPassword(stubs.getPassword().getOrElse(original.getPassword().getOrNull())) + Integer port = stubs.getProxyPort().getOrElse(original.getProxyPort().getOrNull()) + if (port != null ) { + copied.setProxyPort(port) } + copied.setProxyHost(stubs.getProxyHost().getOrElse(original.getProxyHost().getOrNull())) return copied } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderHelperSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderHelperSpec.groovy index 79f4aba806..4c2212467d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderHelperSpec.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/groovy/org/springframework/cloud/contract/verifier/plugin/GradleContractsDownloaderHelperSpec.groovy @@ -17,8 +17,10 @@ package org.springframework.cloud.contract.verifier.plugin import org.gradle.api.internal.provider.DefaultProperty +import org.gradle.api.internal.provider.PropertyHost import org.gradle.api.model.ObjectFactory import org.gradle.api.provider.Property +import org.gradle.internal.service.scopes.ProjectBackedPropertyHost import spock.lang.Specification import org.springframework.cloud.contract.stubrunner.StubConfiguration @@ -97,7 +99,7 @@ class GradleContractsDownloaderHelperSpec extends Specification { } // Have to use this internal property impl here. Is there some better way? - static Property prop(Class aClass) { - return new DefaultProperty(aClass) + public Property prop(Class aClass) { + return new DefaultProperty(Stub(PropertyHost), aClass) } } diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle index e9a09d84bc..549b0fdb7a 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/build.gradle @@ -31,20 +31,20 @@ repositories { } dependencies { - compile "org.springframework:spring-web" - compile "org.springframework:spring-context-support" - compile "org.codehaus.groovy:groovy-all:${groovyVersion}" - compile 'com.jayway.jsonpath:json-path-assert:2.2.0' + implementation "org.springframework:spring-web" + implementation "org.springframework:spring-context-support" + implementation "org.codehaus.groovy:groovy-all:${groovyVersion}" + implementation 'com.jayway.jsonpath:json-path-assert:2.2.0' - testCompile "com.github.tomakehurst:wiremock:${wiremockVersion}" - testCompile "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" - testCompile("org.spockframework:spock-spring:1.0-groovy-2.4") { + testImplementation "com.github.tomakehurst:wiremock:${wiremockVersion}" + testImplementation "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" + testImplementation("org.spockframework:spock-spring:1.0-groovy-2.4") { exclude(group: 'org.codehaus.groovy') } - testCompile "io.restassured:rest-assured:$restAssuredVersion" - testCompile "io.restassured:spring-mock-mvc:$restAssuredVersion" - testCompile "ch.qos.logback:logback-classic:1.1.2" - testCompile "org.springframework.cloud:spring-cloud-contract-verifier:${verifierVersion}" + testImplementation "io.restassured:rest-assured:$restAssuredVersion" + testImplementation "io.restassured:spring-mock-mvc:$restAssuredVersion" + testImplementation "ch.qos.logback:logback-classic:1.1.2" + testImplementation "org.springframework.cloud:spring-cloud-contract-verifier:${verifierVersion}" } contracts { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.jar b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.jar index 87b738cbd051603d91cc39de6cb000dd98fe6b02..5c2d1cf016b3885f6930543d57b744ea8c220a1a 100644 GIT binary patch delta 3320 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 + From c6901dae8120b49524098d38a7fbbe5d642d7582 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Wed, 13 May 2020 18:36:04 +0200 Subject: [PATCH 2/6] Switch to Spring Cloud Build 2.3.0.BUILD-SNAPSHOT. --- pom.xml | 2 +- .../verifier/messaging/amqp/SpringAmqpStubMessages.java | 5 ++++- .../messaging/amqp/SpringAmqpStubMessagesSpec.groovy | 5 +++-- tests/samples-messaging-amqp/pom.xml | 4 ++++ 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 6d826de31e..f8dde69af2 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ 2.17 3.6.14 0.0.9 - 2.2.3.RELEASE + 2.3.0.BUILD-SNAPSHOT 2.2.2.BUILD-SNAPSHOT Horsham.SR3 diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java index 3cdeadd1ee..d682449cd7 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java @@ -29,6 +29,7 @@ import org.mockito.ArgumentMatchers; import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageListener; import org.springframework.amqp.core.MessagePropertiesBuilder; +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer; import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener; @@ -171,7 +172,9 @@ public class SpringAmqpStubMessages implements MessageVerifier { // backward compatibility return true; } - return !this.rabbitProperties.isPublisherConfirms(); + return this.rabbitProperties.getPublisherConfirmType() == null + || this.rabbitProperties + .getPublisherConfirmType() == CachingConnectionFactory.ConfirmType.NONE; } @Override diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessagesSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessagesSpec.groovy index 845950b2f1..dff2b3d92a 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessagesSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessagesSpec.groovy @@ -27,6 +27,7 @@ import org.springframework.amqp.core.DirectExchange import org.springframework.amqp.core.Message import org.springframework.amqp.core.MessageProperties import org.springframework.amqp.core.Queue +import org.springframework.amqp.rabbit.connection.CachingConnectionFactory import org.springframework.amqp.rabbit.core.RabbitTemplate import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter @@ -78,7 +79,7 @@ class SpringAmqpStubMessagesSpec extends Specification { def "should send amqp message for non transactional channel"() { given: - rabbitProperties.setPublisherConfirms(true) + rabbitProperties.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.SIMPLE) listenerContainer.setMessageListener(messageListenerAdapter) listenerContainer.setQueueNames(queueName) Binding binding = BindingBuilder.bind(new Queue(queueName)).to(new DirectExchange(exchange)).with(routingKey) @@ -114,7 +115,7 @@ class SpringAmqpStubMessagesSpec extends Specification { def "should send amqp message for transactional channel"() { given: - rabbitProperties.setPublisherConfirms(false) + rabbitProperties.setPublisherConfirmType(CachingConnectionFactory.ConfirmType.NONE) listenerContainer.setMessageListener(messageListenerAdapter) listenerContainer.setQueueNames(queueName) Binding binding = BindingBuilder.bind(new Queue(queueName)).to(new DirectExchange(exchange)).with(routingKey) diff --git a/tests/samples-messaging-amqp/pom.xml b/tests/samples-messaging-amqp/pom.xml index 98001bb1d7..ef756a9674 100644 --- a/tests/samples-messaging-amqp/pom.xml +++ b/tests/samples-messaging-amqp/pom.xml @@ -18,6 +18,10 @@ org.springframework.boot spring-boot-starter-actuator + + org.springframework.boot + spring-boot-starter-json + org.springframework.boot spring-boot-starter-amqp From 50b36c49c79509354e53811d91de3522f202c897 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Wed, 13 May 2020 18:37:44 +0200 Subject: [PATCH 3/6] Upgrade gradle and groovy version in test projects. --- .../project/gradle/wrapper/gradle-wrapper.properties | 2 +- .../test/resources/functionalTest/bootSimple/gradle.properties | 2 +- .../resources/functionalTest/scenarioProject/gradle.properties | 2 +- .../functionalTest/scenarioProjectKotlin/gradle.properties | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties index 7c4388a921..4c5803d13c 100644 --- a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties +++ b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties index b26c1b67bc..1b461f1a37 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle.properties @@ -16,4 +16,4 @@ wiremockVersion=2.26.2 jsonAssertVersion=0.4.13 verifierVersion=2.2.3.BUILD-SNAPSHOT -groovyVersion=2.4.17 +groovyVersion=2.5.10 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 8522f92d6c..493b8e5773 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 @@ -17,4 +17,4 @@ wiremockVersion=2.26.2 jsonAssertVersion=0.4.13 verifierVersion=2.2.3.BUILD-SNAPSHOT bootVersion=2.2.5.RELEASE -groovyVersion=2.4.17 +groovyVersion=2.5.10 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 8522f92d6c..35912f8f96 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 @@ -17,4 +17,4 @@ wiremockVersion=2.26.2 jsonAssertVersion=0.4.13 verifierVersion=2.2.3.BUILD-SNAPSHOT bootVersion=2.2.5.RELEASE -groovyVersion=2.4.17 +groovyVersion=2.5.10 \ No newline at end of file From 174c3565dd414432efd0b0d1f3e155c7abe6b5a8 Mon Sep 17 00:00:00 2001 From: Tim Ysewyn Date: Wed, 29 Apr 2020 15:54:29 +0200 Subject: [PATCH 4/6] Enhanced messaging support for stubrunner (#1389) Co-authored-by: Tim Ysewyn --- .../server/EnableStubRunnerServer.java | 4 +- ....java => StubRunnerAutoConfiguration.java} | 25 +++--- .../StubRunnerAutoConfigurationTests.java | 68 ++++++++++++++++ ...actVerifierAmqpAutoConfigurationTests.java | 61 ++++++++++++++ .../AutoConfigureMessageVerifierTests.java | 58 ++++++++++++++ ...ntractVerifierCamelConfigurationTests.java | 66 ++++++++++++++++ ...VerifierIntegrationConfigurationTests.java | 44 +++++++++++ ...ContractVerifierJmsConfigurationTests.java | 64 +++++++++++++++ ...ntractVerifierKafkaConfigurationTests.java | 79 +++++++++++++++++++ ...ontractVerifierAutoConfigurationTests.java | 42 ++++++++++ ...tVerifierStreamAutoConfigurationTests.java | 65 +++++++++++++++ 11 files changed, 559 insertions(+), 17 deletions(-) rename spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/{StubRunnerBackupAutoConfiguration.java => StubRunnerAutoConfiguration.java} (57%) create mode 100644 spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java create mode 100644 spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java index 6103a18edb..555c33944f 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/EnableStubRunnerServer.java @@ -29,13 +29,13 @@ import org.springframework.context.annotation.Import; /** * Annotation to enable a Stub runner server. * @author Dave Syer + * @author Tim Ysewyn */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited -@Import({ HttpStubsController.class, TriggerController.class, - StubRunnerConfiguration.class }) +@Import({ HttpStubsController.class, StubRunnerConfiguration.class }) public @interface EnableStubRunnerServer { } diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfiguration.java similarity index 57% rename from spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java rename to spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfiguration.java index 03499162cc..596c469efa 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfiguration.java @@ -16,29 +16,24 @@ package org.springframework.cloud.contract.stubrunner.server; -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.cloud.contract.verifier.messaging.MessageVerifier; -import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; -import org.springframework.cloud.contract.verifier.messaging.noop.NoOpStubMessages; -import org.springframework.context.annotation.Bean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; /** * @author Marcin Grzejszczak + * @author Tim Ysewyn */ @Configuration(proxyBeanMethods = false) -class StubRunnerBackupAutoConfiguration { +class StubRunnerAutoConfiguration { - @Bean - @ConditionalOnMissingBean - public MessageVerifier contractVerifierMessageExchange() { - return new NoOpStubMessages(); - } + @ConditionalOnProperty(name = "stubrunner.messaging.enabled", havingValue = "true", + matchIfMissing = true) + @AutoConfigureMessageVerifier + @Import({ TriggerController.class }) + static class StubRunnerMessagingAutoConfiguration { - @Bean - public ContractVerifierMessaging contractVerifierMessaging( - MessageVerifier exchange) { - return new ContractVerifierMessaging<>(exchange); } } diff --git a/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfigurationTests.java b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfigurationTests.java new file mode 100644 index 0000000000..234310ae4a --- /dev/null +++ b/spring-cloud-contract-stub-runner/src/test/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerAutoConfigurationTests.java @@ -0,0 +1,68 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.stubrunner.server; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration; +import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class StubRunnerAutoConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(StubRunnerConfiguration.class, + StubRunnerAutoConfiguration.class)); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) + .hasSize(1); + assertThat(context.getBeansOfType(TriggerController.class)).hasSize(1); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) + .hasSize(0); + assertThat(context.getBeansOfType(TriggerController.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + this.contextRunner.withPropertyValues("stubrunner.messaging.enabled=true") + .run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierMessaging.class)) + .hasSize(1); + assertThat(context.getBeansOfType(TriggerController.class)) + .hasSize(1); + }); + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java new file mode 100644 index 0000000000..46daeb629f --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/amqp/ContractVerifierAmqpAutoConfigurationTests.java @@ -0,0 +1,61 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.amqp; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierAmqpAutoConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(RabbitAutoConfiguration.class, + ContractVerifierAmqpAutoConfiguration.class, + RabbitMockConnectionFactoryAutoConfiguration.class)); + + @Test + public void shouldNotCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(0); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.amqp.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(SpringAmqpStubMessages.class)) + .hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierHelper.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + // TODO + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java new file mode 100644 index 0000000000..a37f78b061 --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/boot/AutoConfigureMessageVerifierTests.java @@ -0,0 +1,58 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.boot; + +import org.junit.Test; + +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.boot.test.context.FilteredClassLoader; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.cloud.contract.verifier.messaging.MessageVerifierSender; +import org.springframework.cloud.contract.verifier.messaging.noop.NoOpStubMessages; +import org.springframework.cloud.stream.annotation.EnableBinding; +import org.springframework.jms.core.JmsTemplate; +import org.springframework.kafka.core.KafkaTemplate; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class AutoConfigureMessageVerifierTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withUserConfiguration(Configuration.class); + + @Test + public void shouldConfigureForNoOpWhenMissingImplementation() { + this.contextRunner + .withClassLoader(new FilteredClassLoader(org.apache.camel.Message.class, + org.springframework.messaging.Message.class, JmsTemplate.class, + KafkaTemplate.class, RabbitTemplate.class, EnableBinding.class)) + .run((context) -> { + assertThat(context.getBeansOfType(MessageVerifierSender.class)) + .hasSize(1); + assertThat(context.getBeansOfType(NoOpStubMessages.class)).hasSize(1); + }); + } + + @AutoConfigureMessageVerifier + private static class Configuration { + + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java new file mode 100644 index 0000000000..18eb9a24ee --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfigurationTests.java @@ -0,0 +1,66 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.camel; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierCamelConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of(ContractVerifierCamelConfiguration.class)); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(CamelStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) + .hasSize(1); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.camel.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(CamelStubMessages.class)) + .hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + this.contextRunner.withPropertyValues("stubrunner.camel.enabled=true") + .run((context) -> { + assertThat(context.getBeansOfType(CamelStubMessages.class)) + .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierCamelHelper.class)) + .hasSize(1); + }); + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java new file mode 100644 index 0000000000..ba1dff955b --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfigurationTests.java @@ -0,0 +1,44 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.integration; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierIntegrationConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations + .of(ContractVerifierIntegrationConfiguration.class)); + + @Test + public void shouldCreateBeansWhenOnClasspath() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(SpringIntegrationStubMessages.class)) + .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(1); + }); + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java new file mode 100644 index 0000000000..5046186a00 --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/jms/ContractVerifierJmsConfigurationTests.java @@ -0,0 +1,64 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.jms; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierJmsConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of(ContractVerifierJmsConfiguration.class)); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) + .hasSize(1); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.jms.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + this.contextRunner.withPropertyValues("stubrunner.jms.enabled=true") + .run((context) -> { + assertThat(context.getBeansOfType(JmsStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierJmsHelper.class)) + .hasSize(1); + }); + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java new file mode 100644 index 0000000000..058081856a --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/kafka/ContractVerifierKafkaConfigurationTests.java @@ -0,0 +1,79 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.kafka; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.kafka.test.EmbeddedKafkaBroker; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierKafkaConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration(AutoConfigurations.of(KafkaAutoConfiguration.class, + ContractVerifierKafkaConfiguration.class)) + .withUserConfiguration(CustomConfiguration.class); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(KafkaStubMessages.class)).hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) + .hasSize(1); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(KafkaStubMessages.class)) + .hasSize(0); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + this.contextRunner.withPropertyValues("stubrunner.kafka.enabled=true") + .run((context) -> { + assertThat(context.getBeansOfType(KafkaStubMessages.class)) + .hasSize(1); + assertThat(context.getBeansOfType(ContractVerifierKafkaHelper.class)) + .hasSize(1); + }); + } + + static class CustomConfiguration { + + @Bean + public EmbeddedKafkaBroker embeddedKafkaBroker() { + return new EmbeddedKafkaBroker(1); + } + + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java new file mode 100644 index 0000000000..58bb8f26bc --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfigurationTests.java @@ -0,0 +1,42 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.noop; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class NoOpContractVerifierAutoConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of(NoOpContractVerifierAutoConfiguration.class)); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(NoOpStubMessages.class)).hasSize(1); + }); + } + +} diff --git a/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java new file mode 100644 index 0000000000..9ed1fa0b2e --- /dev/null +++ b/spring-cloud-contract-verifier/src/test/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfigurationTests.java @@ -0,0 +1,65 @@ +/* + * Copyright 2020-2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.verifier.messaging.stream; + +import org.junit.Test; + +import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * @author Tim Ysewyn + */ +public class ContractVerifierStreamAutoConfigurationTests { + + private ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withConfiguration( + AutoConfigurations.of(ContractVerifierStreamAutoConfiguration.class)); + + @Test + public void shouldCreateBeansByDefault() { + this.contextRunner.run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierHelper.class)).hasSize(1); + assertThat(context.getBeansOfType(StreamStubMessages.class)).hasSize(1); + }); + } + + @Test + public void shouldNotCreateBeansWhenDisabled() { + this.contextRunner.withPropertyValues("stubrunner.stream.enabled=false") + .run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierHelper.class)) + .hasSize(0); + assertThat(context.getBeansOfType(StreamStubMessages.class)) + .hasSize(0); + }); + } + + @Test + public void shouldCreateBeansWhenExplicitlyEnabled() { + this.contextRunner.withPropertyValues("stubrunner.stream.enabled=true") + .run((context) -> { + assertThat(context.getBeansOfType(ContractVerifierHelper.class)) + .hasSize(1); + assertThat(context.getBeansOfType(StreamStubMessages.class)) + .hasSize(1); + }); + } + +} From 0b1625cac2604167605052b38c255d6b1289a7d5 Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 15 May 2020 17:26:08 +0200 Subject: [PATCH 5/6] Upgrade gradle for docker builds. Upgrade kotlin. --- .../get_dependencies.sh | 2 +- .../project/gradle/wrapper/gradle-wrapper.jar | Bin 55616 -> 58910 bytes .../project/gradlew | 31 ++++++++---------- .../project/gradlew.bat | 4 +++ pom.xml | 2 +- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/docker/spring-cloud-contract-docker/get_dependencies.sh b/docker/spring-cloud-contract-docker/get_dependencies.sh index 01b4ce49e9..ac35f0173e 100755 --- a/docker/spring-cloud-contract-docker/get_dependencies.sh +++ b/docker/spring-cloud-contract-docker/get_dependencies.sh @@ -2,7 +2,7 @@ set -e -WRAPPER_VERSION="5.6.2" +WRAPPER_VERSION="6.4" GRADLE_BIN_DIR="gradle-${WRAPPER_VERSION}-bin" GRADLE_WRAPPER_DIR="${HOME}/.gradle/wrapper/dists/${GRADLE_BIN_DIR}" CURRENT_DIR="$( pwd )" diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar index 5c2d1cf016b3885f6930543d57b744ea8c220a1a..62d4c053550b91381bbd28b1afc82d634bf73a8a 100644 GIT binary patch delta 23020 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 delta 19839 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.6.0 1.3.0 - 1.3.31 + 1.3.72 1.9.4 From 0d58b6e95465728feadd9952ee647909ddf0daf9 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Thu, 21 May 2020 13:47:21 +0200 Subject: [PATCH 6/6] Reuses the defined content type instead of overriding it with the default; fixes gh-1388 --- .../builder/JaxRsRequestMethodWhen.java | 13 ++----- .../verifier/file/ContractMetadata.groovy | 18 +++++++++- .../JaxRsClientMethodBuilderSpec.groovy | 35 +++++++++++++++++++ 3 files changed, 54 insertions(+), 12 deletions(-) diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java index ec0ba3bd30..7e4f163440 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsRequestMethodWhen.java @@ -18,7 +18,6 @@ package org.springframework.cloud.contract.verifier.builder; import org.springframework.cloud.contract.spec.internal.ExecutionProperty; import org.springframework.cloud.contract.spec.internal.FromFileProperty; -import org.springframework.cloud.contract.spec.internal.Header; import org.springframework.cloud.contract.spec.internal.Request; import org.springframework.cloud.contract.verifier.file.SingleContractMetadata; import org.springframework.cloud.contract.verifier.util.ContentType; @@ -46,9 +45,8 @@ class JaxRsRequestMethodWhen implements When, JaxRsBodyParser { ContentType type = metadata.getInputTestContentType(); String method = request.getMethod().getServerValue().toString().toLowerCase(); if (request.getBody() != null) { - String contentType = type.getMimeType(); - contentType = StringUtils.hasText(contentType) ? contentType - : getContentType(request); + String contentType = StringUtils.hasText(metadata.getDefinedInputTestContentType()) + ? metadata.getDefinedInputTestContentType() : type.getMimeType(); Object body = request.getBody().getServerValue(); String value; if (body instanceof ExecutionProperty) { @@ -73,13 +71,6 @@ class JaxRsRequestMethodWhen implements When, JaxRsBodyParser { } } - private String getContentType(Request request) { - Header contentType = request.getHeaders().getEntries().stream() - .filter(header -> "Content-Type".equalsIgnoreCase(header.getName())) - .findFirst().orElse(null); - return contentType != null ? contentType.getServerValue().toString() : ""; - } - @Override public boolean accept(SingleContractMetadata metadata) { return true; diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy index c06b40b9e8..20eeb7a2c4 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy @@ -26,12 +26,12 @@ import org.apache.commons.logging.LogFactory import org.springframework.cloud.contract.spec.Contract import org.springframework.cloud.contract.spec.internal.DslProperty +import org.springframework.cloud.contract.spec.internal.Header import org.springframework.cloud.contract.spec.internal.Headers import org.springframework.cloud.contract.verifier.util.ContentType import org.springframework.cloud.contract.verifier.util.ContentUtils import org.springframework.cloud.contract.verifier.util.NamesUtil import org.springframework.util.Assert - /** * Contains metadata for a particular file with a DSL * @@ -103,12 +103,16 @@ class SingleContractMetadata { private final File stubsFile final Contract contract private final Collection allContracts + final String definedInputStubContentType final ContentType inputStubContentType final ContentType evaluatedInputStubContentType + final String definedOutputStubContentType final ContentType outputStubContentType final ContentType evaluatedOutputStubContentType + final String definedInputTestContentType final ContentType inputTestContentType final ContentType evaluatedInputTestContentType + final String definedOutputTestContentType final ContentType outputTestContentType final ContentType evaluatedOutputTestContentType private final boolean http @@ -121,12 +125,18 @@ class SingleContractMetadata { DslProperty inputBody = inputBody(currentContract) Headers outputHeaders = outputHeaders(currentContract) DslProperty outputBody = outputBody(currentContract) + Header inputContentType = contentTypeHeader(inputHeaders) + Header outputContentType = contentTypeHeader(outputHeaders) + this.definedInputTestContentType = inputContentType != null ? inputContentType.getServerValue() : "" this.evaluatedInputTestContentType = tryToEvaluateTestContentType(inputHeaders, inputBody) this.inputTestContentType = inputBody != null ? this.evaluatedInputTestContentType : ContentType.UNKNOWN + this.definedOutputTestContentType = outputContentType != null ? outputContentType.getServerValue() : "" this.evaluatedOutputTestContentType = tryToEvaluateTestContentType(outputHeaders, outputBody) this.outputTestContentType = outputBody != null ? this.evaluatedOutputTestContentType : ContentType.UNKNOWN + this.definedInputStubContentType = inputContentType != null ? inputContentType.getClientValue() : "" this.evaluatedInputStubContentType = tryToEvaluateStubContentType(inputHeaders, inputBody) this.inputStubContentType = inputBody != null ? this.evaluatedInputStubContentType : ContentType.UNKNOWN + this.definedOutputStubContentType = outputContentType != null ? outputContentType.getClientValue() : "" this.evaluatedOutputStubContentType = tryToEvaluateStubContentType(outputHeaders, outputBody) this.outputStubContentType = outputBody != null ? this.evaluatedOutputStubContentType : ContentType.UNKNOWN this.http = currentContract.request != null @@ -134,6 +144,12 @@ class SingleContractMetadata { this.stubsFile = contractMetadata.getPath() != null ? contractMetadata.getPath().toFile() : null } + private Header contentTypeHeader(Headers headers) { + return headers == null ? null : headers.getEntries().stream() + .filter({ header -> "Content-Type".equalsIgnoreCase(header.getName()) }) + .findFirst().orElse(null) + } + private ContentType tryToEvaluateStubContentType(Headers mainHeaders, DslProperty body) { ContentType contentType = ContentUtils.evaluateClientSideContentType(mainHeaders, body?.getClientValue()) if (contentType == ContentType.DEFINED || contentType == ContentType.UNKNOWN) { diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy index bf32e5025f..62d111283d 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/JaxRsClientMethodBuilderSpec.groovy @@ -1338,6 +1338,41 @@ public class FooTest { } } + @Issue('#1388') + @Unroll + def "should keep the custom content type that includes the +json suffix [#methodBuilderName]"() { + given: + Contract contractDsl = Contract.make { + request { + method("POST") + url("/ping") + headers { + header('Content-Type': 'application/my-content-type+json') + } + body($(test(value: "test"), stub(anyNonEmptyString()))) + } + response { + status 200 + } + } + methodBuilder() + when: + String test = singleTestGenerator(contractDsl) + then: + test.contains('"application/my-content-type+json")') + !test.contains('"application/json")') + and: + SyntaxChecker.tryToCompile(methodBuilderName, test) + where: + methodBuilderName | methodBuilder + "jaxrs-spock" | { + properties.testFramework = TestFramework.SPOCK; properties.testMode = TestMode.JAXRSCLIENT + } + "jaxrs" | { + properties.testFramework = TestFramework.JUNIT; properties.testMode = TestMode.JAXRSCLIENT + } + } + @Issue('#261') @Unroll def "should not produce any additional quotes for [#methodBuilderName]"() {