From b3cf4077e2a1d9570286230eb8974bf78db4c907 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 8 Nov 2016 16:14:08 +0100 Subject: [PATCH] Fixed the base class name without this change for convention class names we haven't escaped illegal chars with this change the illegal chars are escaped and no compilation issues occur fixes #137 --- samples/standalone/contracts/com/example/server/pom.xml | 2 +- samples/standalone/dsl/http-client/pom.xml | 2 +- samples/standalone/dsl/http-server/pom.xml | 2 +- samples/standalone/messaging/stream-sink/pom.xml | 2 +- samples/standalone/messaging/stream-source/pom.xml | 2 +- samples/standalone/restdocs/http-client/pom.xml | 2 +- samples/standalone/restdocs/http-server/pom.xml | 2 +- samples/wiremock-jetty/pom.xml | 2 +- samples/wiremock-native/pom.xml | 2 +- samples/wiremock-tomcat/pom.xml | 2 +- samples/wiremock-undertow-ssl/pom.xml | 2 +- samples/wiremock-undertow/pom.xml | 2 +- .../cloud/contract/verifier/builder/ClassBuilder.groovy | 2 +- .../contract/verifier/builder/SingleTestGenerator.groovy | 3 +-- .../contract/verifier/builder/ClassBuilderSpec.groovy | 8 ++++++++ 15 files changed, 22 insertions(+), 15 deletions(-) diff --git a/samples/standalone/contracts/com/example/server/pom.xml b/samples/standalone/contracts/com/example/server/pom.xml index 28683db2ab..4c46a9be43 100644 --- a/samples/standalone/contracts/com/example/server/pom.xml +++ b/samples/standalone/contracts/com/example/server/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/dsl/http-client/pom.xml b/samples/standalone/dsl/http-client/pom.xml index 61742a15ff..651b7192f3 100644 --- a/samples/standalone/dsl/http-client/pom.xml +++ b/samples/standalone/dsl/http-client/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/dsl/http-server/pom.xml b/samples/standalone/dsl/http-server/pom.xml index 91d52e6208..2a548c6e1a 100644 --- a/samples/standalone/dsl/http-server/pom.xml +++ b/samples/standalone/dsl/http-server/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/messaging/stream-sink/pom.xml b/samples/standalone/messaging/stream-sink/pom.xml index 51995bc097..a76f8c7f10 100644 --- a/samples/standalone/messaging/stream-sink/pom.xml +++ b/samples/standalone/messaging/stream-sink/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/messaging/stream-source/pom.xml b/samples/standalone/messaging/stream-source/pom.xml index 4c4a3b0986..6666e41084 100644 --- a/samples/standalone/messaging/stream-source/pom.xml +++ b/samples/standalone/messaging/stream-source/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/restdocs/http-client/pom.xml b/samples/standalone/restdocs/http-client/pom.xml index 6692fbfde5..497be8a38a 100644 --- a/samples/standalone/restdocs/http-client/pom.xml +++ b/samples/standalone/restdocs/http-client/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/standalone/restdocs/http-server/pom.xml b/samples/standalone/restdocs/http-server/pom.xml index dca1929f28..2c9c75fdbe 100644 --- a/samples/standalone/restdocs/http-server/pom.xml +++ b/samples/standalone/restdocs/http-server/pom.xml @@ -13,7 +13,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/wiremock-jetty/pom.xml b/samples/wiremock-jetty/pom.xml index b631b064ff..a2e502aa50 100644 --- a/samples/wiremock-jetty/pom.xml +++ b/samples/wiremock-jetty/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/wiremock-native/pom.xml b/samples/wiremock-native/pom.xml index 349b2517e3..d2768ae56d 100644 --- a/samples/wiremock-native/pom.xml +++ b/samples/wiremock-native/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/wiremock-tomcat/pom.xml b/samples/wiremock-tomcat/pom.xml index e47836110f..b6c43709a0 100644 --- a/samples/wiremock-tomcat/pom.xml +++ b/samples/wiremock-tomcat/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/wiremock-undertow-ssl/pom.xml b/samples/wiremock-undertow-ssl/pom.xml index 3a0e895793..1d8607f6e8 100644 --- a/samples/wiremock-undertow-ssl/pom.xml +++ b/samples/wiremock-undertow-ssl/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/samples/wiremock-undertow/pom.xml b/samples/wiremock-undertow/pom.xml index 859cb12318..3edefaaa2c 100644 --- a/samples/wiremock-undertow/pom.xml +++ b/samples/wiremock-undertow/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 1.4.0.BUILD-SNAPSHOT + 1.4.2.BUILD-SNAPSHOT diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilder.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilder.groovy index 24d233bf55..ff3b15f7f3 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilder.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilder.groovy @@ -88,7 +88,7 @@ class ClassBuilder { } private static String generateDefaultBaseClassName(String classPackage, ContractVerifierConfigProperties properties) { - String[] splitPackage = classPackage.split("\\.") + String[] splitPackage = NamesUtil.convertIllegalPackageChars(classPackage).split("\\.") if (splitPackage.size() > 1) { String last = NamesUtil.capitalize(splitPackage[-1]) String butLast = NamesUtil.capitalize(splitPackage[-2]) diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy index a6d9c0ba0f..0109024833 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy @@ -27,7 +27,6 @@ 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 static ClassBuilder.createClass import static org.springframework.cloud.contract.verifier.util.NamesUtil.capitalize /** * Builds a single test for the given {@link ContractVerifierConfigProperties properties} @@ -52,7 +51,7 @@ class SingleTestGenerator { */ @PackageScope String buildClass(Collection listOfFiles, String className, String classPackage, String includedDirectoryRelativePath) { - ClassBuilder clazz = createClass(capitalize(className), classPackage, configProperties, includedDirectoryRelativePath) + ClassBuilder clazz = ClassBuilder.createClass(capitalize(className), classPackage, configProperties, includedDirectoryRelativePath) if (configProperties.imports) { configProperties.imports.each { diff --git a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilderSpec.groovy b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilderSpec.groovy index 9e64b901b9..966b6a55b6 100644 --- a/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilderSpec.groovy +++ b/spring-cloud-contract-verifier/src/test/groovy/org/springframework/cloud/contract/verifier/builder/ClassBuilderSpec.groovy @@ -23,6 +23,14 @@ class ClassBuilderSpec extends Specification { ClassBuilder.retrieveBaseClass(props, contractRelativeFolder) == 'com.example.base.SomeSuperpackageBase' } + def "should return a class from the generated path by taking two last folders when package with base classes is provided and contains invalid chars"() { + given: + ContractVerifierConfigProperties props = new ContractVerifierConfigProperties(packageWithBaseClasses: 'com.example.base') + String contractRelativeFolder = ['com','example','beer-api-producer-external','beer-api-consumer'].join(File.separator) + expect: + ClassBuilder.retrieveBaseClass(props, contractRelativeFolder) == 'com.example.base.Beer_api_producer_externalBeer_api_consumerBase' + } + def "should return a class from the generated path by taking a single folder when package with base classes is provided and there are not enough package elements"() { given: ContractVerifierConfigProperties props = new ContractVerifierConfigProperties(packageWithBaseClasses: 'com.example.base')