diff --git a/README.adoc b/README.adoc
index 075d26c24f..270a5767a7 100644
--- a/README.adoc
+++ b/README.adoc
@@ -1109,7 +1109,7 @@ Example of a `pom.xml` inside the `server` folder.
org.springframework.boot
spring-boot-starter-parent
- 1.5.4.BUILD-SNAPSHOT
+ 1.5.4.RELEASE
diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java
index 7cf08453e8..4c590de9ee 100644
--- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java
+++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java
@@ -40,12 +40,6 @@ public class StubRunner implements StubRunning {
private final StubRunnerOptions stubRunnerOptions;
private final StubRunnerExecutor localStubRunner;
- @Deprecated
- StubRunner(Arguments arguments) {
- this(arguments.getStubRunnerOptions(), arguments.getRepositoryPath(),
- arguments.getStub());
- }
-
public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath,
StubConfiguration stubsConfiguration) {
this(stubRunnerOptions, repositoryPath, stubsConfiguration,
diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java
index 53fc990c5e..c7b6c8b6b3 100644
--- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java
+++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerOptionsBuilder.java
@@ -100,14 +100,6 @@ public class StubRunnerOptionsBuilder {
return this;
}
- /**
- * @deprecated there is no context path for the stub server
- */
- @Deprecated
- public StubRunnerOptionsBuilder withContextPath(String contextPath) {
- return this;
- }
-
public StubRunnerOptionsBuilder withOptions(StubRunnerOptions options) {
this.minPortValue = options.minPortValue;
this.maxPortValue = options.maxPortValue;
diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerSpec.groovy b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerSpec.groovy
index 35b77372d3..7d2a238a0f 100644
--- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerSpec.groovy
+++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerSpec.groovy
@@ -26,7 +26,9 @@ class StubRunnerSpec extends Specification {
def 'should provide stub URL for provided groupid and artifactId'() {
given:
- StubRunner runner = new StubRunner(argumentsWithProjectDefinition())
+ Arguments args = argumentsWithProjectDefinition()
+ StubRunner runner = new StubRunner(args.stubRunnerOptions,
+ args.repositoryPath, args.stub)
when:
runner.runStubs()
then:
@@ -37,7 +39,9 @@ class StubRunnerSpec extends Specification {
def 'should provide stub URL if only artifactId was passed'() {
given:
- StubRunner runner = new StubRunner(argumentsWithProjectDefinition())
+ Arguments args = argumentsWithProjectDefinition()
+ StubRunner runner = new StubRunner(args.stubRunnerOptions,
+ args.repositoryPath, args.stub)
when:
runner.runStubs()
then:
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/SingleFileConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/SingleFileConverter.groovy
deleted file mode 100644
index c63cfd9018..0000000000
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/converter/SingleFileConverter.groovy
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright 2013-2017 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.cloud.contract.verifier.converter
-
-import groovy.transform.CompileStatic
-import org.springframework.cloud.contract.spec.Contract
-import org.springframework.cloud.contract.verifier.file.ContractMetadata
-
-/**
- * Converts contracts into their stub representation.
- *
- * @since 1.0.0
- * @deprecated use {@link StubGenerator}
- */
-@CompileStatic
-@Deprecated
-interface SingleFileConverter {
-
- /**
- * Returns {@code true} if the converter can handle the file to convert it into a stub.
- */
- boolean canHandleFileName(String fileName)
-
- /**
- * Returns the content of the converted file. The content will be a single stub.
- */
- @Deprecated
- String convertContent(String rootName, ContractMetadata content)
-
- /**
- * Returns the collection of converted contracts into stubs. One contract can
- * result in multiple stubs.
- */
- Map convertContents(String rootName, ContractMetadata content)
-
- /**
- * Returns the name of the converted stub file. If you have multiple contracts
- * in a single file then a prefix will be added to the generated file. If you
- * provide the {@link Contract#name} field then that field will override the
- * generated file name.
- *
- * Example: name of file with 2 contracts is {@code foo.groovy}, it will be
- * converted by the implementation to {@code foo.json}. The recursive file
- * converter will create two files {@code 0_foo.json} and {@code 1_foo.json}
- */
- String generateOutputFileNameForInput(String inputFileName)
-}
\ No newline at end of file
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.groovy
index 6f46113bbb..474c3cc3e4 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverter.groovy
@@ -32,12 +32,6 @@ import java.nio.charset.StandardCharsets
@CompileStatic
class DslToWireMockClientConverter extends DslToWireMockConverter {
- @Deprecated
- String convertContent(String rootName, ContractMetadata contract) {
- return convertASingleContract(rootName, contract, contract.convertedContract.first() ?: createGroovyDSLFromStringContent(
- contract.path.getText(StandardCharsets.UTF_8.toString())).first())
- }
-
private String convertASingleContract(String rootName, ContractMetadata contract, Contract dsl) {
return new WireMockStubStrategy(rootName, contract, dsl).toWireMockClientStub()
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverter.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverter.groovy
deleted file mode 100644
index 1974030fa7..0000000000
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/groovy/org/springframework/cloud/contract/verifier/wiremock/RecursiveFilesConverter.groovy
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright 2013-2017 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.cloud.contract.verifier.wiremock
-
-import com.google.common.collect.ListMultimap
-import groovy.transform.CompileStatic
-import groovy.util.logging.Slf4j
-import org.springframework.cloud.contract.spec.Contract
-import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
-import org.springframework.cloud.contract.verifier.converter.ConversionContractVerifierException
-import org.springframework.cloud.contract.verifier.converter.SingleFileConverter
-import org.springframework.cloud.contract.verifier.converter.StubGenerator
-import org.springframework.cloud.contract.verifier.converter.StubGeneratorProvider
-import org.springframework.cloud.contract.verifier.file.ContractFileScanner
-import org.springframework.cloud.contract.verifier.file.ContractMetadata
-import org.springframework.cloud.contract.verifier.util.NamesUtil
-
-import java.nio.charset.StandardCharsets
-import java.nio.file.Files
-import java.nio.file.Path
-import java.nio.file.Paths
-
-/**
- * Recursively converts contracts into their stub representations
- *
- * @since 1.0.0
- * @deprecated use {@link org.springframework.cloud.contract.verifier.converter.RecursiveFilesConverter}
- */
-@Slf4j
-@CompileStatic
-@Deprecated
-class RecursiveFilesConverter {
-
- private final StubGeneratorProvider holder
- private final ContractVerifierConfigProperties properties
- private final File outMappingsDir
-
- RecursiveFilesConverter(ContractVerifierConfigProperties properties, StubGeneratorProvider holder = null) {
- this.properties = properties
- this.outMappingsDir = properties.stubsOutputDir
- this.holder = holder ?: new StubGeneratorProvider()
- }
-
- RecursiveFilesConverter(ContractVerifierConfigProperties properties, File outMappingsDir, StubGeneratorProvider holder = null) {
- this.properties = properties
- this.outMappingsDir = outMappingsDir
- this.holder = holder ?: new StubGeneratorProvider()
- }
-
- @Deprecated
- RecursiveFilesConverter(SingleFileConverter singleFileConverter, ContractVerifierConfigProperties properties) {
- this.properties = properties
- this.outMappingsDir = properties.stubsOutputDir
- this.holder = new StubGeneratorProvider()
- }
-
- @Deprecated
- RecursiveFilesConverter(SingleFileConverter singleFileConverter, ContractVerifierConfigProperties properties, File outMappingsDir) {
- this.properties = properties
- this.outMappingsDir = outMappingsDir
- this.holder = new StubGeneratorProvider()
- }
-
- void processFiles() {
- ContractFileScanner scanner = new ContractFileScanner(properties.contractsDslDir,
- properties.excludedFiles as Set, [] as Set, properties.includedContracts)
- ListMultimap contracts = scanner.findContracts()
- if (log.isDebugEnabled()) {
- log.debug("Found the following contracts ${contracts}")
- log.debug("Exclude build folder: [${properties.isExcludeBuildFolders()}]")
- }
- contracts.asMap().entrySet().each { entry ->
- entry.value.each { ContractMetadata contract ->
- File sourceFile = contract.path.toFile()
- StubGenerator stubGenerator = holder.converterForName(sourceFile.name).first()
- try {
- String path = sourceFile.path
- if (properties.isExcludeBuildFolders() && (matchesPath(path, "target") || matchesPath(path, "build"))) {
- if (log.isDebugEnabled()) {
- log.debug("Exclude build folder is set. Path [${path}] contains [target] or [build] in its path")
- }
- return
- }
- if (!contract.convertedContract && !stubGenerator) {
- return
- }
- int contractsSize = contract.convertedContract.size()
- Map convertedContent = stubGenerator.convertContents(entry.key.last().toString(), contract)
- if (!convertedContent) {
- return
- }
- convertedContent.entrySet().eachWithIndex { Map.Entry content, int index ->
- Contract dsl = content.key
- String converted = content.value
- Path absoluteTargetPath = createAndReturnTargetDirectory(sourceFile)
- File newJsonFile = createTargetFileWithProperName(stubGenerator, absoluteTargetPath,
- sourceFile, contractsSize, index, dsl)
- newJsonFile.setText(converted, StandardCharsets.UTF_8.toString())
- }
- } catch (Exception e) {
- throw new ConversionContractVerifierException("Unable to make conversion of ${sourceFile.name}", e)
- }
- }
- }
- }
-
- private boolean matchesPath(String path, String folder) {
- return path.matches("^.*${File.separator}${folder}${File.separator}.*\$")
- }
-
- private Path createAndReturnTargetDirectory(File sourceFile) {
- Path relativePath = Paths.get(properties.contractsDslDir.toURI()).relativize(sourceFile.parentFile.toPath())
- Path absoluteTargetPath = outMappingsDir.toPath().resolve(relativePath)
- Files.createDirectories(absoluteTargetPath)
- return absoluteTargetPath
- }
-
- private File createTargetFileWithProperName(StubGenerator stubGenerator, Path absoluteTargetPath,
- File sourceFile, int contractsSize, int index, Contract dsl) {
- String name = generateName(dsl, contractsSize, stubGenerator, sourceFile, index)
- File newJsonFile = new File(absoluteTargetPath.toFile(), name)
- log.info("Creating new stub [$newJsonFile.path]")
- return newJsonFile
- }
-
- private String generateName(Contract dsl, int contractsSize, StubGenerator converter,
- File sourceFile, int index) {
- String generatedName = converter.generateOutputFileNameForInput(sourceFile.name)
- String extension = NamesUtil.afterLastDot(generatedName)
- if (dsl.name) {
- return "${dsl.name}.${extension}"
- } else if (contractsSize == 1) {
- return generatedName
- }
- return "${index}_${generatedName}"
- }
-}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy
index 46e94b222f..f848ad78bd 100755
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/DslToWireMockClientConverterSpec.groovy
@@ -27,6 +27,7 @@ import org.springframework.boot.test.web.client.TestRestTemplate
import org.springframework.cloud.contract.verifier.dsl.wiremock.WireMockStubMapping
import org.springframework.cloud.contract.spec.Contract
import org.springframework.cloud.contract.verifier.file.ContractMetadata
+import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter
import org.springframework.http.RequestEntity
import org.springframework.util.SocketUtils
import spock.lang.Issue
@@ -63,7 +64,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
""")
when:
- String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals('''
{"request":{"method":"PUT","urlPattern":"/[0-9]{2}"},"response":{"status":200}}
@@ -98,7 +100,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
''')
when:
- Map convertedContents = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null))
+ Map convertedContents = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file)))
then:
convertedContents.size() == 2
JSONAssert.assertEquals(jsonResponse(1), convertedContents.values().first(), false)
@@ -137,7 +140,9 @@ class DslToWireMockClientConverterSpec extends Specification {
}
''')
when:
- Map convertedContents = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null))
+ Map convertedContents = converter.convertContents("Test",
+ new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file)))
then:
convertedContents.isEmpty()
}
@@ -161,7 +166,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
""")
when:
- String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals('''
{"request":{
@@ -229,7 +235,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
""")
when:
- String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals('''
{
@@ -346,7 +353,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
""")
when:
- String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals('''
{"request":{"urlPath":"/foos","method":"GET"},"response":{"body":"[{\\"id\\":\\"123\\"},{\\"id\\":\\"567\\"}]"}}
@@ -384,7 +392,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
""")
when:
- String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
noExceptionThrown()
and:
@@ -430,7 +439,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
''')
when:
- String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null)).values().first()
+ String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals( // tag::wiremock[]
'''
@@ -584,7 +594,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
''')
when:
- String json = converter.convertContent("Test", new ContractMetadata(file.toPath(), false, 0, null))
+ String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals(//tag::matchers[]
'''
@@ -737,7 +748,8 @@ class DslToWireMockClientConverterSpec extends Specification {
}
''')
when:
- String json = converter.convertContent("Test", new ContractMetadata(file.toPath(), false, 0, null))
+ String json = converter.convertContents("Test", new ContractMetadata(file.toPath(), false, 0, null,
+ ContractVerifierDslConverter.convertAsCollection(file))).values().first()
then:
JSONAssert.assertEquals(
'''
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy
index 5371016d6f..0c6d6f3c2c 100755
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverterSpec.groovy
@@ -88,12 +88,12 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- def a = ContractVerifierDslConverter.convert(
+ def a = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
}""")
def b = expectedGroovyDsl
- a == b
+ a.first() == b
}
@@ -143,12 +143,12 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- def a = ContractVerifierDslConverter.convert(
+ def a = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
}""")
def b = expectedGroovyDsl
- (a.request.url.clientValue as Pattern).pattern() == (b.request.url.clientValue as Pattern).pattern()
+ (a.first().request.url.clientValue as Pattern).pattern() == (b.request.url.clientValue as Pattern).pattern()
}
def 'should convert WireMock stub with response body containing integer'() {
@@ -196,10 +196,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- ContractVerifierDslConverter.convert(
+ ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""") == expectedGroovyDsl
+ }""").first() == expectedGroovyDsl
}
def 'should convert WireMock stub with response body as a list'() {
@@ -253,10 +253,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- ContractVerifierDslConverter.convert(
+ ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""") == expectedGroovyDsl
+ }""").first() == expectedGroovyDsl
}
def 'should convert WireMock stub with response body containing a nested list'() {
@@ -318,10 +318,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- ContractVerifierDslConverter.convert(
+ ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""") == expectedGroovyDsl
+ }""").first() == expectedGroovyDsl
}
def 'should convert WireMock stub with request body checking equality to Json'() {
@@ -356,10 +356,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
evaluatedGroovyDsl == expectedGroovyDsl
}
@@ -396,10 +396,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
(evaluatedGroovyDsl.request.body.clientValue as Pattern).pattern() == (expectedGroovyDsl.request.body.clientValue as Pattern).pattern()
}
@@ -437,10 +437,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
evaluatedGroovyDsl == expectedGroovyDsl
}
@@ -477,10 +477,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
evaluatedGroovyDsl == expectedGroovyDsl
}
@@ -517,10 +517,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
(evaluatedGroovyDsl.request.body.clientValue as Pattern).pattern() == (expectedGroovyDsl.request.body.clientValue as Pattern).pattern()
}
@@ -555,10 +555,10 @@ class WireMockToDslConverterSpec extends Specification {
when:
String groovyDsl = WireMockToDslConverter.fromWireMockStub(wireMockStub)
then:
- Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convert(
+ Contract evaluatedGroovyDsl = ContractVerifierDslConverter.convertAsCollection(
"""org.springframework.cloud.contract.spec.Contract.make {
$groovyDsl
- }""")
+ }""").first()
and:
evaluatedGroovyDsl == expectedGroovyDsl
}
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WiremockScenarioConverterSpec.groovy b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WiremockScenarioConverterSpec.groovy
index 9b0ebef7fa..40636a5adb 100755
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WiremockScenarioConverterSpec.groovy
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/test/groovy/org/springframework/cloud/contract/verifier/wiremock/WiremockScenarioConverterSpec.groovy
@@ -17,6 +17,7 @@
package org.springframework.cloud.contract.verifier.wiremock
import org.springframework.cloud.contract.verifier.file.ContractMetadata
+import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter
import spock.lang.Specification
import java.nio.file.Path
@@ -29,7 +30,8 @@ class WiremockScenarioConverterSpec extends Specification {
DslToWireMockClientConverter converter = new DslToWireMockClientConverter()
Path dsl = Paths.get(this.getClass().getResource("/converter/scenario/main_scenario/01_login.groovy").toURI())
when:
- String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 0)).values().first()
+ String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 0,
+ ContractVerifierDslConverter.convertAsCollection(dsl.toFile()))).values().first()
then:
content.contains('"requiredScenarioState" : "Started"')
content.contains('"newScenarioState" : "Step1"')
@@ -41,7 +43,8 @@ class WiremockScenarioConverterSpec extends Specification {
DslToWireMockClientConverter converter = new DslToWireMockClientConverter()
Path dsl = Paths.get(this.getClass().getResource("/converter/scenario/main_scenario/02_showCart.groovy").toURI())
when:
- String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 1)).values().first()
+ String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 1,
+ ContractVerifierDslConverter.convertAsCollection(dsl.toFile()))).values().first()
then:
content.contains('"requiredScenarioState" : "Step1"')
content.contains('"newScenarioState" : "Step2"')
@@ -53,7 +56,8 @@ class WiremockScenarioConverterSpec extends Specification {
DslToWireMockClientConverter converter = new DslToWireMockClientConverter()
Path dsl = Paths.get(this.getClass().getResource("/converter/scenario/main_scenario/03_logout.groovy").toURI())
when:
- String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 2)).values().first()
+ String content = converter.convertContents("Test", new ContractMetadata(dsl, false, 3, 2,
+ ContractVerifierDslConverter.convertAsCollection(dsl.toFile()))).values().first()
then:
content.contains('"requiredScenarioState" : "Step2"')
!content.contains('"newScenarioState"')
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/pom.xml
index defb32fa49..7c8d1ac407 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/pom.xml
@@ -142,6 +142,11 @@
asciidoctor-maven-plugin
1.5.3
+
+ commons-lang
+ commons-lang
+ 2.6
+
diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilder.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilder.groovy
index 9d31fcff7c..d812f14f4f 100644
--- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilder.groovy
+++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/MethodBodyBuilder.groovy
@@ -302,16 +302,6 @@ abstract class MethodBodyBuilder {
bb.unindent()
}
- /**
- * Builds the response body verification part. The code will differ depending on the
- * ContentType, type of response etc. The result will be appended to {@link BlockBuilder}
- * @deprecated - use {@link MethodBodyBuilder#validateResponseBodyBlock(org.springframework.cloud.contract.verifier.builder.BlockBuilder, org.springframework.cloud.contract.spec.internal.BodyMatchers, java.lang.Object)}
- */
- @Deprecated
- protected void validateResponseBodyBlock(BlockBuilder bb, Object responseBody) {
- validateResponseBodyBlock(bb, null, responseBody)
- }
-
/**
* Builds the response body verification part. The code will differ depending on the
* ContentType, type of response etc. The result will be appended to {@link BlockBuilder}
diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy
index 11bcc55b86..d666ccdd93 100644
--- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy
+++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/file/ContractMetadata.groovy
@@ -55,11 +55,6 @@ class ContractMetadata {
*/
final Collection convertedContract = []
- @Deprecated
- ContractMetadata(Path path, boolean ignored, int groupSize, Integer order) {
- this(path, ignored, groupSize, order, ContractVerifierDslConverter.convertAsCollection(path.toFile()))
- }
-
ContractMetadata(Path path, boolean ignored, int groupSize, Integer order, Contract convertedContract) {
this(path, ignored, groupSize, order, [convertedContract])
}
diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.groovy
index e0300241f1..c1de53f32f 100644
--- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.groovy
+++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverter.groovy
@@ -32,26 +32,6 @@ import org.springframework.cloud.contract.spec.Contract
@Slf4j
class ContractVerifierDslConverter {
- @Deprecated
- static Contract convert(String dsl) {
- try {
- return groovyShell().evaluate(dsl) as Contract
- } catch (Exception e) {
- log.error("Exception occurred while trying to evaluate the contract", e)
- throw new DslParseException(e)
- }
- }
-
- @Deprecated
- static Contract convert(File dsl) {
- try {
- return groovyShell().evaluate(dsl) as Contract
- } catch (Exception e) {
- log.error("Exception occurred while trying to evaluate the contract", e)
- throw new DslParseException(e)
- }
- }
-
static Collection convertAsCollection(String dsl) {
try {
Object object = groovyShell().evaluate(dsl)
diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGeneratorSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGeneratorSpec.groovy
index a93bbe6cc6..9d69643b11 100644
--- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGeneratorSpec.groovy
+++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGeneratorSpec.groovy
@@ -22,6 +22,7 @@ import org.springframework.cloud.contract.verifier.TestGenerator
import org.springframework.cloud.contract.verifier.config.ContractVerifierConfigProperties
import org.springframework.cloud.contract.verifier.config.TestMode
import org.springframework.cloud.contract.verifier.file.ContractMetadata
+import org.springframework.cloud.contract.verifier.util.ContractVerifierDslConverter
import org.springframework.cloud.contract.verifier.util.SyntaxChecker
import org.springframework.util.StringUtils
import spock.lang.Issue
@@ -186,7 +187,8 @@ class SingleTestGeneratorSpec extends Specification {
ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties()
properties.targetFramework = testFramework
properties.testMode = mode
- ContractMetadata contract = new ContractMetadata(file.toPath(), true, 1, 2)
+ ContractMetadata contract = new ContractMetadata(file.toPath(), true, 1, 2,
+ ContractVerifierDslConverter.convertAsCollection(file) )
contract.ignored >> true
contract.order >> 2
JavaTestGenerator testGenerator = new JavaTestGenerator(checker: new ClassPresenceChecker() {
@@ -255,10 +257,12 @@ class SingleTestGeneratorSpec extends Specification {
and:
ContractVerifierConfigProperties properties = new ContractVerifierConfigProperties()
properties.targetFramework = testFramework
- ContractMetadata contract = new ContractMetadata(file.toPath(), false, 1, null)
+ ContractMetadata contract = new ContractMetadata(file.toPath(), false, 1, null,
+ ContractVerifierDslConverter.convertAsCollection(file) )
contract.ignored >> false
and:
- ContractMetadata contract2 = new ContractMetadata(file2.toPath(), false, 1, null)
+ ContractMetadata contract2 = new ContractMetadata(file2.toPath(), false, 1, null,
+ ContractVerifierDslConverter.convertAsCollection(file2) )
contract2.ignored >> false
and:
JavaTestGenerator testGenerator = new JavaTestGenerator()
@@ -440,7 +444,8 @@ class SingleTestGeneratorSpec extends Specification {
properties.testMode = TestMode.EXPLICIT
properties.baseClassForTests = "test.ContextPathTestingBaseClass"
and:
- ContractMetadata contract = new ContractMetadata(file.toPath(), false, 1, null)
+ ContractMetadata contract = new ContractMetadata(file.toPath(), false, 1,
+ null, ContractVerifierDslConverter.convertAsCollection(file))
and:
SingleTestGenerator testGenerator = new JavaTestGenerator()
when:
diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverterSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverterSpec.groovy
index f7980b63d9..371cd656e1 100644
--- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverterSpec.groovy
+++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/util/ContractVerifierDslConverterSpec.groovy
@@ -69,20 +69,6 @@ class ContractVerifierDslConverterSpec extends Specification {
}
}
- def "should convert file to a Contract"() {
- when:
- Contract contract = ContractVerifierDslConverter.convert(singleContract)
- then:
- contract == expectedSingleContract
- }
-
- def "should throw exception when invalid file is parsed"() {
- when:
- ContractVerifierDslConverter.convert(invalidContract)
- then:
- thrown(DslParseException)
- }
-
def "should convert file to a list of Contracts"() {
when:
List contract = ContractVerifierDslConverter.convertAsCollection(multipleContracts)
@@ -90,20 +76,6 @@ class ContractVerifierDslConverterSpec extends Specification {
contract == expectedMultipleContracts
}
- def "should throw exception when invalid text is parsed"() {
- when:
- ContractVerifierDslConverter.convert(invalidContract.text)
- then:
- thrown(DslParseException)
- }
-
- def "should convert text to a Contract"() {
- when:
- Contract contract = ContractVerifierDslConverter.convert(singleContract.text)
- then:
- contract == expectedSingleContract
- }
-
def "should convert text to a list of Contracts"() {
when:
Collection contract = ContractVerifierDslConverter.convertAsCollection(multipleContracts.text)
diff --git a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/SpringBootHttpServerFactory.java b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/SpringBootHttpServerFactory.java
index 03d655b972..8629c7daa2 100644
--- a/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/SpringBootHttpServerFactory.java
+++ b/spring-cloud-contract-wiremock/src/main/java/org/springframework/cloud/contract/wiremock/SpringBootHttpServerFactory.java
@@ -44,10 +44,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.BeanPostProcessor;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.boot.Banner.Mode;
-import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration;
+import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
import org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration;
import org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration.BeanPostProcessorsRegistrar;
diff --git a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java
index 0006f6c5b5..f60ddc9510 100644
--- a/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java
+++ b/spring-cloud-contract-wiremock/src/test/java/org/springframework/cloud/contract/wiremock/restdocs/ContractDslSnippetTests.java
@@ -5,6 +5,7 @@ import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
+import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
@@ -81,9 +82,8 @@ public class ContractDslSnippetTests {
then(file("/contracts/index.groovy")).exists();
then(file("/index/dsl-contract.adoc")).exists();
- String contract = readFromFile(file("/contracts/index.groovy"));
- // try to parse the contract
- Contract parsedContract = ContractVerifierDslConverter.convert(contract);
+ Collection parsedContracts = ContractVerifierDslConverter.convertAsCollection(file("/contracts/index.groovy"));
+ Contract parsedContract = parsedContracts.iterator().next();
then(parsedContract.getRequest().getHeaders().getEntries()).isNotNull();
then(headerNames(parsedContract.getRequest().getHeaders().getEntries())).doesNotContain
(HttpHeaders.HOST, HttpHeaders.CONTENT_LENGTH);
@@ -105,9 +105,8 @@ public class ContractDslSnippetTests {
then(file("/contracts/empty.groovy")).exists();
then(file("/empty/dsl-contract.adoc")).exists();
- String contract = readFromFile(file("/contracts/empty.groovy"));
- // try to parse the contract
- Contract parsedContract = ContractVerifierDslConverter.convert(contract);
+ Collection parsedContracts = ContractVerifierDslConverter.convertAsCollection(file("/contracts/empty.groovy"));
+ Contract parsedContract = parsedContracts.iterator().next();
then(parsedContract.getRequest().getHeaders()).isNull();
then(parsedContract.getRequest().getMethod().getClientValue()).isNotNull();
then(parsedContract.getRequest().getUrl().getClientValue()).isNotNull();
@@ -131,11 +130,6 @@ public class ContractDslSnippetTests {
return new File(OUTPUT, name);
}
- private String readFromFile(File f) throws IOException {
- byte[] encoded = Files.readAllBytes(f.toPath());
- return new String(encoded, StandardCharsets.UTF_8);
- }
-
@Configuration
@EnableAutoConfiguration
@RestController