From af1278a47253a024aba00822fef5ccdea60df208 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Wed, 5 Nov 2014 14:36:35 +0000 Subject: [PATCH] Ensure static resources load from relative paths Most browsers support these days and there was one already in statut.ftl (but not in navbar). Added a test that asserts the css is loadable as well. Fixes gh-55 --- .../eureka/server/EurekaController.java | 8 +- .../resources/templates/eureka/header.ftl | 4 +- .../main/resources/templates/eureka/lastn.ftl | 7 +- .../resources/templates/eureka/status.ftl | 6 +- .../src/main/wro/header.less | 4 +- .../src/main/wro/responsive.less | 2 +- .../src/main/wro/typography.less | 20 ++--- .../server/ApplicationContextTests.java | 80 +++++++++++++++++++ .../server/ApplicationServletPathTests.java | 80 +++++++++++++++++++ .../eureka/server/ApplicationTests.java | 5 +- .../src/test/resources/application.properties | 3 + 11 files changed, 192 insertions(+), 27 deletions(-) create mode 100644 spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationContextTests.java create mode 100644 spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationServletPathTests.java create mode 100644 spring-cloud-netflix-eureka-server/src/test/resources/application.properties diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java index 654a6aaa..0205e38d 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaController.java @@ -6,16 +6,17 @@ import com.netflix.appinfo.DataCenterInfo; import com.netflix.appinfo.InstanceInfo; import com.netflix.config.ConfigurationManager; import com.netflix.discovery.shared.*; -import com.netflix.discovery.shared.Application; import com.netflix.eureka.PeerAwareInstanceRegistry; import com.netflix.eureka.cluster.PeerEurekaNode; import com.netflix.eureka.resources.StatusResource; import com.netflix.eureka.util.StatusInfo; + import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import javax.servlet.http.HttpServletRequest; + import java.net.URI; import java.util.*; @@ -69,7 +70,8 @@ public class EurekaController { } private void populateBase(HttpServletRequest request, Map model) { - String path = request.getContextPath(); + String servletPath = request.getServletPath(); + String path = request.getContextPath() + (servletPath==null ? "" : servletPath); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; model.put("time", new Date()); @@ -104,7 +106,7 @@ public class EurekaController { for (PeerEurekaNode node : list) { try { URI uri = new URI(node.getServiceUrl()); - String href = "http://" + uri.getHost() + ":" + uri.getPort() + request.getContextPath(); + String href = node.getServiceUrl(); replicas.put(uri.getHost(), href); } catch(Exception e) { //ignore? diff --git a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl index 52ae2511..bafe98bf 100644 --- a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl +++ b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/header.ftl @@ -1,7 +1,7 @@