diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryProperties.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryProperties.java index 33982a35..c8df745b 100644 --- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryProperties.java +++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulDiscoveryProperties.java @@ -125,6 +125,11 @@ public class ConsulDiscoveryProperties { */ private boolean register = true; + /** + * Register health check in consul. Useful during development of a service. + */ + private boolean registerHealthCheck = true; + @SuppressWarnings("unused") private ConsulDiscoveryProperties() {} diff --git a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java index e97b186c..cb2199ea 100644 --- a/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java +++ b/spring-cloud-consul-discovery/src/main/java/org/springframework/cloud/consul/discovery/ConsulLifecycle.java @@ -96,13 +96,15 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { service.setPort(properties.getPort()); } - Integer checkPort; - if (shouldRegisterManagement()) { - checkPort = getManagementPort(); - } else { - checkPort = service.getPort(); + if (this.properties.isRegisterHealthCheck()) { + Integer checkPort; + if (shouldRegisterManagement()) { + checkPort = getManagementPort(); + } else { + checkPort = service.getPort(); + } + service.setCheck(createCheck(checkPort)); } - service.setCheck(createCheck(checkPort)); register(service); } diff --git a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulLifecycleCustomizedPropsTests.java b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulLifecycleCustomizedPropsTests.java index 4ca2a18e..1a44c95a 100644 --- a/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulLifecycleCustomizedPropsTests.java +++ b/spring-cloud-consul-discovery/src/test/java/org/springframework/cloud/consul/discovery/ConsulLifecycleCustomizedPropsTests.java @@ -16,6 +16,7 @@ package org.springframework.cloud.consul.discovery; +import java.util.List; import java.util.Map; import org.junit.FixMethodOrder; @@ -33,8 +34,10 @@ import org.springframework.context.annotation.Import; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.ecwid.consul.v1.ConsulClient; +import com.ecwid.consul.v1.QueryParams; import com.ecwid.consul.v1.Response; import com.ecwid.consul.v1.agent.model.Service; +import com.ecwid.consul.v1.health.model.Check; import static org.junit.Assert.assertThat; import static org.hamcrest.Matchers.*; @@ -49,7 +52,8 @@ import static org.hamcrest.Matchers.*; "spring.cloud.consul.discovery.instanceId=myTestService1", "spring.cloud.consul.discovery.port=4452", "spring.cloud.consul.discovery.hostname=myhost", - "spring.cloud.consul.discovery.ipAddress=10.0.0.1"}, randomPort = true) + "spring.cloud.consul.discovery.ipAddress=10.0.0.1", + "spring.cloud.consul.discovery.registerHealthCheck=false", }, randomPort = true) public class ConsulLifecycleCustomizedPropsTests { @Autowired @@ -76,6 +80,10 @@ public class ConsulLifecycleCustomizedPropsTests { assertThat("property hostname was wrong", "myhost", equalTo(this.properties.getHostname())); assertThat("property ipAddress was wrong", "10.0.0.1", equalTo(this.properties.getIpAddress())); assertThat("service address was wrong", "myhost", equalTo(service.getAddress())); + + Response> checkResponse = consul.getHealthChecksForService("myTestService", QueryParams.DEFAULT); + List checks = checkResponse.getValue(); + assertThat("checks was wrong size", checks, hasSize(0)); } }