Fix so as not to have SO on delegates

This commit is contained in:
Marcin Grzejszczak
2016-04-02 12:03:34 +02:00
parent 15f4b7a747
commit 82076e59e3
2 changed files with 13 additions and 4 deletions

View File

@@ -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();

View File

@@ -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);
}
}