#491 - Stubs are registered to consul with localhost
This commit is contained in:
@@ -1,21 +1,21 @@
|
||||
package org.springframework.cloud.contract.stubrunner.spring.cloud.consul;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
import com.ecwid.consul.v1.agent.model.NewService;
|
||||
import java.lang.invoke.MethodHandles;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
|
||||
import org.springframework.cloud.contract.stubrunner.StubConfiguration;
|
||||
import org.springframework.cloud.contract.stubrunner.StubRunning;
|
||||
import org.springframework.cloud.contract.stubrunner.spring.cloud.StubMapperProperties;
|
||||
import org.springframework.cloud.contract.stubrunner.spring.cloud.StubsRegistrar;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
import com.ecwid.consul.v1.agent.model.NewService;
|
||||
|
||||
/**
|
||||
* Registers all stubs in Zookeeper Service Discovery
|
||||
*
|
||||
@@ -30,13 +30,19 @@ public class ConsulStubsRegistrar implements StubsRegistrar {
|
||||
private final StubRunning stubRunning;
|
||||
private final ConsulClient consulClient;
|
||||
private final StubMapperProperties stubMapperProperties;
|
||||
private final ConsulDiscoveryProperties consulDiscoveryProperties;
|
||||
private final InetUtils inetUtils;
|
||||
private final List<NewService> services = new LinkedList<>();
|
||||
|
||||
public ConsulStubsRegistrar(StubRunning stubRunning, ConsulClient consulClient,
|
||||
StubMapperProperties stubMapperProperties) {
|
||||
StubMapperProperties stubMapperProperties,
|
||||
ConsulDiscoveryProperties consulDiscoveryProperties,
|
||||
InetUtils inetUtils) {
|
||||
this.stubRunning = stubRunning;
|
||||
this.consulClient = consulClient;
|
||||
this.stubMapperProperties = stubMapperProperties;
|
||||
this.consulDiscoveryProperties = consulDiscoveryProperties;
|
||||
this.inetUtils = inetUtils;
|
||||
}
|
||||
|
||||
@Override public void registerStubs() {
|
||||
@@ -61,7 +67,9 @@ public class ConsulStubsRegistrar implements StubsRegistrar {
|
||||
|
||||
protected NewService newService(StubConfiguration stubConfiguration, Integer port) {
|
||||
NewService newService = new NewService();
|
||||
newService.setAddress("localhost");
|
||||
newService.setAddress(StringUtils.hasText(consulDiscoveryProperties.getHostname()) ?
|
||||
consulDiscoveryProperties.getHostname() :
|
||||
inetUtils.findFirstNonLoopbackAddress().getHostName());
|
||||
newService.setId(stubConfiguration.getArtifactId());
|
||||
newService.setName(name(stubConfiguration));
|
||||
newService.setPort(port);
|
||||
|
||||
@@ -16,9 +16,13 @@
|
||||
|
||||
package org.springframework.cloud.contract.stubrunner.spring.cloud.consul;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.cloud.commons.util.InetUtils;
|
||||
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
|
||||
import org.springframework.cloud.consul.serviceregistry.ConsulServiceRegistryAutoConfiguration;
|
||||
import org.springframework.cloud.contract.stubrunner.StubRunning;
|
||||
import org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration;
|
||||
import org.springframework.cloud.contract.stubrunner.spring.cloud.ConditionalOnStubbedDiscoveryDisabled;
|
||||
@@ -27,25 +31,26 @@ import org.springframework.cloud.contract.stubrunner.spring.cloud.StubsRegistrar
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import com.ecwid.consul.v1.ConsulClient;
|
||||
|
||||
/**
|
||||
* Autoconfiguration for registering stubs in a Zookeeper Service discovery
|
||||
*
|
||||
* @author Marcin Grzejszczak
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
@Configuration
|
||||
@AutoConfigureAfter(StubRunnerConfiguration.class)
|
||||
@AutoConfigureAfter(value = {StubRunnerConfiguration.class,
|
||||
ConsulServiceRegistryAutoConfiguration.class})
|
||||
@ConditionalOnClass(ConsulClient.class)
|
||||
@ConditionalOnStubbedDiscoveryDisabled
|
||||
@ConditionalOnProperty(value = "stubrunner.cloud.consul.enabled", matchIfMissing = true)
|
||||
public class StubRunnerSpringCloudConsulAutoConfiguration {
|
||||
|
||||
@Bean(initMethod = "registerStubs")
|
||||
public StubsRegistrar stubsRegistrar(StubRunning stubRunning, ConsulClient consulClient,
|
||||
StubMapperProperties stubMapperProperties) {
|
||||
return new ConsulStubsRegistrar(stubRunning, consulClient, stubMapperProperties);
|
||||
}
|
||||
@Bean(initMethod = "registerStubs")
|
||||
public StubsRegistrar stubsRegistrar(StubRunning stubRunning, ConsulClient consulClient,
|
||||
StubMapperProperties stubMapperProperties,
|
||||
ConsulDiscoveryProperties consulDiscoveryProperties,
|
||||
InetUtils inetUtils) {
|
||||
return new ConsulStubsRegistrar(stubRunning, consulClient, stubMapperProperties,
|
||||
consulDiscoveryProperties, inetUtils);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user