diff --git a/spring-cloud-gateway-sample/.jdk8 b/spring-cloud-gateway-sample/.jdk8
new file mode 100644
index 00000000..e69de29b
diff --git a/spring-cloud-gateway-sample/pom.xml b/spring-cloud-gateway-sample/pom.xml
index a214326f..dc66f5c6 100644
--- a/spring-cloud-gateway-sample/pom.xml
+++ b/spring-cloud-gateway-sample/pom.xml
@@ -5,7 +5,6 @@
org.springframework.cloud.gateway
spring-cloud-gateway-sample
- 1.0.0.BUILD-SNAPSHOT
jar
Spring Cloud Gateway Sample
@@ -18,9 +17,6 @@
..
-
-
-
org.springframework.boot
@@ -30,6 +26,11 @@
org.springframework.cloud
spring-cloud-gateway-mvc
+
+ org.isomorphism
+ token-bucket
+ 1.7
+
org.springframework.boot
spring-boot-starter-test
diff --git a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java b/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java
index 8232830f..c57735bc 100644
--- a/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java
+++ b/spring-cloud-gateway-sample/src/main/java/org/springframework/cloud/gateway/sample/GatewaySampleApplication.java
@@ -17,55 +17,44 @@
package org.springframework.cloud.gateway.sample;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.SpringBootConfiguration;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.cloud.gateway.EnableGateway;
-import org.springframework.cloud.gateway.route.RouteLocator;
-import org.springframework.cloud.gateway.route.Routes;
-import org.springframework.context.annotation.Bean;
+import java.net.URI;
+import java.util.function.Function;
-import static org.springframework.cloud.gateway.filter.factory.WebFilterFactories.addResponseHeader;
-import static org.springframework.cloud.gateway.handler.predicate.RoutePredicates.host;
-import static org.springframework.cloud.gateway.handler.predicate.RoutePredicates.path;
-import static org.springframework.tuple.TupleBuilder.tuple;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.gateway.mvc.ProxyExchange;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
/**
* @author Spencer Gibb
+ * @author Dave Syer
*/
-@SpringBootConfiguration
-@EnableAutoConfiguration
-@EnableGateway
+@RestController
+@SpringBootApplication
public class GatewaySampleApplication {
- @Bean
- public RouteLocator customRouteLocator(ThrottleWebFilterFactory throttle) {
- return Routes.locator()
- .route("test")
- .uri("http://httpbin.org:80")
- .predicate(host("**.abc.org").and(path("/image/png")))
- .addResponseHeader("X-TestHeader", "foobar")
- .and()
- .route("test2")
- .uri("http://httpbin.org:80")
- .predicate(path("/image/webp"))
- .add(addResponseHeader("X-AnotherHeader", "baz"))
- .and()
- .route("test3")
- .order(-1)
- .uri("http://httpbin.org:80")
- .predicate(host("**.throttle.org").and(path("/get")))
- .add(throttle.apply(tuple().of("capacity", 1,
- "refillTokens", 1,
- "refillPeriod", 10,
- "refillUnit", "SECONDS")))
- .and()
- .build();
+ @Value("${remote.home}")
+ private URI home;
+
+ @GetMapping(path="/test", headers="x-host=png.abc.org")
+ public ResponseEntity