Remove PredicateFactory.getName(), rely on bean name.
Will still remove PredicateFactory if that is the suffix.
This commit is contained in:
@@ -80,37 +80,37 @@ public class GatewayAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public GatewayPredicateHandlerMapping gatewayPredicateHandlerMapping(GatewayFilteringWebHandler webHandler,
|
||||
List<PredicateFactory> predicates,
|
||||
Map<String, PredicateFactory> predicates,
|
||||
RouteReader routeReader) {
|
||||
return new GatewayPredicateHandlerMapping(webHandler, predicates, routeReader);
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "CookiePredicateFactory")
|
||||
public CookiePredicateFactory cookiePredicateFactory() {
|
||||
return new CookiePredicateFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "HeaderPredicateFactory")
|
||||
public HeaderPredicateFactory headerPredicateFactory() {
|
||||
return new HeaderPredicateFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "HostPredicateFactory")
|
||||
public HostPredicateFactory hostPredicateFactory() {
|
||||
return new HostPredicateFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "MethodPredicateFactory")
|
||||
public MethodPredicateFactory methodPredicateFactory() {
|
||||
return new MethodPredicateFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "QueryPredicateFactory")
|
||||
public QueryPredicateFactory queryPredicateFactory() {
|
||||
return new QueryPredicateFactory();
|
||||
}
|
||||
|
||||
@Bean
|
||||
@Bean(name = "UrlPredicateFactory")
|
||||
public UrlPredicateFactory urlPredicateFactory() {
|
||||
return new UrlPredicateFactory();
|
||||
}
|
||||
|
||||
@@ -32,26 +32,31 @@ public class GatewayPredicateHandlerMapping extends AbstractHandlerMapping {
|
||||
|
||||
private List<Route> routes;
|
||||
|
||||
public GatewayPredicateHandlerMapping(WebHandler webHandler, List<PredicateFactory> predicates,
|
||||
public GatewayPredicateHandlerMapping(WebHandler webHandler, Map<String, PredicateFactory> predicates,
|
||||
RouteReader routeReader) {
|
||||
this.webHandler = webHandler;
|
||||
this.routeReader = routeReader;
|
||||
|
||||
for (PredicateFactory factory : predicates) {
|
||||
if (this.predicates.containsKey(factory.getName())) {
|
||||
this.logger.warn("A PredicateFactory named "+ factory.getName()
|
||||
+ " already exists, class: " + this.predicates.get(factory.getName())
|
||||
predicates.forEach((name, factory) -> {
|
||||
String key = normalizeName(name);
|
||||
if (this.predicates.containsKey(key)) {
|
||||
this.logger.warn("A PredicateFactory named "+ key
|
||||
+ " already exists, class: " + this.predicates.get(key)
|
||||
+ ". It will be overwritten.");
|
||||
}
|
||||
this.predicates.put(factory.getName(), factory);
|
||||
this.predicates.put(key, factory);
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.info("Loaded PredicateFactory [" + factory.getName() + "]");
|
||||
logger.info("Loaded PredicateFactory [" + key + "]");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
setOrder(-1);
|
||||
}
|
||||
|
||||
private String normalizeName(String name) {
|
||||
return name.replace(PredicateFactory.class.getSimpleName(), "");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initApplicationContext() throws BeansException {
|
||||
super.initApplicationContext();
|
||||
@@ -147,7 +152,7 @@ public class GatewayPredicateHandlerMapping extends AbstractHandlerMapping {
|
||||
args = Collections.emptyList();
|
||||
}
|
||||
logger.debug("Route " + route.getId() + " applying "+ predicate.getValue()
|
||||
+ ", " + args + " to " + found.getName());
|
||||
+ ", " + args + " to " + predicate.getName());
|
||||
}
|
||||
return found.apply(predicate.getValue(), predicate.getArgs());
|
||||
}
|
||||
|
||||
@@ -12,11 +12,6 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public class CookiePredicateFactory implements PredicateFactory {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Cookie";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String name, String[] args) {
|
||||
//TODO: caching can happen here
|
||||
|
||||
@@ -11,11 +11,6 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public class HeaderPredicateFactory implements PredicateFactory {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Header";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String header, String[] args) {
|
||||
//TODO: caching can happen here
|
||||
|
||||
@@ -17,11 +17,6 @@ public class HostPredicateFactory implements PredicateFactory {
|
||||
this.pathMatcher = pathMatcher;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Host";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String pattern, String[] args) {
|
||||
//TODO: caching can happen here
|
||||
|
||||
@@ -10,11 +10,6 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public class MethodPredicateFactory implements PredicateFactory {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Method";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String method, String[] args) {
|
||||
//TODO: caching can happen here
|
||||
|
||||
@@ -9,7 +9,5 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public interface PredicateFactory {
|
||||
|
||||
String getName();
|
||||
|
||||
Predicate<ServerWebExchange> apply(String value, String[] args);
|
||||
}
|
||||
|
||||
@@ -10,11 +10,6 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public class QueryPredicateFactory implements PredicateFactory {
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Query";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String param, String[] args) {
|
||||
//TODO: caching can happen here
|
||||
|
||||
@@ -34,11 +34,6 @@ public class UrlPredicateFactory implements PredicateFactory {
|
||||
this.pathHelper = pathHelper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "Url";
|
||||
}
|
||||
|
||||
@Override
|
||||
public Predicate<ServerWebExchange> apply(String pattern, String[] args) {
|
||||
return exchange -> {
|
||||
|
||||
Reference in New Issue
Block a user