diff --git a/guides/gs-contract-rest/complete/contract-rest-client/pom.xml b/guides/gs-contract-rest/complete/contract-rest-client/pom.xml
index e71c3a9091..24bcd9dcfe 100644
--- a/guides/gs-contract-rest/complete/contract-rest-client/pom.xml
+++ b/guides/gs-contract-rest/complete/contract-rest-client/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/guides/gs-contract-rest/complete/contract-rest-service/pom.xml b/guides/gs-contract-rest/complete/contract-rest-service/pom.xml
index 155d5cf32d..af115e4320 100644
--- a/guides/gs-contract-rest/complete/contract-rest-service/pom.xml
+++ b/guides/gs-contract-rest/complete/contract-rest-service/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/guides/gs-contract-rest/initial/contract-rest-client/pom.xml b/guides/gs-contract-rest/initial/contract-rest-client/pom.xml
index 5e06f097ab..b3b26349dc 100644
--- a/guides/gs-contract-rest/initial/contract-rest-client/pom.xml
+++ b/guides/gs-contract-rest/initial/contract-rest-client/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/guides/gs-contract-rest/initial/contract-rest-service/pom.xml b/guides/gs-contract-rest/initial/contract-rest-service/pom.xml
index 618a67673d..2388b47f3a 100644
--- a/guides/gs-contract-rest/initial/contract-rest-service/pom.xml
+++ b/guides/gs-contract-rest/initial/contract-rest-service/pom.xml
@@ -11,7 +11,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/contracts/com/example/server/pom.xml b/samples/standalone/contracts/com/example/server/pom.xml
index a76a3c20b0..4a0e9a909e 100644
--- a/samples/standalone/contracts/com/example/server/pom.xml
+++ b/samples/standalone/contracts/com/example/server/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/dsl/http-client/gradle.properties b/samples/standalone/dsl/http-client/gradle.properties
index 81b66c98d3..5dffcdae73 100644
--- a/samples/standalone/dsl/http-client/gradle.properties
+++ b/samples/standalone/dsl/http-client/gradle.properties
@@ -1,3 +1,3 @@
org.gradle.daemon=false
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/dsl/http-client/pom.xml b/samples/standalone/dsl/http-client/pom.xml
index 8edda643d1..368582cf10 100644
--- a/samples/standalone/dsl/http-client/pom.xml
+++ b/samples/standalone/dsl/http-client/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/dsl/http-server/gradle.properties b/samples/standalone/dsl/http-server/gradle.properties
index 5fbc7d5fad..717eaf0260 100644
--- a/samples/standalone/dsl/http-server/gradle.properties
+++ b/samples/standalone/dsl/http-server/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon=false
verifierVersion=2.2.2.BUILD-SNAPSHOT
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/dsl/http-server/pom.xml b/samples/standalone/dsl/http-server/pom.xml
index ca7aab29ec..af1fb5e7f8 100644
--- a/samples/standalone/dsl/http-server/pom.xml
+++ b/samples/standalone/dsl/http-server/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/restdocs/http-client/gradle.properties b/samples/standalone/restdocs/http-client/gradle.properties
index 5fbc7d5fad..717eaf0260 100644
--- a/samples/standalone/restdocs/http-client/gradle.properties
+++ b/samples/standalone/restdocs/http-client/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon=false
verifierVersion=2.2.2.BUILD-SNAPSHOT
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/restdocs/http-client/pom.xml b/samples/standalone/restdocs/http-client/pom.xml
index f1d63ca995..c8129b7ce7 100644
--- a/samples/standalone/restdocs/http-client/pom.xml
+++ b/samples/standalone/restdocs/http-client/pom.xml
@@ -31,7 +31,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/restdocs/http-server/gradle.properties b/samples/standalone/restdocs/http-server/gradle.properties
index 5fbc7d5fad..717eaf0260 100644
--- a/samples/standalone/restdocs/http-server/gradle.properties
+++ b/samples/standalone/restdocs/http-server/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon=false
verifierVersion=2.2.2.BUILD-SNAPSHOT
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/restdocs/http-server/pom.xml b/samples/standalone/restdocs/http-server/pom.xml
index f97b7aa308..b087dae66b 100644
--- a/samples/standalone/restdocs/http-server/pom.xml
+++ b/samples/standalone/restdocs/http-server/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/webclient/http-client/gradle.properties b/samples/standalone/webclient/http-client/gradle.properties
index 5fbc7d5fad..717eaf0260 100644
--- a/samples/standalone/webclient/http-client/gradle.properties
+++ b/samples/standalone/webclient/http-client/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon=false
verifierVersion=2.2.2.BUILD-SNAPSHOT
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/webclient/http-client/pom.xml b/samples/standalone/webclient/http-client/pom.xml
index 38ce4a1a89..9c839ad3ad 100644
--- a/samples/standalone/webclient/http-client/pom.xml
+++ b/samples/standalone/webclient/http-client/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/standalone/webclient/http-server/gradle.properties b/samples/standalone/webclient/http-server/gradle.properties
index 5fbc7d5fad..717eaf0260 100644
--- a/samples/standalone/webclient/http-server/gradle.properties
+++ b/samples/standalone/webclient/http-server/gradle.properties
@@ -1,4 +1,4 @@
org.gradle.daemon=false
verifierVersion=2.2.2.BUILD-SNAPSHOT
BOM_VERSION=Hoxton.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
\ No newline at end of file
+bootVersion=2.2.4.RELEASE
\ No newline at end of file
diff --git a/samples/standalone/webclient/http-server/pom.xml b/samples/standalone/webclient/http-server/pom.xml
index 1d0edaa9c6..1dd251d003 100644
--- a/samples/standalone/webclient/http-server/pom.xml
+++ b/samples/standalone/webclient/http-server/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock-jetty/pom.xml b/samples/wiremock-jetty/pom.xml
index 4be2c13cbd..979591834c 100644
--- a/samples/wiremock-jetty/pom.xml
+++ b/samples/wiremock-jetty/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock-native/pom.xml b/samples/wiremock-native/pom.xml
index 13b79af9f3..fb6c6f7388 100644
--- a/samples/wiremock-native/pom.xml
+++ b/samples/wiremock-native/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock-tomcat/pom.xml b/samples/wiremock-tomcat/pom.xml
index c550d4a581..d56e449ba1 100644
--- a/samples/wiremock-tomcat/pom.xml
+++ b/samples/wiremock-tomcat/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock-undertow-ssl/pom.xml b/samples/wiremock-undertow-ssl/pom.xml
index cee2bc05a1..accb3dd402 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
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock-undertow/pom.xml b/samples/wiremock-undertow/pom.xml
index aca64b5efc..af66218997 100644
--- a/samples/wiremock-undertow/pom.xml
+++ b/samples/wiremock-undertow/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/samples/wiremock/pom.xml b/samples/wiremock/pom.xml
index 38536cc3c5..f60db4d89f 100644
--- a/samples/wiremock/pom.xml
+++ b/samples/wiremock/pom.xml
@@ -14,7 +14,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java
new file mode 100644
index 0000000000..4ef717d7e6
--- /dev/null
+++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/loadbalancer/SpringCloudLoadBalancerAutoConfiguration.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright 2012-2020 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
+ *
+ * https://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.stubrunner.spring.cloud.loadbalancer;
+
+import java.io.Closeable;
+import java.net.URI;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import reactor.core.publisher.Mono;
+
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
+import org.springframework.boot.autoconfigure.AutoConfigureBefore;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
+import org.springframework.cloud.client.loadbalancer.reactive.DefaultResponse;
+import org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer;
+import org.springframework.cloud.contract.stubrunner.RunningStubs;
+import org.springframework.cloud.contract.stubrunner.StubConfiguration;
+import org.springframework.cloud.contract.stubrunner.StubFinder;
+import org.springframework.cloud.contract.stubrunner.spring.cloud.ConditionalOnStubbedDiscoveryEnabled;
+import org.springframework.cloud.contract.stubrunner.spring.cloud.StubMapperProperties;
+import org.springframework.cloud.loadbalancer.annotation.LoadBalancerClientConfiguration;
+import org.springframework.cloud.loadbalancer.config.LoadBalancerAutoConfiguration;
+import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.util.StringUtils;
+
+/**
+ * Provides autoconfiguraion for the Spring Cloud Load Balancer module.
+ *
+ * @since 3.0.0
+ * @author Marcin Grzejszczak
+ */
+@Configuration(proxyBeanMethods = false)
+@ConditionalOnClass(LoadBalancerClient.class)
+@ConditionalOnProperty(value = "stubrunner.cloud.loadbalancer.enabled",
+ matchIfMissing = true)
+@ConditionalOnBean(StubMapperProperties.class)
+@AutoConfigureBefore(LoadBalancerAutoConfiguration.class)
+@AutoConfigureAfter(LoadBalancerClientConfiguration.class)
+@ConditionalOnStubbedDiscoveryEnabled
+public class SpringCloudLoadBalancerAutoConfiguration {
+
+ @Bean
+ @Primary
+ LoadBalancerClientFactory stubRunnerLoadBalancerClientFactory(StubFinder stubFinder,
+ StubMapperProperties stubMapperProperties) {
+ return new StubRunnerLoadBalancerClientFactory(stubFinder, stubMapperProperties);
+ }
+
+}
+
+class StubRunnerLoadBalancerClientFactory extends LoadBalancerClientFactory
+ implements Closeable {
+
+ private final StubFinder stubFinder;
+
+ private final StubMapperProperties stubMapperProperties;
+
+ StubRunnerLoadBalancerClientFactory(StubFinder stubFinder,
+ StubMapperProperties stubMapperProperties) {
+ this.stubFinder = stubFinder;
+ this.stubMapperProperties = stubMapperProperties;
+ }
+
+ @Override
+ public ReactiveLoadBalancer getInstance(String serviceId) {
+ return request -> Mono.just(new DefaultResponse(
+ new StubbedServiceInstance(stubFinder, stubMapperProperties, serviceId)));
+ }
+
+ @Override
+ public void close() {
+ StubbedServiceInstance.CACHE.clear();
+ }
+
+}
+
+class StubbedServiceInstance implements ServiceInstance {
+
+ private final StubFinder stubFinder;
+
+ private final StubMapperProperties stubMapperProperties;
+
+ private final String serviceId;
+
+ static final Map> CACHE = new ConcurrentHashMap<>();
+
+ StubbedServiceInstance(StubFinder stubFinder,
+ StubMapperProperties stubMapperProperties, String serviceId) {
+ this.stubFinder = stubFinder;
+ this.stubMapperProperties = stubMapperProperties;
+ this.serviceId = serviceId;
+ }
+
+ private Map.Entry stubEntry() {
+ Map.Entry entry = CACHE.get(this.serviceId);
+ if (entry != null) {
+ return entry;
+ }
+ RunningStubs runningStubs = this.stubFinder.findAllRunningStubs();
+ String mappedServiceName = StringUtils.hasText(
+ this.stubMapperProperties.fromServiceIdToIvyNotation(this.serviceId))
+ ? this.stubMapperProperties.fromServiceIdToIvyNotation(
+ this.serviceId)
+ : this.serviceId;
+ entry = runningStubs.getEntry(mappedServiceName);
+ CACHE.put(this.serviceId, entry);
+ return entry;
+ }
+
+ @Override
+ public String getServiceId() {
+ return this.serviceId;
+ }
+
+ @Override
+ public String getHost() {
+ return "localhost";
+ }
+
+ @Override
+ public int getPort() {
+ Map.Entry entry = stubEntry();
+ if (entry == null) {
+ return 0;
+ }
+ return entry.getValue();
+ }
+
+ @Override
+ public boolean isSecure() {
+ // TODO: What if the user marks a stub as secure?
+ return false;
+ }
+
+ @Override
+ public URI getUri() {
+ return URI.create(
+ (isSecure() ? "https://" : "http://") + getHost() + ":" + getPort());
+ }
+
+ @Override
+ public Map getMetadata() {
+ return null;
+ }
+
+}
diff --git a/spring-cloud-contract-stub-runner/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/spring-cloud-contract-stub-runner/src/main/resources/META-INF/additional-spring-configuration-metadata.json
index f7cda2fca5..9130066f3f 100644
--- a/spring-cloud-contract-stub-runner/src/main/resources/META-INF/additional-spring-configuration-metadata.json
+++ b/spring-cloud-contract-stub-runner/src/main/resources/META-INF/additional-spring-configuration-metadata.json
@@ -37,9 +37,9 @@
"defaultValue": true
},
{
- "name": "stubrunner.cloud.ribbon.enabled",
+ "name": "stubrunner.cloud.loadbalancer.enabled",
"type": "java.lang.Boolean",
- "description": "Whether to enable Stub Runner's Ribbon integration.",
+ "description": "Whether to enable Stub Runner's Spring Cloud Load Balancer integration.",
"defaultValue": true
},
{
diff --git a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfigurationSpec.groovy b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfigurationSpec.groovy
index bc5964fc20..a92e5e738a 100644
--- a/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfigurationSpec.groovy
+++ b/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfigurationSpec.groovy
@@ -1,5 +1,5 @@
/*
- * Copyright 2013-2019 the original author or authors.
+ * Copyright 2013-2020 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.
@@ -30,13 +30,11 @@ import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRun
import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties
import org.springframework.cloud.netflix.eureka.EurekaClientAutoConfiguration
import org.springframework.cloud.zookeeper.ZookeeperAutoConfiguration
-import org.springframework.cloud.zookeeper.discovery.RibbonZookeeperAutoConfiguration
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.test.context.ActiveProfiles
import org.springframework.test.context.ContextConfiguration
import org.springframework.web.client.RestTemplate
-
/**
* @author Marcin Grzejszczak
*/
@@ -78,7 +76,7 @@ class StubRunnerSpringCloudAutoConfigurationSpec extends Specification {
// end::test[]
@Configuration
- @EnableAutoConfiguration(exclude = [RibbonZookeeperAutoConfiguration, EurekaClientAutoConfiguration,
+ @EnableAutoConfiguration(exclude = [EurekaClientAutoConfiguration,
ConsulAutoConfiguration, ZookeeperAutoConfiguration])
static class Config {
diff --git a/spring-cloud-contract-stub-runner/src/test/resources/application-cloudtest.yml b/spring-cloud-contract-stub-runner/src/test/resources/application-cloudtest.yml
index ffdf85bd4a..72b4677623 100644
--- a/spring-cloud-contract-stub-runner/src/test/resources/application-cloudtest.yml
+++ b/spring-cloud-contract-stub-runner/src/test/resources/application-cloudtest.yml
@@ -9,3 +9,4 @@ spring.cloud:
discovery.enabled: false
service-registry.enabled: false
eureka.client.enabled: false
+ribbon.eureka.enabled: false
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties
index 3fef02e4fe..108b3f8dfb 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties
+++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProject/gradle.properties
@@ -16,5 +16,5 @@
wiremockVersion=2.25.1
jsonAssertVersion=0.4.13
verifierVersion=2.2.2.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
+bootVersion=2.2.4.RELEASE
groovyVersion=2.4.17
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties
index 3fef02e4fe..108b3f8dfb 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties
+++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/test/resources/functionalTest/scenarioProjectKotlin/gradle.properties
@@ -16,5 +16,5 @@
wiremockVersion=2.25.1
jsonAssertVersion=0.4.13
verifierVersion=2.2.2.BUILD-SNAPSHOT
-bootVersion=2.2.2.RELEASE
+bootVersion=2.2.4.RELEASE
groovyVersion=2.4.17
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml
index 06679665d2..ee60eaa22e 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/complex-configuration/pom.xml
@@ -29,7 +29,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/different-module-configuration/module/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/different-module-configuration/module/pom.xml
index 5d04da6435..6ddf022be8 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/different-module-configuration/module/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/different-module-configuration/module/pom.xml
@@ -29,7 +29,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml
index 78bc0233f7..fd3ccbbe1a 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/plugin-extension/pom.xml
@@ -29,7 +29,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml
index abc3120f1a..1986539e7c 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-groovy/pom.xml
@@ -29,7 +29,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE
diff --git a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml
index 78bc0233f7..fd3ccbbe1a 100644
--- a/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml
+++ b/spring-cloud-contract-tools/spring-cloud-contract-maven-plugin/src/test/projects/spring-boot-java/pom.xml
@@ -29,7 +29,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.2.2.RELEASE
+ 2.2.4.RELEASE