From 3c4772bb6f0dcba6bdfd484657943cb539557e02 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 14 Aug 2019 12:19:53 +0200 Subject: [PATCH] Fixed the Jotlin sample with the Gradle API --- .../kotlin/http-server/build.gradle.kts | 2 +- .../plugin/ContractVerifierExtension.groovy | 5 +++-- .../verifier/builder/BaseClassProvider.java | 20 ++++++++++--------- .../builder/DefaultBaseClassProvider.java | 5 +++-- .../verifier/builder/GenericJsonBodyThen.java | 5 +++-- .../verifier/builder/GroovyClassMetaData.java | 5 +++-- 6 files changed, 24 insertions(+), 18 deletions(-) diff --git a/samples/standalone/kotlin/http-server/build.gradle.kts b/samples/standalone/kotlin/http-server/build.gradle.kts index 917b52c48d..750276716f 100644 --- a/samples/standalone/kotlin/http-server/build.gradle.kts +++ b/samples/standalone/kotlin/http-server/build.gradle.kts @@ -58,7 +58,7 @@ dependencies { // tag::contract_dsl[] contracts { - packageWithBaseClasses = "com.example.fraud" + packageWithBaseClasses = objects.property(String::class).value("com.example.fraud") } // end::contract_dsl[] diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy index cf0c7087ef..661624a0c1 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ContractVerifierExtension.groovy @@ -16,6 +16,8 @@ package org.springframework.cloud.contract.verifier.plugin +import javax.inject.Inject + import groovy.transform.CompileStatic import org.apache.commons.logging.Log import org.apache.commons.logging.LogFactory @@ -26,12 +28,11 @@ import org.gradle.api.provider.MapProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.Input import org.gradle.api.tasks.Optional + import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties import org.springframework.cloud.contract.verifier.config.TestFramework import org.springframework.cloud.contract.verifier.config.TestMode -import javax.inject.Inject - /** * @author Marcin Grzejszczak * @author Anatoliy Balakirev diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java index e9875f2492..29bdcdc984 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/BaseClassProvider.java @@ -31,7 +31,8 @@ class BaseClassProvider { private static final String SEPARATOR = "_REPLACEME_"; - String retrieveBaseClass(Map baseClassMappings, String packageWithBaseClasses, String baseClassForTests, + String retrieveBaseClass(Map baseClassMappings, + String packageWithBaseClasses, String baseClassForTests, String includedDirectoryRelativePath) { String contractPathAsPackage = includedDirectoryRelativePath .replace(File.separator, "."); @@ -39,15 +40,15 @@ class BaseClassProvider { SEPARATOR); // package mapping takes super precedence if (baseClassMappings != null && !baseClassMappings.isEmpty()) { - Optional> mapping = baseClassMappings.entrySet().stream().filter(entry -> { + Optional> mapping = baseClassMappings.entrySet() + .stream().filter(entry -> { String pattern = entry.getKey(); return contractPathAsPackage.matches(pattern); }).findFirst(); if (log.isDebugEnabled()) { log.debug("Matching pattern for contract package [" - + contractPathAsPackage + "] with setup " - + baseClassMappings + " is [" + mapping - + "]"); + + contractPathAsPackage + "] with setup " + baseClassMappings + + " is [" + mapping + "]"); } if (mapping.isPresent()) { return mapping.get().getValue(); @@ -56,11 +57,13 @@ class BaseClassProvider { if (StringUtils.isEmpty(packageWithBaseClasses)) { return baseClassForTests; } - String generatedClassName = generateDefaultBaseClassName(contractPackage, packageWithBaseClasses); + String generatedClassName = generateDefaultBaseClassName(contractPackage, + packageWithBaseClasses); return generatedClassName + "Base"; } - private String generateDefaultBaseClassName(String classPackage, String packageWithBaseClasses) { + private String generateDefaultBaseClassName(String classPackage, + String packageWithBaseClasses) { String[] splitPackage = NamesUtil.convertIllegalPackageChars(classPackage) .split(SEPARATOR); if (splitPackage.length > 1) { @@ -68,8 +71,7 @@ class BaseClassProvider { String butLast = NamesUtil.capitalize(splitPackage[splitPackage.length - 2]); return packageWithBaseClasses + "." + butLast + last; } - return packageWithBaseClasses + "." - + NamesUtil.capitalize(splitPackage[0]); + return packageWithBaseClasses + "." + NamesUtil.capitalize(splitPackage[0]); } } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/DefaultBaseClassProvider.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/DefaultBaseClassProvider.java index 2f2bba10c0..87cf7d66a4 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/DefaultBaseClassProvider.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/DefaultBaseClassProvider.java @@ -27,8 +27,9 @@ interface DefaultBaseClassProvider { default String fqnBaseClass() { ContractVerifierConfigProperties properties = generatedClassMetaData().configProperties; String includedDirectoryRelativePath = generatedClassMetaData().includedDirectoryRelativePath; - return baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(), properties.getPackageWithBaseClasses(), - properties.getBaseClassForTests(), includedDirectoryRelativePath); + return baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(), + properties.getPackageWithBaseClasses(), properties.getBaseClassForTests(), + includedDirectoryRelativePath); } } diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java index 5edf35727c..b21622148a 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GenericJsonBodyThen.java @@ -92,8 +92,9 @@ class GenericJsonBodyThen implements Then { private void addJsonBodyVerification(SingleContractMetadata contractMetadata, Object responseBody, BodyMatchers bodyMatchers) { JsonBodyVerificationBuilder jsonBodyVerificationBuilder = new JsonBodyVerificationBuilder( - this.generatedClassMetaData.configProperties.getAssertJsonSize(), this.templateProcessor, - this.contractTemplate, contractMetadata.getContract(), + this.generatedClassMetaData.configProperties.getAssertJsonSize(), + this.templateProcessor, this.contractTemplate, + contractMetadata.getContract(), Optional.of(this.blockBuilder.getLineEnding()), bodyParser::postProcessJsonPath); // TODO: Refactor spock from should comment out bdd blocks diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java index 89b50f3d56..c34cf13b7b 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/GroovyClassMetaData.java @@ -73,8 +73,9 @@ class GroovyClassMetaData implements ClassMetaData, DefaultClassMetadata { public ClassMetaData parentClass() { ContractVerifierConfigProperties properties = generatedClassMetaData().configProperties; String includedDirectoryRelativePath = generatedClassMetaData().includedDirectoryRelativePath; - String baseClass = baseClassProvider().retrieveBaseClass(properties.getBaseClassMappings(), - properties.getPackageWithBaseClasses(), properties.getBaseClassForTests(), includedDirectoryRelativePath); + String baseClass = baseClassProvider().retrieveBaseClass( + properties.getBaseClassMappings(), properties.getPackageWithBaseClasses(), + properties.getBaseClassForTests(), includedDirectoryRelativePath); baseClass = StringUtils.hasText(baseClass) ? baseClass : "Specification"; int lastIndexOf = baseClass.lastIndexOf("."); if (lastIndexOf > 0) {