diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar index 87b738cbd0..5c2d1cf016 100644 Binary files a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar and b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.jar differ diff --git a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties index b0acbdcd73..e0b3fb8d70 100644 --- a/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties +++ b/docker/spring-cloud-contract-docker/project/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/docker/spring-cloud-contract-docker/project/gradlew b/docker/spring-cloud-contract-docker/project/gradlew index af6708ff22..8e25e6c19d 100755 --- a/docker/spring-cloud-contract-docker/project/gradlew +++ b/docker/spring-cloud-contract-docker/project/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/docker/spring-cloud-contract-docker/project/gradlew.bat b/docker/spring-cloud-contract-docker/project/gradlew.bat index 0f8d5937c4..24467a141f 100644 --- a/docker/spring-cloud-contract-docker/project/gradlew.bat +++ b/docker/spring-cloud-contract-docker/project/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/samples/standalone/yml/http-server/pom.xml b/samples/standalone/yml/http-server/pom.xml index 52c0a71ee1..079a1af92e 100644 --- a/samples/standalone/yml/http-server/pom.xml +++ b/samples/standalone/yml/http-server/pom.xml @@ -24,6 +24,7 @@ 2.2.0.BUILD-SNAPSHOT Hoxton.BUILD-SNAPSHOT + 3.2.0 @@ -42,6 +43,46 @@ test + + io.rest-assured + spring-mock-mvc + ${rest-assured.version} + + + spring-web + org.springframework + + + spring-webmvc + org.springframework + + + spring-test + org.springframework + + + + + io.rest-assured + spring-web-test-client + ${rest-assured.version} + + + spring-context + org.springframework + + + spring-webflux + org.springframework + + + + + io.rest-assured + rest-assured + ${rest-assured.version} + + org.springframework.cloud diff --git a/spring-cloud-contract-dependencies/pom.xml b/spring-cloud-contract-dependencies/pom.xml index 40452d176d..34dce5aa17 100644 --- a/spring-cloud-contract-dependencies/pom.xml +++ b/spring-cloud-contract-dependencies/pom.xml @@ -17,7 +17,7 @@ 2.23.2 0.4.13 - 3.2.0 + 4.0.0 3.3.9 @@ -135,6 +135,26 @@ io.rest-assured rest-assured ${rest-assured.version} + + + org.codehaus.groovy + groovy + + + org.codehaus.groovy + groovy-xml + + + + + io.rest-assured + json-path + ${rest-assured.version} + + + io.rest-assured + xml-path + ${rest-assured.version} org.apache.maven diff --git a/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/FromFileProperty.groovy b/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/FromFileProperty.groovy index 85456c1363..a501beb9e4 100644 --- a/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/FromFileProperty.groovy +++ b/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/FromFileProperty.groovy @@ -21,7 +21,6 @@ import java.nio.charset.Charset import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString - /** * Represents a property that will become a File content * @@ -51,7 +50,9 @@ class FromFileProperty implements Serializable { } boolean isByte() { - return this.type == byte[] + // need to take class from a Groovy file, otherwise + // boolean#getAt(List) static compilation issue is thrown + return this.type == GroovyClass.BYTE_CLASS } String asString() { diff --git a/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyClass.java b/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyClass.java new file mode 100644 index 0000000000..3dc244fa90 --- /dev/null +++ b/spring-cloud-contract-spec/src/main/groovy/org/springframework/cloud/contract/spec/internal/GroovyClass.java @@ -0,0 +1,27 @@ +/* + * Copyright 2013-2019 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.cloud.contract.spec.internal; + +final class GroovyClass { + + private GroovyClass() { + throw new IllegalStateException("Can't instantiate a utility class"); + } + + public static Class BYTE_CLASS = byte[].class; + +} diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy index f3f22ea8c8..2b33695997 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/SyntaxChecker.groovy @@ -30,12 +30,6 @@ import com.jayway.jsonpath.JsonPath import com.toomuchcoding.jsonassert.JsonAssertion import groovy.transform.CompileStatic import groovy.util.logging.Commons -import io.restassured.RestAssured -import io.restassured.module.mockmvc.RestAssuredMockMvc -import io.restassured.module.webtestclient.RestAssuredWebTestClient -import io.restassured.module.webtestclient.response.WebTestClientResponse -import io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification -import io.restassured.response.ResponseOptions import org.codehaus.groovy.control.CompilerConfiguration import org.codehaus.groovy.control.customizers.ASTTransformationCustomizer import org.codehaus.groovy.control.customizers.ImportCustomizer @@ -63,7 +57,7 @@ class SyntaxChecker { private static final String[] DEFAULT_IMPORTS = [ Contract.name, - ResponseOptions.name, + "io.restassured.response.ResponseOptions", 'io.restassured.module.mockmvc.specification.*', 'io.restassured.module.mockmvc.*', Test.name, @@ -76,8 +70,8 @@ class SyntaxChecker { ContractVerifierMessaging.name, WebTarget.name, Response.name, - WebTestClientRequestSpecification.name, - WebTestClientResponse.name, + "io.restassured.module.webtestclient.specification.WebTestClientRequestSpecification", + "io.restassured.module.webtestclient.response.WebTestClientResponse", DocumentBuilder.name, DocumentBuilderFactory.name, Document.name, @@ -90,9 +84,9 @@ class SyntaxChecker { }.join("\n") private static final String STATIC_IMPORTS = [ - "${RestAssuredMockMvc.name}.given", - "${RestAssuredMockMvc.name}.when", - "${RestAssured.name}.*", + "io.restassured.module.mockmvc.RestAssuredMockMvc.given", + "io.restassured.module.mockmvc.RestAssuredMockMvc.when", + "io.restassured.RestAssured.*", "${Entity.name}.*", "${ContractVerifierUtil.name}.*", "${ContractVerifierMessagingUtil.name}.headers", @@ -101,7 +95,7 @@ class SyntaxChecker { ].collect { "import static ${it};" }.join("\n") private static final String WEB_TEST_CLIENT_STATIC_IMPORTS = [ - "${RestAssuredWebTestClient.name}.*", + "io.restassured.module.webtestclient.RestAssuredWebTestClient.*", "${Entity.name}.*", "${ContractVerifierUtil.name}.*", "${ContractVerifierMessagingUtil.name}.headers", diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java index 4b086d45d0..7b4aacb399 100644 --- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java +++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/WiremockServerRestAssuredApplicationTests.java @@ -57,14 +57,14 @@ public class WiremockServerRestAssuredApplicationTests { @Test public void contextLoads() throws Exception { given().port(this.port).when().get("/resource").then().assertThat() - .statusCode(is(200)).content(equalTo("Hello World")); + .statusCode(is(200)).body(equalTo("Hello World")); } @Test public void statusIsMaintained() throws Exception { given(this.documentationSpec.port(this.port)).filter(document("status")).when() .get("/status").then().assertThat().statusCode(is(202)) - .content(equalTo("Hello World")); + .body(equalTo("Hello World")); } @Configuration