From 1811e0684e56fe471814b1c13c1516fac8cf9073 Mon Sep 17 00:00:00 2001 From: Fabio Silva Date: Wed, 4 Apr 2018 12:04:33 -0400 Subject: [PATCH] Add config for consul schema --- .../cloud/consul/ConsulAutoConfiguration.java | 8 +++++++- .../cloud/consul/ConsulProperties.java | 12 ++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulAutoConfiguration.java b/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulAutoConfiguration.java index d1963ce9..2dfb5675 100644 --- a/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulAutoConfiguration.java +++ b/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulAutoConfiguration.java @@ -33,6 +33,7 @@ import org.springframework.retry.interceptor.RetryInterceptorBuilder; import org.springframework.retry.interceptor.RetryOperationsInterceptor; import com.ecwid.consul.v1.ConsulClient; +import org.springframework.util.StringUtils; /** * @author Spencer Gibb @@ -51,7 +52,12 @@ public class ConsulAutoConfiguration { @Bean @ConditionalOnMissingBean public ConsulClient consulClient(ConsulProperties consulProperties) { - return new ConsulClient(consulProperties.getHost(), consulProperties.getPort()); + final int agentPort = consulProperties.getPort(); + final String agentHost = !StringUtils.isEmpty(consulProperties.getScheme()) + ? consulProperties.getScheme() + "://" + consulProperties.getHost() + : consulProperties.getHost(); + + return new ConsulClient(agentHost, agentPort); } @Configuration diff --git a/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulProperties.java b/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulProperties.java index 4a0d72ce..a85d5014 100644 --- a/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulProperties.java +++ b/spring-cloud-consul-core/src/main/java/org/springframework/cloud/consul/ConsulProperties.java @@ -31,6 +31,9 @@ public class ConsulProperties { @NotNull private String host = "localhost"; + /** Consul agent scheme (HTTP/HTTPS). If there is no scheme in address - client will use HTTP. */ + private String scheme; + /** Consul agent port. Defaults to '8500'. */ @NotNull private int port = 8500; @@ -62,11 +65,20 @@ public class ConsulProperties { this.enabled = enabled; } + public String getScheme() { + return scheme; + } + + public void setScheme(String scheme) { + this.scheme = scheme; + } + @Override public String toString() { return "ConsulProperties{" + "host='" + host + '\'' + ", port=" + port + + ", scheme=" + scheme + ", enabled=" + enabled + '}'; }