Adds @EnableGateway annotation.

This creates a marker bean which then
This commit is contained in:
Spencer Gibb
2017-03-02 10:15:49 -07:00
parent 9016cd8367
commit 9a3ac57ce6
16 changed files with 105 additions and 2 deletions

View File

@@ -0,0 +1,44 @@
/*
* Copyright 2013-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.springframework.cloud.gateway;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.gateway.config.GatewayConfiguration;
import org.springframework.context.annotation.Import;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation to activate Spring Cloud Gateway configuration {@link org.springframework.cloud.gateway.config.GatewayAutoConfiguration}
*
* @author Spencer Gibb
*
*/
@EnableDiscoveryClient
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Import(GatewayConfiguration.class)
public @interface EnableGateway {
}

View File

@@ -77,6 +77,7 @@ import rx.RxReactiveStreams;
* @author Spencer Gibb
*/
@Configuration
@ConditionalOnBean(GatewayConfiguration.Marker.class)
@EnableConfigurationProperties
public class GatewayAutoConfiguration {

View File

@@ -0,0 +1,34 @@
/*
* Copyright 2013-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.springframework.cloud.gateway.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author Spencer Gibb
*/
@Configuration
public class GatewayConfiguration {
@Bean
public Marker gatewayMarker() {
return new Marker();
}
class Marker { }
}

View File

@@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
@@ -61,6 +62,7 @@ public class AddRequestHeaderRouteFilterIntegrationTests extends BaseWebClientTe
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
@@ -70,6 +71,7 @@ public class AddRequestParameterRouteFilterIntegrationTests extends BaseWebClien
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
@@ -62,6 +63,7 @@ public class RedirectToRouteFilterIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ActiveProfiles;
@@ -68,6 +69,7 @@ public class RemoveNonProxyHeadersRouteFilterIntegrationTests extends BaseWebCli
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -24,6 +24,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
@@ -62,6 +63,7 @@ public class RemoveRequestHeaderRouteFilterIntegrationTests extends BaseWebClien
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,14 +22,13 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.reactive.function.client.ClientResponse;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
import static org.springframework.cloud.gateway.test.TestUtils.assertStatus;
@@ -59,6 +58,7 @@ public class RewritePathRouteFilterIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
@@ -78,6 +79,7 @@ public class SecureHeadersRouteFilterIntegrationTests extends BaseWebClientTests
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpStatus;
import org.springframework.test.annotation.DirtiesContext;
@@ -57,6 +58,7 @@ public class SetPathRouteFilterIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpHeaders;
import org.springframework.test.annotation.DirtiesContext;
@@ -59,6 +60,7 @@ public class SetResponseRouteFilterIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -22,6 +22,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.test.BaseWebClientTests;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
@@ -68,6 +69,7 @@ public class SetStatusRouteFilterIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
public static class TestConfig { }
}

View File

@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Before;
import org.springframework.boot.context.embedded.LocalServerPort;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.cloud.gateway.api.Route;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.context.annotation.Bean;
@@ -61,6 +62,7 @@ public class BaseWebClientTests {
}
@Configuration
@EnableGateway
protected static class DefaultTestConfig {
private static final Log log = LogFactory.getLog(DefaultTestConfig.class);

View File

@@ -25,6 +25,7 @@ import org.junit.runner.RunWith;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.cloud.gateway.EnableGateway;
import org.springframework.core.io.ClassPathResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
@@ -98,6 +99,7 @@ public class FormIntegrationTests extends BaseWebClientTests {
@EnableAutoConfiguration
@SpringBootConfiguration
@EnableGateway
//@Import(DefaultTestConfig.class)
public static class TestConfig { }

View File

@@ -20,6 +20,7 @@ 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.api.RouteLocator;
import org.springframework.cloud.gateway.config.GatewayProperties;
import org.springframework.cloud.gateway.config.PropertiesRouteLocator;
@@ -35,6 +36,7 @@ import reactor.core.publisher.Flux;
*/
@SpringBootConfiguration
@EnableAutoConfiguration
@EnableGateway
public class GatewaySampleApplication {
@Bean
public PropertiesRouteLocator propertiesRouteLocator(GatewayProperties properties) {