diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocator.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocator.java index e082acef..b835a320 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocator.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocator.java @@ -121,10 +121,10 @@ public class ProxyRouteLocator { } if (routesMap.get(DEFAULT_ROUTE) != null) { - String defaultServiceId = routesMap.get(DEFAULT_ROUTE).getServiceId(); + ZuulRoute defaultRoute = routesMap.get(DEFAULT_ROUTE); // Move the defaultServiceId to the end routesMap.remove(DEFAULT_ROUTE); - routesMap.put(DEFAULT_ROUTE, new ZuulRoute(defaultServiceId)); + routesMap.put(DEFAULT_ROUTE, defaultRoute); } LinkedHashMap values = new LinkedHashMap<>(); diff --git a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocatorTests.java b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocatorTests.java index 2c8e2532..e7d29c45 100644 --- a/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocatorTests.java +++ b/spring-cloud-netflix-core/src/test/java/org/springframework/cloud/netflix/zuul/ProxyRouteLocatorTests.java @@ -143,6 +143,30 @@ public class ProxyRouteLocatorTests { assertMapping(routesMap, "http://" + ASERVICE, ASERVICE); } + @Test + public void testGetDefaultRoute() { + ProxyRouteLocator routeLocator = new ProxyRouteLocator(this.discovery, this.properties); + this.properties.getRoutes().put(ASERVICE, new ZuulRoute("/", ASERVICE)); + + Map routesMap = routeLocator.getRoutes(); + + assertNotNull("routesMap was null", routesMap); + assertFalse("routesMap was empty", routesMap.isEmpty()); + assertDefaultMapping(routesMap, ASERVICE); + } + + @Test + public void testGetDefaultPhysicalRoute() { + ProxyRouteLocator routeLocator = new ProxyRouteLocator(this.discovery, this.properties); + this.properties.getRoutes().put(ASERVICE, new ZuulRoute("/", "http://" + ASERVICE)); + + Map routesMap = routeLocator.getRoutes(); + + assertNotNull("routesMap was null", routesMap); + assertFalse("routesMap was empty", routesMap.isEmpty()); + assertDefaultMapping(routesMap, "http://" + ASERVICE); + } + @Test public void testIgnoreRoutes() { ProxyRouteLocator routeLocator = new ProxyRouteLocator(this.discovery, this.properties); @@ -199,4 +223,11 @@ public class ProxyRouteLocatorTests { private String getMapping(String serviceId) { return "/" + serviceId + "/**"; } + + protected void assertDefaultMapping(Map routesMap, String expectedRoute) { + String mapping = "/"; + String route = routesMap.get(mapping); + assertEquals("routesMap had wrong value for " + mapping, expectedRoute, + route); + } }