diff --git a/spring-cloud-consul-discovery/pom.xml b/spring-cloud-consul-discovery/pom.xml
index 813f6ae7..57291a8e 100644
--- a/spring-cloud-consul-discovery/pom.xml
+++ b/spring-cloud-consul-discovery/pom.xml
@@ -134,6 +134,11 @@
spring-boot-starter-actuator
true
+
+ org.springframework.cloud
+ spring-cloud-test-support
+ test
+
diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoRegistration.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoRegistration.java
index 4ecf4a6e..041307ba 100644
--- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoRegistration.java
+++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoRegistration.java
@@ -21,6 +21,7 @@ import java.util.List;
import org.springframework.cloud.client.discovery.ManagementServerPortUtils;
import org.springframework.cloud.client.serviceregistry.ServiceRegistry;
+import org.springframework.cloud.commons.util.IdUtils;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
import org.springframework.cloud.consul.discovery.HeartbeatProperties;
import org.springframework.context.ApplicationContext;
@@ -151,7 +152,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
public static String getInstanceId(ConsulDiscoveryProperties properties, ApplicationContext context) {
if (!StringUtils.hasText(properties.getInstanceId())) {
- return normalizeForDns(context.getId());
+ return normalizeForDns(IdUtils.getDefaultInstanceId(context.getEnvironment(), false));
} else {
return normalizeForDns(properties.getInstanceId());
}
@@ -160,7 +161,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
public static String normalizeForDns(String s) {
if (s == null || !Character.isLetter(s.charAt(0))
|| !Character.isLetterOrDigit(s.charAt(s.length()-1))) {
- throw new IllegalArgumentException("Consul service ids must not be empty, must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen");
+ throw new IllegalArgumentException("Consul service ids must not be empty, must start with a letter, end with a letter or digit, and have as interior characters only letters, digits, and hyphen: "+s);
}
StringBuilder normalized = new StringBuilder();
@@ -243,7 +244,7 @@ public class ConsulAutoRegistration extends ConsulRegistration {
* @return the serviceId of the Management Service
*/
public static String getManagementServiceId(ConsulDiscoveryProperties properties, ApplicationContext context) {
- return normalizeForDns(context.getId()) + SEPARATOR + properties.getManagementSuffix();
+ return normalizeForDns(IdUtils.getDefaultInstanceId(context.getEnvironment(), false)) + SEPARATOR + properties.getManagementSuffix();
}
/**
diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoServiceRegistration.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoServiceRegistration.java
index 0583f935..57eb41f9 100644
--- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoServiceRegistration.java
+++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/serviceregistry/ConsulAutoServiceRegistration.java
@@ -113,6 +113,7 @@ public class ConsulAutoServiceRegistration extends AbstractAutoServiceRegistrati
}
@Override
+ @SuppressWarnings("deprecation")
protected String getAppName() {
String appName = properties.getServiceName();
return StringUtils.isEmpty(appName) ? super.getAppName() : appName;
diff --git a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryClientDefaultQueryTagTests.java b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryClientDefaultQueryTagTests.java
index 32f1a34a..c148c0b5 100644
--- a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryClientDefaultQueryTagTests.java
+++ b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryClientDefaultQueryTagTests.java
@@ -48,6 +48,7 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
@SpringBootTest(webEnvironment = MOCK,
classes = ConsulDiscoveryClientDefaultQueryTagTests.TestConfig.class,
properties = {
+ "spring.application.name=consulServiceDefaultTag",
"spring.cloud.consul.discovery.catalogServicesWatch.enabled=false",
"spring.cloud.consul.discovery.defaultQueryTag=intg"})
@DirtiesContext
diff --git a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
index f8a45bed..e834f8e0 100644
--- a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
+++ b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/configclient/DiscoveryClientConfigServiceAutoConfigurationTests.java
@@ -20,9 +20,9 @@ import java.util.Arrays;
import org.junit.After;
import org.junit.Test;
-import org.mockito.Mockito;
+import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration;
-import org.springframework.boot.test.util.EnvironmentTestUtils;
+import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.cloud.client.DefaultServiceInstance;
import org.springframework.cloud.client.ServiceInstance;
import org.springframework.cloud.commons.util.UtilAutoConfiguration;
@@ -32,17 +32,23 @@ import org.springframework.cloud.consul.ConsulAutoConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryClient;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryClientConfiguration;
import org.springframework.cloud.consul.discovery.ConsulDiscoveryProperties;
+import org.springframework.cloud.test.ClassPathExclusions;
+import org.springframework.cloud.test.ModifiedClassPathRunner;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import static org.junit.Assert.assertEquals;
import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
/**
* @author Dave Syer
*/
+@RunWith(ModifiedClassPathRunner.class)
+@ClassPathExclusions({ "spring-retry-*.jar", "spring-boot-starter-aop-*.jar" })
public class DiscoveryClientConfigServiceAutoConfigurationTests {
private AnnotationConfigApplicationContext context;
@@ -62,12 +68,12 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
setup("server.port=7000", "spring.cloud.config.discovery.enabled=true",
"spring.cloud.consul.discovery.port:7001",
"spring.cloud.consul.discovery.hostname:foo",
- "spring.cloud.config.discovery.serviceId=configserver");
+ "spring.cloud.config.discovery.service-id:configserver");
assertEquals( 1, this.context
.getBeanNamesForType(ConsulConfigServerAutoConfiguration.class).length);
ConsulDiscoveryClient client = this.context.getParent().getBean(
ConsulDiscoveryClient.class);
- Mockito.verify(client, times(2)).getInstances("configserver");
+ verify(client, times(2)).getInstances("configserver");
ConfigClientProperties locator = this.context
.getBean(ConfigClientProperties.class);
assertEquals("http://foo:7001/", locator.getRawUri());
@@ -75,7 +81,7 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
private void setup(String... env) {
AnnotationConfigApplicationContext parent = new AnnotationConfigApplicationContext();
- EnvironmentTestUtils.addEnvironment(parent, env);
+ TestPropertyValues.of(env).applyTo(parent);
parent.register(UtilAutoConfiguration.class,
PropertyPlaceholderAutoConfiguration.class, EnvironmentKnobbler.class,
ConsulDiscoveryClientConfigServiceBootstrapConfiguration.class,
@@ -96,7 +102,7 @@ public class DiscoveryClientConfigServiceAutoConfigurationTests {
@Bean
public ConsulDiscoveryClient consulDiscoveryClient(
ConsulDiscoveryProperties properties) {
- ConsulDiscoveryClient client = Mockito.mock(ConsulDiscoveryClient.class);
+ ConsulDiscoveryClient client = mock(ConsulDiscoveryClient.class);
ServiceInstance instance = new DefaultServiceInstance("configserver",
properties.getHostname(), properties.getPort(), false);
given(client.getInstances("configserver"))