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')