diff --git a/pom.xml b/pom.xml
index 8b6b3e8a53..266efbec9f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,6 +45,7 @@
5.5.1.201910021850-r
1
3.4.6
+ 2020.0.0-SNAPSHOT
1.3.2
5.6.2
@@ -110,6 +111,13 @@
+
+ io.projectreactor
+ reactor-bom
+ ${reactor.version}
+ pom
+ import
+
org.apache.camel.springboot
camel-spring-boot-starter
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java
index 1bf342ef37..3e7d6be0a5 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java
+++ b/spring-cloud-contract-tools/spring-cloud-contract-converters/src/main/java/org/springframework/cloud/contract/verifier/wiremock/WireMockToDslConverter.java
@@ -49,25 +49,35 @@ public class WireMockToDslConverter {
private static final JsonPointer PRIORITY_POINTER = JsonPointer.compile("/priority");
- private static final JsonPointer REQUEST_METHOD_POINTER = JsonPointer.compile("/request/method");
+ private static final JsonPointer REQUEST_METHOD_POINTER = JsonPointer
+ .compile("/request/method");
- private static final JsonPointer REQUEST_URL_POINTER = JsonPointer.compile("/request/url");
+ private static final JsonPointer REQUEST_URL_POINTER = JsonPointer
+ .compile("/request/url");
- private static final JsonPointer REQUEST_URL_PATH_POINTER = JsonPointer.compile("/request/urlPath");
+ private static final JsonPointer REQUEST_URL_PATH_POINTER = JsonPointer
+ .compile("/request/urlPath");
- private static final JsonPointer REQUEST_URL_PATTERN_POINTER = JsonPointer.compile("/request/urlPattern");
+ private static final JsonPointer REQUEST_URL_PATTERN_POINTER = JsonPointer
+ .compile("/request/urlPattern");
- private static final JsonPointer REQUEST_URL_PATH_PATTERN_POINTER = JsonPointer.compile("/request/urlPathPattern");
+ private static final JsonPointer REQUEST_URL_PATH_PATTERN_POINTER = JsonPointer
+ .compile("/request/urlPathPattern");
- private static final JsonPointer REQUEST_HEADERS_POINTER = JsonPointer.compile("/request/headers");
+ private static final JsonPointer REQUEST_HEADERS_POINTER = JsonPointer
+ .compile("/request/headers");
- private static final JsonPointer REQUEST_BODY_POINTER = JsonPointer.compile("/request/bodyPatterns");
+ private static final JsonPointer REQUEST_BODY_POINTER = JsonPointer
+ .compile("/request/bodyPatterns");
- private static final JsonPointer RESPONSE_STATUS_POINTER = JsonPointer.compile("/response/status");
+ private static final JsonPointer RESPONSE_STATUS_POINTER = JsonPointer
+ .compile("/response/status");
- private static final JsonPointer RESPONSE_BODY_POINTER = JsonPointer.compile("/response/body");
+ private static final JsonPointer RESPONSE_BODY_POINTER = JsonPointer
+ .compile("/response/body");
- private static final JsonPointer RESPONSE_HEADERS_POINTER = JsonPointer.compile("/response/headers");
+ private static final JsonPointer RESPONSE_HEADERS_POINTER = JsonPointer
+ .compile("/response/headers");
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
@@ -80,7 +90,6 @@ public class WireMockToDslConverter {
/**
* Returns the string content of the contract.
- *
* @param wireMockStringStub - string content of the WireMock JSON stub
*/
public static String fromWireMockStub(String wireMockStringStub) {
@@ -89,22 +98,14 @@ public class WireMockToDslConverter {
private String convertFromWireMockStub(String wireMockStringStub) {
JsonNode wireMockStub = parseStubDefinition(wireMockStringStub);
- return buildPriority(wireMockStub)
- + "request {\n"
- + buildRequestMethod(wireMockStub)
- + buildRequestUrl(wireMockStub)
+ return buildPriority(wireMockStub) + "request {\n"
+ + buildRequestMethod(wireMockStub) + buildRequestUrl(wireMockStub)
+ buildRequestUrlPattern(wireMockStub)
+ buildRequestUrlPathPattern(wireMockStub)
- + buildRequestUrlPath(wireMockStub)
- + buildRequestHeaders(wireMockStub)
- + buildRequestBody(wireMockStub)
- + "}\n"
- + "response {\n"
- + buildResponseStatus(wireMockStub)
- + buildResponseBody(wireMockStub)
- + buildResponseHeaders(wireMockStub)
- + "}"
- + "\n";
+ + buildRequestUrlPath(wireMockStub) + buildRequestHeaders(wireMockStub)
+ + buildRequestBody(wireMockStub) + "}\n" + "response {\n"
+ + buildResponseStatus(wireMockStub) + buildResponseBody(wireMockStub)
+ + buildResponseHeaders(wireMockStub) + "}" + "\n";
}
private JsonNode parseStubDefinition(String wireMockStringStub) {
@@ -156,7 +157,8 @@ public class WireMockToDslConverter {
String requestUrlPattern = "";
JsonNode requestUrlPatternNode = wireMockStub.at(REQUEST_URL_PATTERN_POINTER);
if (!requestUrlPatternNode.isMissingNode()) {
- String escapedRequestUrlPatternValue = escapeJava(requestUrlPatternNode.asText());
+ String escapedRequestUrlPatternValue = escapeJava(
+ requestUrlPatternNode.asText());
requestUrlPattern = "url $(consumer(regex('" + escapedRequestUrlPatternValue
+ "')), producer('"
+ new Xeger(escapedRequestUrlPatternValue).generate() + "'))\n";
@@ -166,9 +168,11 @@ public class WireMockToDslConverter {
private String buildRequestUrlPathPattern(JsonNode wireMockStub) {
String requestUrlPathPattern = "";
- JsonNode requestUrlPathPatternNode = wireMockStub.at(REQUEST_URL_PATH_PATTERN_POINTER);
+ JsonNode requestUrlPathPatternNode = wireMockStub
+ .at(REQUEST_URL_PATH_PATTERN_POINTER);
if (!requestUrlPathPatternNode.isMissingNode()) {
- String escapedRequestUrlPathPatternValue = escapeJava(requestUrlPathPatternNode.asText());
+ String escapedRequestUrlPathPatternValue = escapeJava(
+ requestUrlPathPatternNode.asText());
requestUrlPathPattern = "urlPath $(consumer(regex('"
+ escapedRequestUrlPathPatternValue + "')), producer('"
+ new Xeger(escapedRequestUrlPathPatternValue).generate() + "'))'\n";
@@ -183,11 +187,14 @@ public class WireMockToDslConverter {
if (requestHeadersNode.isObject()) {
requestHeadersBuilder.append("headers {\n");
ObjectNode requestHeadersObjectNode = requestHeadersNode.deepCopy();
- Iterator> fields = requestHeadersObjectNode.fields();
+ Iterator> fields = requestHeadersObjectNode
+ .fields();
fields.forEachRemaining(c -> {
requestHeadersBuilder.append("header('").append(c.getKey()).append("',");
- Map.Entry headerValue = c.getValue().deepCopy().fields().next();
- String header = buildHeader(headerValue.getKey(), headerValue.getValue().asText());
+ Map.Entry headerValue = c.getValue().deepCopy().fields()
+ .next();
+ String header = buildHeader(headerValue.getKey(),
+ headerValue.getValue().asText());
requestHeadersBuilder.append(header).append(")").append("\n");
});
requestHeadersBuilder.append("}");
@@ -216,24 +223,22 @@ public class WireMockToDslConverter {
Iterable iterableFields = () -> elements;
List> requestBodyObjectNodes = new ArrayList<>();
StreamSupport.stream(iterableFields.spliterator(), false)
- .filter(f -> f instanceof ObjectNode)
- .map(f -> (ObjectNode) f)
+ .filter(f -> f instanceof ObjectNode).map(f -> (ObjectNode) f)
.map(ObjectNode::fields)
.forEachOrdered(i -> i.forEachRemaining(requestBodyObjectNodes::add));
- requestBodyObjectNodes.stream()
- .filter(b -> b.getKey().equals("equalTo"))
- .findFirst()
- .ifPresent(b -> requestBody.append("body ('").append(b.getValue().asText()).append("')"));
- requestBodyObjectNodes.stream()
- .filter(b -> b.getKey().equals("equalToJson"))
- .findFirst()
- .ifPresent(b -> requestBody.append("body ('").append(b.getValue().asText()).append("')"));
+ requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("equalTo"))
+ .findFirst().ifPresent(b -> requestBody.append("body ('")
+ .append(b.getValue().asText()).append("')"));
+ requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("equalToJson"))
+ .findFirst().ifPresent(b -> requestBody.append("body ('")
+ .append(b.getValue().asText()).append("')"));
requestBodyObjectNodes.stream().filter(b -> b.getKey().equals("matches"))
.findFirst()
.ifPresent(b -> requestBody.append("body $(consumer(regex('")
.append(escapeJava(b.getValue().asText()))
.append("')), producer('")
- .append(new Xeger(escapeJava(b.getValue().asText())).generate())
+ .append(new Xeger(escapeJava(b.getValue().asText()))
+ .generate())
.append("'))"));
}
return requestBody.toString();
@@ -253,10 +258,15 @@ public class WireMockToDslConverter {
String responseBody = "";
JsonNode responseBodyNode = wireMockStub.at(RESPONSE_BODY_POINTER);
if (responseBodyNode.isInt()) {
- responseBody += "body( " + escapeJava(buildPrettyPrintResponseBody((IntNode) responseBodyNode)) + ")\n";
+ responseBody += "body( "
+ + escapeJava(buildPrettyPrintResponseBody((IntNode) responseBodyNode))
+ + ")\n";
}
if (responseBodyNode.isTextual()) {
- responseBody += "body( \"" + escapeJava(buildPrettyPrintResponseBody((TextNode) responseBodyNode)) + "\")\n";
+ responseBody += "body( \""
+ + escapeJava(
+ buildPrettyPrintResponseBody((TextNode) responseBodyNode))
+ + "\")\n";
}
return responseBody;
}
@@ -272,13 +282,13 @@ public class WireMockToDslConverter {
.readValue(textNode, Object.class);
DefaultIndenter customIndenter = new DefaultIndenter(" ", "\n");
return OBJECT_MAPPER
- .writer(new PrivatePrettyPrinter()
- .withArrayIndenter(customIndenter)
+ .writer(new PrivatePrettyPrinter().withArrayIndenter(customIndenter)
.withObjectIndenter(customIndenter))
.writeValueAsString(intermediateObjectForPrettyPrinting);
}
catch (IOException e) {
- throw new RuntimeException("WireMock response body could not be pretty printed");
+ throw new RuntimeException(
+ "WireMock response body could not be pretty printed");
}
}
@@ -289,14 +299,11 @@ public class WireMockToDslConverter {
if (requestHeadersNode.isObject()) {
responseHeadersBuilder.append("headers {\n");
ObjectNode responseHeadersObjectNode = requestHeadersNode.deepCopy();
- Iterator> fields = responseHeadersObjectNode.fields();
- fields.forEachRemaining(c -> responseHeadersBuilder
- .append("header('")
- .append(c.getKey())
- .append("',")
- .append("'")
- .append(c.getValue().asText())
- .append("')\n"));
+ Iterator> fields = responseHeadersObjectNode
+ .fields();
+ fields.forEachRemaining(c -> responseHeadersBuilder.append("header('")
+ .append(c.getKey()).append("',").append("'")
+ .append(c.getValue().asText()).append("')\n"));
responseHeadersBuilder.append("}");
}
return responseHeadersBuilder.toString();
@@ -312,7 +319,8 @@ public class WireMockToDslConverter {
@Override
public DefaultPrettyPrinter withSeparators(Separators separators) {
_separators = separators;
- _objectFieldValueSeparatorWithSpaces = separators.getObjectFieldValueSeparator() + " ";
+ _objectFieldValueSeparatorWithSpaces = separators
+ .getObjectFieldValueSeparator() + " ";
return this;
}
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java
index d8e63ba866..f449671170 100644
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/FileSaver.java
@@ -36,6 +36,7 @@ class FileSaver {
private static final Logger log = LoggerFactory.getLogger(FileSaver.class);
private final File targetDirectory;
+
private final String fileExtension;
FileSaver(File targetDirectory, String fileExtension) {
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java
index f70deed8df..1f9536598b 100755
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/TestGenerator.java
@@ -55,13 +55,19 @@ import static org.springframework.cloud.contract.verifier.util.NamesUtil.toLastD
public class TestGenerator {
private static final Logger log = LoggerFactory.getLogger(TestGenerator.class);
+
private static final String DEFAULT_CLASS_PREFIX = "ContractVerifier";
+
private static final String DEFAULT_TEST_PACKAGE = "org.springframework.cloud.contract.verifier.tests";
private final ContractVerifierConfigProperties configProperties;
+
private final AtomicInteger counter = new AtomicInteger();
+
private final SingleTestGenerator generator;
+
private final FileSaver saver;
+
private final ContractFileScanner contractFileScanner;
public TestGenerator(ContractVerifierConfigProperties configProperties) {
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java
index 6b8aa11304..04ead5831d 100644
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/builder/imports/BaseImportProvider.java
@@ -47,7 +47,9 @@ public class BaseImportProvider {
Arrays.asList(
"org.springframework.cloud.contract.verifier.assertion.SpringCloudContractAssertions.assertThat",
"org.springframework.cloud.contract.verifier.util.ContractVerifierUtil.*"));
+
private static final Map RULE_IMPORT;
+
private static final Map TEST_FRAMEWORK_SPECIFIC_IMPORTS;
static {
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java
index fe65db71d5..49fc8369d3 100644
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/dsl/wiremock/DefaultResponseTransformer.java
@@ -25,14 +25,15 @@ import wiremock.com.github.jknack.handlebars.Helper;
import org.springframework.cloud.contract.verifier.builder.handlebars.HandlebarsEscapeHelper;
import org.springframework.cloud.contract.verifier.builder.handlebars.HandlebarsJsonPathHelper;
-/**.
- * Default implementation of {@link ResponseTemplateTransformer} that contains default set
- * of handlebars helpers
+/**
+ * . Default implementation of {@link ResponseTemplateTransformer} that contains default
+ * set of handlebars helpers
*
* @author Marcin Grzejszczak
* @since 1.2.0
*/
public class DefaultResponseTransformer extends ResponseTemplateTransformer {
+
public DefaultResponseTransformer() {
super(false, defaultHelpers());
}
diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java
index 2dd20ad9a1..0950f99dae 100644
--- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java
+++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelStubMessages.java
@@ -48,7 +48,6 @@ public class CamelStubMessages implements MessageVerifier {
private final ContractVerifierCamelMessageBuilder builder;
-
public CamelStubMessages(CamelContext context, ProducerTemplate producerTemplate,
ConsumerTemplate consumerTemplate) {
this.context = context;