package com.dbg.cloud.acheron.zuul.routing;
import com.dbg.cloud.acheron.routing.service.RouteService;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.cloud.netflix.zuul.filters.ZuulProperties;
import org.springframework.cloud.netflix.zuul.filters.discovery.DiscoveryClientRouteLocator;
import java.util.LinkedHashMap;
public class AcheronDiscoveryClientRouteLocator extends DiscoveryClientRouteLocator {
private final AcheronSimpleRouteLocator simpleLocator;
public AcheronDiscoveryClientRouteLocator(final String servletPath, final DiscoveryClient discovery,
final ZuulProperties properties,
final RouteService routeService) {
super(servletPath, discovery, properties);
simpleLocator = new AcheronSimpleRouteLocator(servletPath, properties, routeService);
}
@Override
protected LinkedHashMap<String, ZuulProperties.ZuulRoute> locateRoutes() {
LinkedHashMap<String, ZuulProperties.ZuulRoute> routesMap = new LinkedHashMap<String, ZuulProperties
.ZuulRoute>();
routesMap.putAll(super.locateRoutes());
routesMap.putAll(simpleLocator.locateRoutes());
return routesMap;
}
}