From 35d02f75ae4f739e465ef2ee7fc744928aeabadd Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Thu, 23 Oct 2014 11:16:22 -0700 Subject: [PATCH] Switch eureka endpoint to /eureka All static content is excluded in the Jersey config, so we can use /eureka for the prefix to the Eureka API (i.e. /apps etc.) Fixes gh-44 --- .../main/asciidoc/spring-cloud-netflix.adoc | 4 +- .../eureka/EurekaClientConfigBean.java | 2 +- .../eureka/EurekaServerConfigBean.java | 2 - .../java/eurekademo/ApplicationTests.java | 41 ------------------- spring-cloud-netflix-eureka-server/pom.xml | 2 +- .../server/EurekaServerConfiguration.java | 4 +- .../main/resources/templates/eureka/lastn.ftl | 2 +- .../resources/templates/eureka/status.ftl | 2 +- .../eureka/server/ApplicationTests.java | 2 +- .../src/main/resources/application.yml | 4 +- 10 files changed, 11 insertions(+), 54 deletions(-) delete mode 100644 spring-cloud-netflix-eureka-server/java/eurekademo/ApplicationTests.java diff --git a/docs/src/main/asciidoc/spring-cloud-netflix.adoc b/docs/src/main/asciidoc/spring-cloud-netflix.adoc index 41f7936c..a4662552 100644 --- a/docs/src/main/asciidoc/spring-cloud-netflix.adoc +++ b/docs/src/main/asciidoc/spring-cloud-netflix.adoc @@ -41,7 +41,7 @@ public class Application { eureka: client: serviceUrl: - defaultZone: http://localhost:8761/eureka/api/ + defaultZone: http://localhost:8761/eureka/ ``` The default application name, virtual host and non-secure port are taken from the `Environment` is @@ -89,7 +89,7 @@ public class Application { ``` The server has a home page with a UI, and HTTP API endpoints per the -normal Eureka functionality under `/eureka/api/*`. +normal Eureka functionality under `/eureka/*`. Eureka background reading: see https://github.com/cfregly/fluxcapacitor/wiki/NetflixOSS-FAQ#eureka-service-discovery-load-balancer[flux capacitor] and https://groups.google.com/forum/?fromgroups#!topic/eureka_netflix/g3p2r7gHnN0[google group discussion]. diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java index fc88053c..6ce1a440 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaClientConfigBean.java @@ -35,7 +35,7 @@ import com.netflix.discovery.EurekaClientConfig; @ConfigurationProperties("eureka.client") public class EurekaClientConfigBean implements EurekaClientConfig { - public static final String DEFAULT_URL = "http://localhost:8761" + EurekaServerConfigBean.DEFAULT_PATH + "/"; + public static final String DEFAULT_URL = "http://localhost:8761" + EurekaServerConfigBean.DEFAULT_PREFIX + "/"; public static final String DEFAULT_ZONE = "defaultZone"; diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaServerConfigBean.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaServerConfigBean.java index 01e7efe9..a77c993a 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaServerConfigBean.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka/EurekaServerConfigBean.java @@ -35,8 +35,6 @@ public class EurekaServerConfigBean implements EurekaServerConfig { public static final String DEFAULT_PREFIX = "/eureka"; - public static final String DEFAULT_PATH = DEFAULT_PREFIX + "/api"; - private static final int MINUTES = 60 * 1000; private String aWSAccessId; diff --git a/spring-cloud-netflix-eureka-server/java/eurekademo/ApplicationTests.java b/spring-cloud-netflix-eureka-server/java/eurekademo/ApplicationTests.java deleted file mode 100644 index 82a8025e..00000000 --- a/spring-cloud-netflix-eureka-server/java/eurekademo/ApplicationTests.java +++ /dev/null @@ -1,41 +0,0 @@ -package eurekademo; - -import static org.junit.Assert.assertEquals; - -import java.util.Map; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.boot.test.IntegrationTest; -import org.springframework.boot.test.SpringApplicationConfiguration; -import org.springframework.boot.test.TestRestTemplate; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.web.WebAppConfiguration; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = EurekaApplication.class) -@WebAppConfiguration -@IntegrationTest("server.port=0") -public class ApplicationTests { - - @Value("${local.server.port}") - private int port = 0; - - @Test - public void catalogLoads() { - @SuppressWarnings("rawtypes") - ResponseEntity entity = new TestRestTemplate().getForEntity("http://localhost:" + port + "/eureka/api/apps", Map.class); - assertEquals(HttpStatus.OK, entity.getStatusCode()); - } - - @Test - public void adminLoads() { - @SuppressWarnings("rawtypes") - ResponseEntity entity = new TestRestTemplate().getForEntity("http://localhost:" + port + "/env", Map.class); - assertEquals(HttpStatus.OK, entity.getStatusCode()); - } - -} diff --git a/spring-cloud-netflix-eureka-server/pom.xml b/spring-cloud-netflix-eureka-server/pom.xml index 41a34f27..85be8edd 100644 --- a/spring-cloud-netflix-eureka-server/pom.xml +++ b/spring-cloud-netflix-eureka-server/pom.xml @@ -131,7 +131,7 @@ ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory - ${project.build.directory}/generated-resources/static/eureka/ + ${project.build.directory}/generated-resources/static/eureka/css ${project.build.directory}/wro/wro.xml ${basedir}/src/main/wro/wro.properties diff --git a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java index 44f29d74..987b66a7 100644 --- a/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java +++ b/spring-cloud-netflix-eureka-server/src/main/java/org/springframework/cloud/netflix/eureka/server/EurekaServerConfiguration.java @@ -32,10 +32,10 @@ public class EurekaServerConfiguration extends WebMvcConfigurerAdapter { FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new ServletContainer()); bean.setOrder(Ordered.LOWEST_PRECEDENCE); + bean.addInitParameter("com.sun.jersey.config.property.WebPageContentRegex", EurekaServerConfigBean.DEFAULT_PREFIX + "/(fonts|images|css)/.*"); bean.addInitParameter("com.sun.jersey.config.property.packages", "com.netflix.discovery;com.netflix.eureka"); - bean.addInitParameter("com.sun.jersey.config.feature.FilterContextPath", EurekaServerConfigBean.DEFAULT_PREFIX); - bean.setUrlPatterns(Lists.newArrayList(EurekaServerConfigBean.DEFAULT_PATH + "/*")); + bean.setUrlPatterns(Lists.newArrayList(EurekaServerConfigBean.DEFAULT_PREFIX + "/*")); return bean; } diff --git a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/lastn.ftl b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/lastn.ftl index 8ead5f04..386599c5 100644 --- a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/lastn.ftl +++ b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/lastn.ftl @@ -5,7 +5,7 @@ Eureka - Last N events - + diff --git a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/status.ftl b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/status.ftl index f555d57e..7e04d3dd 100755 --- a/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/status.ftl +++ b/spring-cloud-netflix-eureka-server/src/main/resources/templates/eureka/status.ftl @@ -11,7 +11,7 @@ - + diff --git a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java index 564af370..d7d8ba69 100644 --- a/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java +++ b/spring-cloud-netflix-eureka-server/src/test/java/org/springframework/cloud/netflix/eureka/server/ApplicationTests.java @@ -43,7 +43,7 @@ public class ApplicationTests { public void catalogLoads() { @SuppressWarnings("rawtypes") ResponseEntity entity = new TestRestTemplate().getForEntity( - "http://localhost:" + port + "/eureka/api/apps", Map.class); + "http://localhost:" + port + "/eureka/apps", Map.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); } diff --git a/spring-cloud-netflix-zuul/src/main/resources/application.yml b/spring-cloud-netflix-zuul/src/main/resources/application.yml index f48d1df3..81b093df 100644 --- a/spring-cloud-netflix-zuul/src/main/resources/application.yml +++ b/spring-cloud-netflix-zuul/src/main/resources/application.yml @@ -40,8 +40,8 @@ eureka: availabilityZones: default #serviceUrl: - #default: http://localhost:8761/eureka/api/ - #defaultZone: http://localhost:8761/eureka/api/ + #default: http://localhost:8761/eureka/ + #defaultZone: http://localhost:8761/eureka/ instance: #Virtual host name by which the clients identifies this service