From 68bdbed2d0e6c21eadea1a7af455a15031f2853e Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 16 Nov 2022 13:35:59 +0100 Subject: [PATCH] Update to the latest Eureka changes --- .../spring/cloud/eureka/EurekaStubsRegistrar.java | 15 +++++++++++++-- ...rSpringCloudEurekaAutoConfigurationSpec.groovy | 4 +--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java index 7d9d3983eb..e0c29339d8 100644 --- a/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java +++ b/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/EurekaStubsRegistrar.java @@ -26,6 +26,7 @@ import com.netflix.appinfo.ApplicationInfoManager; import com.netflix.appinfo.InstanceInfo; import com.netflix.discovery.AbstractDiscoveryClientOptionalArgs; import com.netflix.discovery.EurekaClient; +import com.netflix.discovery.shared.transport.jersey.TransportClientFactories; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -96,8 +97,9 @@ public class EurekaStubsRegistrar implements StubsRegistrar { InstanceInfo instanceInfo = new InstanceInfoFactory().create(instance); ApplicationInfoManager applicationInfoManager = new ApplicationInfoManager(instance, instanceInfo); AbstractDiscoveryClientOptionalArgs args = args(); - EurekaClient client = new CloudEurekaClient(applicationInfoManager, this.eurekaClientConfigBean, args, - this.context); + TransportClientFactories transportClientFactories = transportClientFactories(); + EurekaClient client = new CloudEurekaClient(applicationInfoManager, this.eurekaClientConfigBean, + transportClientFactories, args, this.context); EurekaRegistration registration = EurekaRegistration.builder(instance) .with(this.eurekaClientConfigBean, this.context).with(client).build(); EurekaHealthCheckHandler eurekaHealthCheckHandler = new EurekaHealthCheckHandler( @@ -127,6 +129,15 @@ public class EurekaStubsRegistrar implements StubsRegistrar { } } + private TransportClientFactories transportClientFactories() { + try { + return this.context.getBean(TransportClientFactories.class); + } + catch (BeansException e) { + return null; + } + } + private EurekaInstanceConfigBean registration(Map.Entry entry) { EurekaInstanceConfigBean config = new EurekaInstanceConfigBean(this.inetUtils); String appName = name(entry.getKey()); diff --git a/tests/spring-cloud-contract-stub-runner-boot-eureka/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfigurationSpec.groovy b/tests/spring-cloud-contract-stub-runner-boot-eureka/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfigurationSpec.groovy index 970a3a9f8e..7740112566 100644 --- a/tests/spring-cloud-contract-stub-runner-boot-eureka/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfigurationSpec.groovy +++ b/tests/spring-cloud-contract-stub-runner-boot-eureka/src/test/groovy/org/springframework/cloud/contract/stubrunner/spring/cloud/eureka/StubRunnerSpringCloudEurekaAutoConfigurationSpec.groovy @@ -52,10 +52,8 @@ import org.springframework.web.client.RestTemplate @SpringBootTest(classes = Config, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = ["stubrunner.cloud.eureka.enabled=true", "stubrunner.cloud.stubbed.discovery.enabled=false", - "stubrunner.cloud.ribbon.enabled=false", "eureka.client.enabled=true", - "eureka.instance.leaseRenewalIntervalInSeconds=1", - "ribbon.ServerListRefreshInterval=100"]) + "eureka.instance.leaseRenewalIntervalInSeconds=1"]) @AutoConfigureStubRunner(ids = ["org.springframework.cloud.contract.verifier.stubs:loanIssuance", "org.springframework.cloud.contract.verifier.stubs:fraudDetectionServer", "org.springframework.cloud.contract.verifier.stubs:bootService"] , repositoryRoot = "classpath:m2repo/repository/" ,