From 76b0c2f7f25af0294c21e3111df34d22e4d950ee Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Thu, 4 Jun 2015 09:16:04 -0600 Subject: [PATCH] add support for scheme, currently used in http health check fixes gh-33 --- .../cloud/consul/discovery/ConsulDiscoveryProperties.java | 2 ++ .../cloud/consul/discovery/ConsulLifecycle.java | 7 +++++-- .../discovery/ConsulLifecycleCustomizedPropsTests.java | 3 ++- 3 files changed, 9 insertions(+), 3 deletions(-) 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 802281b8..721040ea 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 @@ -66,6 +66,8 @@ public class ConsulDiscoveryProperties { private String instanceId; + private String scheme = "http"; + public String getHostname() { return this.preferIpAddress ? this.ipAddress : this.hostname; } 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 dc41f9ca..5c8e81c2 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 @@ -23,6 +23,7 @@ import org.springframework.cloud.client.discovery.AbstractDiscoveryLifecycle; import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.agent.model.NewService; +import org.springframework.util.Assert; /** * @author Spencer Gibb @@ -56,6 +57,7 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { @Override protected void register() { + Assert.notNull(service.getPort(), "service.port has not been set"); String appName = getAppName(); String id; if (properties.getInstanceId() == null) { @@ -74,8 +76,9 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { if (properties.getHealthCheckUrl() != null) { check.setHttp(properties.getHealthCheckUrl()); } else { - check.setHttp(String.format("http://%s:%s%s", properties.getHostname(), - service.getPort(), properties.getHealthCheckPath())); + check.setHttp(String.format("%s://%s:%s%s", properties.getScheme(), + properties.getHostname(), service.getPort(), + properties.getHealthCheckPath())); } check.setInterval(properties.getHealthCheckInterval()); //TODO support http check timeout 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 c4f1f6d6..6255d0f7 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 @@ -46,7 +46,8 @@ import com.ecwid.consul.v1.agent.model.Service; @RunWith(SpringJUnit4ClassRunner.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) @SpringApplicationConfiguration(classes = TestPropsConfig.class) -@WebIntegrationTest(value = {"spring.application.name=myTestService", "spring.cloud.consul.discovery.instanceId=myTestService1"}, randomPort = true) +@WebIntegrationTest(value = { "spring.application.name=myTestService", + "spring.cloud.consul.discovery.instanceId=myTestService1" }, randomPort = true) public class ConsulLifecycleCustomizedPropsTests { @Autowired