From 82076e59e3df32d6f017dfd3c8774626dbd94c17 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Sat, 2 Apr 2016 12:03:34 +0200 Subject: [PATCH] Fix so as not to have SO on delegates --- .../spring/cloud/StubRunnerDiscoveryClient.java | 11 +++++++++-- .../cloud/StubRunnerSpringCloudAutoConfiguration.java | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java b/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java index 66b7deb07e..a6615fd5b0 100644 --- a/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java +++ b/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerDiscoveryClient.java @@ -5,8 +5,10 @@ import java.net.URL; import java.util.Collections; import java.util.List; +import org.springframework.cloud.client.DefaultServiceInstance; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; +import org.springframework.cloud.client.discovery.noop.NoopDiscoveryClient; import io.codearte.accurest.stubrunner.RunningStubs; import io.codearte.accurest.stubrunner.StubFinder; @@ -25,12 +27,17 @@ public class StubRunnerDiscoveryClient implements DiscoveryClient { private final StubMapperProperties stubMapperProperties; public StubRunnerDiscoveryClient(DiscoveryClient delegate, StubFinder stubFinder, - StubMapperProperties stubMapperProperties) { - this.delegate = delegate; + StubMapperProperties stubMapperProperties, String springAppName) { + this.delegate = delegate instanceof StubRunnerDiscoveryClient ? + noOpDiscoveryClient(springAppName) : delegate; this.stubFinder = stubFinder; this.stubMapperProperties = stubMapperProperties; } + private NoopDiscoveryClient noOpDiscoveryClient(String springAppName) { + return new NoopDiscoveryClient(new DefaultServiceInstance(springAppName, "localhost", 0, false)); + } + @Override public String description() { return delegate.description(); diff --git a/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java b/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java index cf4c9d0928..b5d78bfe78 100644 --- a/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java +++ b/stub-runner/stub-runner-spring-cloud/src/main/groovy/io/codearte/accurest/stubrunner/spring/cloud/StubRunnerSpringCloudAutoConfiguration.java @@ -1,5 +1,6 @@ package io.codearte.accurest.stubrunner.spring.cloud; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -34,8 +35,9 @@ public class StubRunnerSpringCloudAutoConfiguration { @Primary public DiscoveryClient stubRunnerDiscoveryClient(DiscoveryClient discoveryClient, StubFinder stubFinder, - StubMapperProperties stubMapperProperties) { - return new StubRunnerDiscoveryClient(discoveryClient, stubFinder, stubMapperProperties); + StubMapperProperties stubMapperProperties, + @Value("${spring.application.name:unknown}") String springAppName) { + return new StubRunnerDiscoveryClient(discoveryClient, stubFinder, stubMapperProperties, springAppName); } }