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 87b738cbd0..94336fcae9 100644 Binary files a/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar differ 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 6b6ea3ab4f..62d4c05355 100644 Binary files a/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar differ diff --git a/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties b/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties index ea720f986f..4c5803d13c 100644 --- a/guides/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties +++ b/guides/gs-contract-rest/complete/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-6.4-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip diff --git a/guides/gs-contract-rest/complete/contract-rest-service/gradlew b/guides/gs-contract-rest/complete/contract-rest-service/gradlew index cccdd3d517..fbd7c51583 100755 --- a/guides/gs-contract-rest/complete/contract-rest-service/gradlew +++ b/guides/gs-contract-rest/complete/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="" +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/complete/contract-rest-service/gradlew.bat b/guides/gs-contract-rest/complete/contract-rest-service/gradlew.bat index f9553162f1..5093609d51 100644 --- a/guides/gs-contract-rest/complete/contract-rest-service/gradlew.bat +++ b/guides/gs-contract-rest/complete/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= +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/complete/gradle/wrapper/gradle-wrapper.jar b/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar index 87b738cbd0..94336fcae9 100644 Binary files a/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar differ 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 87b738cbd0..62d4c05355 100644 Binary files a/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar differ 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 87b738cbd0..62d4c05355 100644 Binary files a/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar differ 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 87b738cbd0..62d4c05355 100644 Binary files a/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar and b/guides/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar differ 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 87b738cbd0..5c2d1cf016 100644 Binary files a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.jar and b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.jar differ diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.properties index b0acbdcd73..4c5803d13c 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-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/gradlew b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradlew index af6708ff22..8e25e6c19d 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradlew +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/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" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradlew.bat b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradlew.bat index 0f8d5937c4..24467a141f 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/gradlew.bat +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/bootSimple/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 @@ -14,7 +30,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="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle index ddcb8b642c..21c9c7db7d 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/build.gradle @@ -1,5 +1,5 @@ /* - * Copyright 2013-2019 the original author or authors. + * Copyright 2013-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. @@ -45,15 +45,15 @@ subprojects { } dependencies { - testCompile "org.codehaus.groovy:groovy" - testCompile("org.spockframework:spock-core:$spockVersion") { + testImplementation "org.codehaus.groovy:groovy" + testImplementation("org.spockframework:spock-core:$spockVersion") { exclude(group: 'org.codehaus.groovy') } - testCompile "junit:junit:4.12" - testCompile "com.github.tomakehurst:wiremock:${wiremockVersion}" - testCompile "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" - testCompile "org.assertj:assertj-core:2.4.1" - testCompile "org.springframework.cloud:spring-cloud-contract-verifier:${verifierVersion}" + testImplementation "junit:junit:4.12" + testImplementation "com.github.tomakehurst:wiremock:${wiremockVersion}" + testImplementation "com.toomuchcoding.jsonassert:jsonassert:${jsonAssertVersion}" + testImplementation "org.assertj:assertj-core:2.4.1" + testImplementation "org.springframework.cloud:spring-cloud-contract-verifier:${verifierVersion}" } } @@ -106,20 +106,20 @@ configure([project(':fraudDetectionService'), project(':loanApplicationService') } dependencies { - compile("org.springframework.boot:spring-boot-starter-web") { + implementation("org.springframework.boot:spring-boot-starter-web") { exclude module: "spring-boot-starter-tomcat" } - compile("org.springframework.boot:spring-boot-starter-jetty") - compile("org.springframework.boot:spring-boot-starter-actuator") + implementation("org.springframework.boot:spring-boot-starter-jetty") + implementation("org.springframework.boot:spring-boot-starter-actuator") testRuntime("org.spockframework:spock-spring:$spockVersion") { exclude(group: 'org.codehaus.groovy') } - testCompile "org.mockito:mockito-core" - testCompile "org.springframework:spring-test" - testCompile "org.springframework.boot:spring-boot-test" - testCompile "io.rest-assured:rest-assured:$restAssuredVersion" - testCompile "io.rest-assured:spring-mock-mvc:$restAssuredVersion" + testImplementation "org.mockito:mockito-core" + testImplementation "org.springframework:spring-test" + testImplementation "org.springframework.boot:spring-boot-test" + testImplementation "io.rest-assured:rest-assured:$restAssuredVersion" + testImplementation "io.rest-assured:spring-mock-mvc:$restAssuredVersion" } task cleanup(type: Delete) { diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.jar b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.jar index 87b738cbd0..5c2d1cf016 100644 Binary files a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.jar and b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.jar differ diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.properties index b0acbdcd73..4c5803d13c 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-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/scenarioProject/gradlew b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradlew index af6708ff22..8e25e6c19d 100755 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradlew +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/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" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradlew.bat b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradlew.bat index 0f8d5937c4..24467a141f 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradlew.bat +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/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 @@ -14,7 +30,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="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json deleted file mode 100644 index fe037dc7ef..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "request": { - "method": "PUT", - "headers": { - "Content-Type": { - "equalTo": "application/vnd.fraud.v1+json" - } - }, - "url": "/fraudcheck", - "bodyPatterns": [ - { - "matches": "{\"clientPesel\":\"[0-9]{10}\",\"loanAmount\":\"99999\"}" - } - ] - }, - "response": { - "status": 200, - "headers": { - "Content-Type": "application/vnd.fraud.v1+json" - }, - "body": "{\"fraudCheckStatus\":\"FRAUD\",\"rejectionReason\":\"Amount too high\"}" - } -} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json deleted file mode 100644 index 8b89b6d54e..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "request": { - "method": "PUT", - "headers": { - "Content-Type": { - "equalTo": "application/vnd.fraud.v1+json" - } - }, - "url": "/fraudcheck", - "bodyPatterns": [ - { - "matches": "{\"clientPesel\":\"[0-9]{10}\",\"loanAmount\":\"123.123\"}" - } - ] - }, - "response": { - "status": 200, - "headers": { - "Content-Type": "application/vnd.fraud.v1+json" - }, - "body": "{\"fraudCheckStatus\":\"OK\",\"rejectionReason\":null}" - } -} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.jar b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.jar index 87b738cbd0..5c2d1cf016 100644 Binary files a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.jar and b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.jar differ diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.properties index b0acbdcd73..4c5803d13c 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.properties +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-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/scenarioProjectKotlin/gradlew b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew old mode 100644 new mode 100755 index af6708ff22..8e25e6c19d --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/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" diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew.bat b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew.bat index 6d57edc706..9618d8d960 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradlew.bat +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/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 @@ -14,7 +30,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="-Xmx64m" "-Xms64m" @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json deleted file mode 100644 index fe037dc7ef..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsFraud.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "request": { - "method": "PUT", - "headers": { - "Content-Type": { - "equalTo": "application/vnd.fraud.v1+json" - } - }, - "url": "/fraudcheck", - "bodyPatterns": [ - { - "matches": "{\"clientPesel\":\"[0-9]{10}\",\"loanAmount\":\"99999\"}" - } - ] - }, - "response": { - "status": 200, - "headers": { - "Content-Type": "application/vnd.fraud.v1+json" - }, - "body": "{\"fraudCheckStatus\":\"FRAUD\",\"rejectionReason\":\"Amount too high\"}" - } -} diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json deleted file mode 100644 index 8b89b6d54e..0000000000 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/loanApplicationService/src/test/resources/mappings/fraudDetectionService/shouldMarkClientAsNotFraud.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "request": { - "method": "PUT", - "headers": { - "Content-Type": { - "equalTo": "application/vnd.fraud.v1+json" - } - }, - "url": "/fraudcheck", - "bodyPatterns": [ - { - "matches": "{\"clientPesel\":\"[0-9]{10}\",\"loanAmount\":\"123.123\"}" - } - ] - }, - "response": { - "status": 200, - "headers": { - "Content-Type": "application/vnd.fraud.v1+json" - }, - "body": "{\"fraudCheckStatus\":\"OK\",\"rejectionReason\":null}" - } -} diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml index 3a3d788db5..a790a02fe2 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/src/checkstyle/checkstyle-suppressions.xml @@ -47,4 +47,5 @@ +