From 6e4a6c686d59dcb1475a77e75044a5b2eeb48b53 Mon Sep 17 00:00:00 2001 From: nicu marasoiu Date: Fri, 10 Apr 2015 14:18:16 +0300 Subject: [PATCH 1/2] publish context --- .../cloud/consul/discovery/ConsulLifecycle.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) 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 5c8e81c2..80378e03 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 @@ -25,6 +25,10 @@ import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.agent.model.NewService; import org.springframework.util.Assert; +import javax.servlet.ServletContext; +import java.util.LinkedList; +import java.util.List; + /** * @author Spencer Gibb */ @@ -43,6 +47,9 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { @Autowired private HeartbeatProperties ttlConfig; + @Autowired(required = false) + private ServletContext servletContext; + private NewService service = new NewService(); @Override @@ -67,7 +74,7 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { } service.setId(id); service.setName(appName); - service.setTags(properties.getTags()); + service.setTags(createTags()); NewService.Check check = new NewService.Check(); if (ttlConfig.isEnabled()) { @@ -121,6 +128,14 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { deregister(getManagementServiceName()); } + private List createTags() { + List tags = new LinkedList<>(properties.getTags()); + if(servletContext != null) { + tags.add("contextPath=" + servletContext.getContextPath()); + } + return tags; + } + private void deregister(String serviceId) { if (ttlScheduler != null) { ttlScheduler.remove(serviceId); From 9bf69bd14da3b92a493f2c00b56f1772bc65abf4 Mon Sep 17 00:00:00 2001 From: nicu marasoiu Date: Fri, 19 Jun 2015 13:46:40 +0300 Subject: [PATCH 2/2] do not publish context path when it is null or contains only / and/or whitespace chars --- .../cloud/consul/discovery/ConsulLifecycle.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 80378e03..d03aa928 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 @@ -18,6 +18,7 @@ package org.springframework.cloud.consul.discovery; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.client.discovery.AbstractDiscoveryLifecycle; @@ -130,7 +131,9 @@ public class ConsulLifecycle extends AbstractDiscoveryLifecycle { private List createTags() { List tags = new LinkedList<>(properties.getTags()); - if(servletContext != null) { + if(servletContext != null + && StringUtils.isNotBlank(servletContext.getContextPath()) + && StringUtils.isNotBlank(servletContext.getContextPath().replaceAll("/", ""))) { tags.add("contextPath=" + servletContext.getContextPath()); } return tags;