diff --git a/pom.xml b/pom.xml
index 913d055..f6e78ff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,6 +26,7 @@
oauth2-ribbon
hystrix
turbine
+ zuul-config-discovery
zuul-proxy
zuul-proxy-eureka
diff --git a/zuul-config-discovery/README.md b/zuul-config-discovery/README.md
new file mode 100755
index 0000000..48a40dd
--- /dev/null
+++ b/zuul-config-discovery/README.md
@@ -0,0 +1,3 @@
+Test with zuul server, eureka and config server. Config server is located by discovery.
+
+Test that zuul server updates routes when new routes are added (at least doesn't fail with a stack overflow exception)
diff --git a/zuul-config-discovery/pom.xml b/zuul-config-discovery/pom.xml
new file mode 100755
index 0000000..0579443
--- /dev/null
+++ b/zuul-config-discovery/pom.xml
@@ -0,0 +1,110 @@
+
+
+ 4.0.0
+
+ org.springframework.cloud
+ spring-cloud-sample-zuul-config-discovery
+ 1.0.0.BUILD-SNAPSHOT
+ jar
+
+ spring-cloud-sample-zuul-config-discovery
+ Demo project for Spring Cloud
+
+
+ org.springframework.cloud
+ spring-cloud-starter-parent
+ 1.0.0.BUILD-SNAPSHOT
+
+
+
+ UTF-8
+ 1.7
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.cloud
+ spring-cloud-starter-eureka
+
+
+ org.springframework.cloud
+ spring-cloud-starter-zuul
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ maven-deploy-plugin
+
+ true
+
+
+
+
+
+
+
+ spring-snapshots
+ Spring Snapshots
+ http://repo.spring.io/libs-snapshot-local
+
+ true
+
+
+
+ spring-milestones
+ Spring Milestones
+ http://repo.spring.io/libs-milestone-local
+
+ false
+
+
+
+ spring-releases
+ Spring Releases
+ http://repo.spring.io/libs-release-local
+
+ false
+
+
+
+
+
+ spring-snapshots
+ Spring Snapshots
+ http://repo.spring.io/libs-snapshot-local
+
+ true
+
+
+
+ spring-milestones
+ Spring Milestones
+ http://repo.spring.io/libs-milestone-local
+
+ false
+
+
+
+
+
diff --git a/zuul-config-discovery/src/main/java/demo/ZuulConfigDiscoveryApplication.java b/zuul-config-discovery/src/main/java/demo/ZuulConfigDiscoveryApplication.java
new file mode 100755
index 0000000..6dee793
--- /dev/null
+++ b/zuul-config-discovery/src/main/java/demo/ZuulConfigDiscoveryApplication.java
@@ -0,0 +1,15 @@
+package demo;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+
+@SpringBootApplication
+@EnableZuulProxy
+public class ZuulConfigDiscoveryApplication {
+
+ public static void main(String[] args) {
+ new SpringApplicationBuilder(ZuulConfigDiscoveryApplication.class).web(true).run(args);
+ }
+
+}
diff --git a/zuul-config-discovery/src/main/resources/application.yml b/zuul-config-discovery/src/main/resources/application.yml
new file mode 100644
index 0000000..94ce552
--- /dev/null
+++ b/zuul-config-discovery/src/main/resources/application.yml
@@ -0,0 +1,29 @@
+info:
+ component: Zuul Server
+
+endpoints:
+ restart:
+ enabled: true
+ shutdown:
+ enabled: true
+ sensitive: false
+
+logging:
+ level:
+ org.springframework.security: DEBUG
+ org.springframework.web: DEBUG
+ org.springframework.boot: INFO
+ #com.netflix.discovery: 'OFF'
+ ROOT: INFO
+
+eureka:
+ instance:
+ leaseRenewalIntervalInSeconds: 10
+ statusPageUrlPath: /admin/info
+ healthCheckUrlPath: /admin/health
+
+management:
+ port: ${MGMT_SERVER_PORT:8766}
+
+server:
+ port: ${SERVER_PORT:8765}
diff --git a/zuul-config-discovery/src/main/resources/bootstrap.yml b/zuul-config-discovery/src/main/resources/bootstrap.yml
new file mode 100755
index 0000000..43e2d41
--- /dev/null
+++ b/zuul-config-discovery/src/main/resources/bootstrap.yml
@@ -0,0 +1,15 @@
+spring:
+ application:
+ name: zuulConfigDiscoveryTest
+ cloud:
+ config:
+ username: user
+ password: password
+ failFast: true
+ discovery:
+ enabled: true
+
+eureka:
+ client:
+ serviceUrl:
+ defaultZone: http://user::password@localhost:8761/eureka/
diff --git a/zuul-config-discovery/src/test/java/demo/ZuulConfigDiscoveryApplicationTests.java b/zuul-config-discovery/src/test/java/demo/ZuulConfigDiscoveryApplicationTests.java
new file mode 100644
index 0000000..cce1dfe
--- /dev/null
+++ b/zuul-config-discovery/src/test/java/demo/ZuulConfigDiscoveryApplicationTests.java
@@ -0,0 +1,28 @@
+package demo;
+
+import org.junit.Ignore;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.boot.test.WebIntegrationTest;
+import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@SpringApplicationConfiguration(classes = ZuulConfigDiscoveryApplication.class)
+@WebIntegrationTest(randomPort = true)
+@DirtiesContext
+public class ZuulConfigDiscoveryApplicationTests {
+
+ @Value("${local.server.port}")
+ private int port;
+
+
+ //FIXME: works fine when running the app, but not as a test
+ @Test
+ @Ignore
+ public void contextLoads() {
+ }
+
+}