From ab6f01a98b22004b483f49442871aec4a8a643dd Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Fri, 13 Feb 2015 11:17:26 -0700 Subject: [PATCH] Add ServiceInstance.getUri and implement in DefaultServiceInstance fixes gh-12 --- .../cloud/client/DefaultServiceInstance.java | 15 +++++++++++++++ .../cloud/client/ServiceInstance.java | 7 +++++++ .../NoopDiscoveryClientAutoConfiguration.java | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/cloud/client/DefaultServiceInstance.java b/src/main/java/org/springframework/cloud/client/DefaultServiceInstance.java index 160324d9..24be1744 100644 --- a/src/main/java/org/springframework/cloud/client/DefaultServiceInstance.java +++ b/src/main/java/org/springframework/cloud/client/DefaultServiceInstance.java @@ -16,6 +16,8 @@ package org.springframework.cloud.client; +import java.net.URI; + import lombok.Data; /** @@ -32,4 +34,17 @@ public class DefaultServiceInstance implements ServiceInstance { private final int port; + private final boolean secure; + + @Override + public URI getUri() { + return getUri(this); + } + + public static URI getUri(ServiceInstance instance) { + String scheme = (instance.isSecure()) ? "https" : "http"; + String uri = String.format("%s://%s:%s", scheme, instance.getHost(), + instance.getPort()); + return URI.create(uri); + } } diff --git a/src/main/java/org/springframework/cloud/client/ServiceInstance.java b/src/main/java/org/springframework/cloud/client/ServiceInstance.java index 2fad76fe..5c8e3c3a 100644 --- a/src/main/java/org/springframework/cloud/client/ServiceInstance.java +++ b/src/main/java/org/springframework/cloud/client/ServiceInstance.java @@ -16,6 +16,8 @@ package org.springframework.cloud.client; +import java.net.URI; + /** * @author Spencer Gibb */ @@ -26,4 +28,9 @@ public interface ServiceInstance { public String getHost(); public int getPort(); + + public boolean isSecure(); + + public URI getUri(); + } diff --git a/src/main/java/org/springframework/cloud/client/discovery/noop/NoopDiscoveryClientAutoConfiguration.java b/src/main/java/org/springframework/cloud/client/discovery/noop/NoopDiscoveryClientAutoConfiguration.java index d390b2c2..c7dac725 100644 --- a/src/main/java/org/springframework/cloud/client/discovery/noop/NoopDiscoveryClientAutoConfiguration.java +++ b/src/main/java/org/springframework/cloud/client/discovery/noop/NoopDiscoveryClientAutoConfiguration.java @@ -72,7 +72,7 @@ public class NoopDiscoveryClientAutoConfiguration implements } int port = findPort(); this.serviceInstance = new DefaultServiceInstance(this.environment.getProperty( - "spring.application.name", "application"), host, port); + "spring.application.name", "application"), host, port, false); } private int findPort() {