diff --git a/CHANGELOG.md b/CHANGELOG.md index faa440af..401edce9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,3 +11,4 @@ - [Refactor : optimize project and code](https://github.com/Tencent/spring-cloud-tencent/pull/506) - [Fix typo & Code optimization](https://github.com/Tencent/spring-cloud-tencent/pull/507) - [Bugfix:BeanFactoryUtils returns all beans including beans defined in ancestor bean factories](https://github.com/Tencent/spring-cloud-tencent/pull/515) +- [fix:fix only config file metadata can be used in routing bug.](https://github.com/Tencent/spring-cloud-tencent/pull/518) diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java index 8cf54325..f254f033 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerClientFilterBeanPostProcessor.java @@ -20,7 +20,7 @@ package com.tencent.cloud.polaris.router.beanprocessor; import java.util.List; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.BeanFactoryUtils; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; import com.tencent.cloud.polaris.router.scg.PolarisLoadBalancerClientFilter; @@ -57,11 +57,11 @@ public class LoadBalancerClientFilterBeanPostProcessor implements BeanPostProces LoadBalancerClient loadBalancerClient = this.factory.getBean(LoadBalancerClient.class); LoadBalancerProperties loadBalancerProperties = this.factory.getBean(LoadBalancerProperties.class); List routerLabelResolvers = BeanFactoryUtils.getBeans(factory, SpringWebRouterLabelResolver.class); - MetadataLocalProperties metadataLocalProperties = this.factory.getBean(MetadataLocalProperties.class); + StaticMetadataManager staticMetadataManager = this.factory.getBean(StaticMetadataManager.class); RouterRuleLabelResolver routerRuleLabelResolver = this.factory.getBean(RouterRuleLabelResolver.class); return new PolarisLoadBalancerClientFilter(loadBalancerClient, loadBalancerProperties, - metadataLocalProperties, routerRuleLabelResolver, routerLabelResolvers); + staticMetadataManager, routerRuleLabelResolver, routerLabelResolvers); } return bean; } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java index c97da3a9..a65f6f06 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/beanprocessor/LoadBalancerInterceptorBeanPostProcessor.java @@ -20,7 +20,7 @@ package com.tencent.cloud.polaris.router.beanprocessor; import java.util.List; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.BeanFactoryUtils; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; import com.tencent.cloud.polaris.router.resttemplate.PolarisLoadBalancerInterceptor; @@ -58,11 +58,11 @@ public class LoadBalancerInterceptorBeanPostProcessor implements BeanPostProcess LoadBalancerRequestFactory requestFactory = this.factory.getBean(LoadBalancerRequestFactory.class); LoadBalancerClient loadBalancerClient = this.factory.getBean(LoadBalancerClient.class); List routerLabelResolvers = BeanFactoryUtils.getBeans(factory, SpringWebRouterLabelResolver.class); - MetadataLocalProperties metadataLocalProperties = this.factory.getBean(MetadataLocalProperties.class); + StaticMetadataManager staticMetadataManager = this.factory.getBean(StaticMetadataManager.class); RouterRuleLabelResolver routerRuleLabelResolver = this.factory.getBean(RouterRuleLabelResolver.class); return new PolarisLoadBalancerInterceptor(loadBalancerClient, requestFactory, - routerLabelResolvers, metadataLocalProperties, routerRuleLabelResolver); + routerLabelResolvers, staticMetadataManager, routerRuleLabelResolver); } return bean; } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java index b752d4a7..184ce492 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/FeignAutoConfiguration.java @@ -20,7 +20,7 @@ package com.tencent.cloud.polaris.router.config; import java.util.List; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; import com.tencent.cloud.polaris.router.feign.PolarisCachingSpringLoadBalanceFactory; import com.tencent.cloud.polaris.router.feign.RouterLabelFeignInterceptor; @@ -46,9 +46,9 @@ public class FeignAutoConfiguration { @Bean public RouterLabelFeignInterceptor routerLabelInterceptor(@Nullable List routerLabelResolvers, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver) { - return new RouterLabelFeignInterceptor(routerLabelResolvers, metadataLocalProperties, routerRuleLabelResolver); + return new RouterLabelFeignInterceptor(routerLabelResolvers, staticMetadataManager, routerRuleLabelResolver); } @Bean diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java index 4555719a..04934dbf 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/config/RouterAutoConfiguration.java @@ -20,7 +20,7 @@ package com.tencent.cloud.polaris.router.config; import java.util.List; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.polaris.context.ServiceRuleManager; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; import com.tencent.cloud.polaris.router.beanprocessor.LoadBalancerClientFilterBeanPostProcessor; @@ -106,10 +106,10 @@ public class RouterAutoConfiguration { @Bean(initMethod = "init") public PolarisRibbonRoutingFilter ribbonRoutingFilter(ProxyRequestHelper helper, RibbonCommandFactory ribbonCommandFactory, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver, List routerLabelResolvers) { - return new PolarisRibbonRoutingFilter(helper, ribbonCommandFactory, metadataLocalProperties, + return new PolarisRibbonRoutingFilter(helper, ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, routerLabelResolvers); } } diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java index 9c8dd60b..df68bbfd 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptor.java @@ -29,7 +29,7 @@ import java.util.Set; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.cloud.polaris.router.RouterConstants; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; @@ -53,11 +53,11 @@ public class RouterLabelFeignInterceptor implements RequestInterceptor, Ordered private static final Logger LOGGER = LoggerFactory.getLogger(RouterLabelFeignInterceptor.class); private final List routerLabelResolvers; - private final MetadataLocalProperties metadataLocalProperties; + private final StaticMetadataManager staticMetadataManager; private final RouterRuleLabelResolver routerRuleLabelResolver; public RouterLabelFeignInterceptor(List routerLabelResolvers, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver) { if (!CollectionUtils.isEmpty(routerLabelResolvers)) { routerLabelResolvers.sort(Comparator.comparingInt(Ordered::getOrder)); @@ -66,7 +66,7 @@ public class RouterLabelFeignInterceptor implements RequestInterceptor, Ordered else { this.routerLabelResolvers = null; } - this.metadataLocalProperties = metadataLocalProperties; + this.staticMetadataManager = staticMetadataManager; this.routerRuleLabelResolver = routerRuleLabelResolver; } @@ -78,7 +78,7 @@ public class RouterLabelFeignInterceptor implements RequestInterceptor, Ordered @Override public void apply(RequestTemplate requestTemplate) { // local service labels - Map labels = new HashMap<>(metadataLocalProperties.getContent()); + Map labels = new HashMap<>(staticMetadataManager.getMergedStaticMetadata()); // labels from rule expression String peerServiceName = requestTemplate.feignTarget().name(); @@ -103,7 +103,8 @@ public class RouterLabelFeignInterceptor implements RequestInterceptor, Ordered } // labels from downstream - Map transitiveLabels = MetadataContextHolder.get().getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); + Map transitiveLabels = MetadataContextHolder.get() + .getFragmentContext(MetadataContext.FRAGMENT_TRANSITIVE); labels.putAll(transitiveLabels); // pass label by header diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptor.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptor.java index 4702230c..92a91ad3 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptor.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptor.java @@ -29,7 +29,7 @@ import java.util.Set; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.expresstion.SpringWebExpressionLabelUtils; import com.tencent.cloud.polaris.router.PolarisRouterContext; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; @@ -60,7 +60,7 @@ public class PolarisLoadBalancerInterceptor extends LoadBalancerInterceptor { private final LoadBalancerClient loadBalancer; private final LoadBalancerRequestFactory requestFactory; private final List routerLabelResolvers; - private final MetadataLocalProperties metadataLocalProperties; + private final StaticMetadataManager staticMetadataManager; private final RouterRuleLabelResolver routerRuleLabelResolver; private final boolean isRibbonLoadBalanceClient; @@ -68,12 +68,12 @@ public class PolarisLoadBalancerInterceptor extends LoadBalancerInterceptor { public PolarisLoadBalancerInterceptor(LoadBalancerClient loadBalancer, LoadBalancerRequestFactory requestFactory, List routerLabelResolvers, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver) { super(loadBalancer, requestFactory); this.loadBalancer = loadBalancer; this.requestFactory = requestFactory; - this.metadataLocalProperties = metadataLocalProperties; + this.staticMetadataManager = staticMetadataManager; this.routerRuleLabelResolver = routerRuleLabelResolver; if (!CollectionUtils.isEmpty(routerLabelResolvers)) { @@ -107,7 +107,7 @@ public class PolarisLoadBalancerInterceptor extends LoadBalancerInterceptor { PolarisRouterContext genRouterContext(HttpRequest request, byte[] body, String peerServiceName) { // local service labels - Map labels = new HashMap<>(metadataLocalProperties.getContent()); + Map labels = new HashMap<>(staticMetadataManager.getMergedStaticMetadata()); // labels from rule expression Set expressionLabelKeys = routerRuleLabelResolver.getExpressionLabelKeys(MetadataContext.LOCAL_NAMESPACE, diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilter.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilter.java index 7bbc9edd..c8f0350a 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilter.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilter.java @@ -28,7 +28,7 @@ import java.util.Set; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.expresstion.SpringWebExpressionLabelUtils; import com.tencent.cloud.polaris.router.PolarisRouterContext; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; @@ -55,18 +55,18 @@ import static org.springframework.cloud.gateway.support.ServerWebExchangeUtils.G public class PolarisLoadBalancerClientFilter extends LoadBalancerClientFilter { private final static Logger LOGGER = LoggerFactory.getLogger(PolarisLoadBalancerClientFilter.class); - private final MetadataLocalProperties metadataLocalProperties; + private final StaticMetadataManager staticMetadataManager; private final RouterRuleLabelResolver routerRuleLabelResolver; private final List routerLabelResolvers; private final boolean isRibbonLoadBalanceClient; public PolarisLoadBalancerClientFilter(LoadBalancerClient loadBalancer, LoadBalancerProperties properties, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver, List routerLabelResolvers) { super(loadBalancer, properties); - this.metadataLocalProperties = metadataLocalProperties; + this.staticMetadataManager = staticMetadataManager; this.routerRuleLabelResolver = routerRuleLabelResolver; if (!CollectionUtils.isEmpty(routerLabelResolvers)) { @@ -96,7 +96,7 @@ public class PolarisLoadBalancerClientFilter extends LoadBalancerClientFilter { PolarisRouterContext genRouterContext(ServerWebExchange exchange, String peerServiceName) { // local service labels - Map labels = new HashMap<>(metadataLocalProperties.getContent()); + Map labels = new HashMap<>(staticMetadataManager.getMergedStaticMetadata()); // labels from rule expression Set expressionLabelKeys = routerRuleLabelResolver.getExpressionLabelKeys(MetadataContext.LOCAL_NAMESPACE, diff --git a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java index bd48d735..ab3bea69 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java +++ b/spring-cloud-starter-tencent-polaris-router/src/main/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilter.java @@ -31,7 +31,7 @@ import javax.servlet.http.HttpServletRequest; import com.netflix.zuul.context.RequestContext; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.BeanFactoryUtils; import com.tencent.cloud.common.util.expresstion.ServletExpressionLabelUtils; import com.tencent.cloud.polaris.router.PolarisRouterContext; @@ -65,24 +65,19 @@ import static org.springframework.cloud.netflix.zuul.filters.support.FilterConst public class PolarisRibbonRoutingFilter extends RibbonRoutingFilter implements BeanFactoryAware { private static final Logger LOGGER = LoggerFactory.getLogger(PolarisRibbonRoutingFilter.class); - - private BeanFactory factory; - - private final MetadataLocalProperties metadataLocalProperties; - + private final StaticMetadataManager staticMetadataManager; private final RouterRuleLabelResolver routerRuleLabelResolver; - private final List routerLabelResolvers; - + private BeanFactory factory; private boolean useServlet31 = true; public PolarisRibbonRoutingFilter(ProxyRequestHelper helper, RibbonCommandFactory ribbonCommandFactory, - MetadataLocalProperties metadataLocalProperties, + StaticMetadataManager staticMetadataManager, RouterRuleLabelResolver routerRuleLabelResolver, List routerLabelResolvers) { super(helper, ribbonCommandFactory, Collections.emptyList()); - this.metadataLocalProperties = metadataLocalProperties; + this.staticMetadataManager = staticMetadataManager; this.routerRuleLabelResolver = routerRuleLabelResolver; if (!CollectionUtils.isEmpty(routerLabelResolvers)) { @@ -139,7 +134,7 @@ public class PolarisRibbonRoutingFilter extends RibbonRoutingFilter implements B PolarisRouterContext genRouterContext(HttpServletRequest request, String serviceId) { // local service labels - Map labels = new HashMap<>(metadataLocalProperties.getContent()); + Map labels = new HashMap<>(staticMetadataManager.getMergedStaticMetadata()); // labels from rule expression Set expressionLabelKeys = routerRuleLabelResolver.getExpressionLabelKeys(MetadataContext.LOCAL_NAMESPACE, diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java index a859e44b..90f8b7ca 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/feign/RouterLabelFeignInterceptorTest.java @@ -29,7 +29,7 @@ import java.util.Set; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.common.util.JacksonUtils; import com.tencent.cloud.polaris.router.RouterConstants; @@ -58,7 +58,7 @@ import static org.mockito.Mockito.when; public class RouterLabelFeignInterceptorTest { @Mock - private MetadataLocalProperties metadataLocalProperties; + private StaticMetadataManager staticMetadataManager; @Mock private RouterRuleLabelResolver routerRuleLabelResolver; @Mock @@ -67,7 +67,7 @@ public class RouterLabelFeignInterceptorTest { @Test public void testResolveRouterLabel() { RouterLabelFeignInterceptor routerLabelFeignInterceptor = new RouterLabelFeignInterceptor( - Collections.singletonList(routerLabelResolver), metadataLocalProperties, routerRuleLabelResolver); + Collections.singletonList(routerLabelResolver), staticMetadataManager, routerRuleLabelResolver); // mock request template RequestTemplate requestTemplate = new RequestTemplate(); @@ -113,7 +113,7 @@ public class RouterLabelFeignInterceptorTest { Map localMetadata = new HashMap<>(); localMetadata.put("k3", "v31"); localMetadata.put("k4", "v4"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); routerLabelFeignInterceptor.apply(requestTemplate); diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerBeanPostProcessorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerBeanPostProcessorTest.java index 0da30241..afbb7188 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerBeanPostProcessorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerBeanPostProcessorTest.java @@ -18,7 +18,7 @@ package com.tencent.cloud.polaris.router.resttemplate; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.BeanFactoryUtils; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; import com.tencent.cloud.polaris.router.beanprocessor.LoadBalancerInterceptorBeanPostProcessor; @@ -51,7 +51,7 @@ public class PolarisLoadBalancerBeanPostProcessorTest { @Mock private LoadBalancerRequestFactory loadBalancerRequestFactory; @Mock - private MetadataLocalProperties metadataLocalProperties; + private StaticMetadataManager staticMetadataManager; @Mock private RouterRuleLabelResolver routerRuleLabelResolver; @Mock @@ -61,7 +61,7 @@ public class PolarisLoadBalancerBeanPostProcessorTest { public void testWrapperLoadBalancerInterceptor() { when(beanFactory.getBean(LoadBalancerRequestFactory.class)).thenReturn(loadBalancerRequestFactory); when(beanFactory.getBean(LoadBalancerClient.class)).thenReturn(loadBalancerClient); - when(beanFactory.getBean(MetadataLocalProperties.class)).thenReturn(metadataLocalProperties); + when(beanFactory.getBean(StaticMetadataManager.class)).thenReturn(staticMetadataManager); when(beanFactory.getBean(RouterRuleLabelResolver.class)).thenReturn(routerRuleLabelResolver); try (MockedStatic mockedBeanFactoryUtils = Mockito.mockStatic(BeanFactoryUtils.class)) { diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptorTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptorTest.java index 15a3934e..229a252d 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptorTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/resttemplate/PolarisLoadBalancerInterceptorTest.java @@ -28,7 +28,7 @@ import java.util.Set; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.polaris.router.PolarisRouterContext; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; @@ -72,7 +72,7 @@ public class PolarisLoadBalancerInterceptorTest { @Mock private SpringWebRouterLabelResolver routerLabelResolver; @Mock - private MetadataLocalProperties metadataLocalProperties; + private StaticMetadataManager staticMetadataManager; @Mock private RouterRuleLabelResolver routerRuleLabelResolver; @@ -86,7 +86,7 @@ public class PolarisLoadBalancerInterceptorTest { Map localMetadata = new HashMap<>(); localMetadata.put("k1", "v1"); localMetadata.put("k2", "v2"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); // mock expression rule labels Set expressionKeys = new HashSet<>(); @@ -120,11 +120,11 @@ public class PolarisLoadBalancerInterceptorTest { when(loadBalancerRequestFactory.createRequest(request, null, null)).thenReturn(loadBalancerRequest); PolarisLoadBalancerInterceptor polarisLoadBalancerInterceptor = new PolarisLoadBalancerInterceptor(loadBalancerClient, - loadBalancerRequestFactory, Collections.singletonList(routerLabelResolver), metadataLocalProperties, routerRuleLabelResolver); + loadBalancerRequestFactory, Collections.singletonList(routerLabelResolver), staticMetadataManager, routerRuleLabelResolver); polarisLoadBalancerInterceptor.intercept(request, null, null); - verify(metadataLocalProperties).getContent(); + verify(staticMetadataManager).getMergedStaticMetadata(); verify(routerRuleLabelResolver).getExpressionLabelKeys(callerService, callerService, calleeService); verify(routerLabelResolver).resolve(request, null, expressionKeys); } @@ -145,7 +145,7 @@ public class PolarisLoadBalancerInterceptorTest { PolarisLoadBalancerInterceptor polarisLoadBalancerInterceptor = new PolarisLoadBalancerInterceptor( notRibbonLoadBalancerClient, loadBalancerRequestFactory, - Collections.singletonList(routerLabelResolver), metadataLocalProperties, + Collections.singletonList(routerLabelResolver), staticMetadataManager, routerRuleLabelResolver); ClientHttpResponse response = polarisLoadBalancerInterceptor.intercept(request, null, null); @@ -166,7 +166,7 @@ public class PolarisLoadBalancerInterceptorTest { Map localMetadata = new HashMap<>(); localMetadata.put("k1", "v1"); localMetadata.put("k2", "v2"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); // mock expression rule labels Set expressionKeys = new HashSet<>(); @@ -197,12 +197,12 @@ public class PolarisLoadBalancerInterceptorTest { PolarisLoadBalancerInterceptor polarisLoadBalancerInterceptor = new PolarisLoadBalancerInterceptor(loadBalancerClient, loadBalancerRequestFactory, - Collections.singletonList(routerLabelResolver), metadataLocalProperties, + Collections.singletonList(routerLabelResolver), staticMetadataManager, routerRuleLabelResolver); PolarisRouterContext routerContext = polarisLoadBalancerInterceptor.genRouterContext(request, null, calleeService); - verify(metadataLocalProperties).getContent(); + verify(staticMetadataManager).getMergedStaticMetadata(); verify(routerRuleLabelResolver).getExpressionLabelKeys(callerService, callerService, calleeService); verify(routerLabelResolver).resolve(request, null, expressionKeys); @@ -211,8 +211,10 @@ public class PolarisLoadBalancerInterceptorTest { Assert.assertEquals("v1", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS).get("k1")); Assert.assertEquals("v22", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS).get("k2")); Assert.assertEquals("v4", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS).get("k4")); - Assert.assertEquals("GET", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS).get("${http.method}")); - Assert.assertEquals("/user/get", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS).get("${http.uri}")); + Assert.assertEquals("GET", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS) + .get("${http.method}")); + Assert.assertEquals("/user/get", routerContext.getLabels(PolarisRouterContext.ROUTER_LABELS) + .get("${http.uri}")); } } } diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilterTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilterTest.java index 544e55bb..05ec107f 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilterTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/scg/PolarisLoadBalancerClientFilterTest.java @@ -27,7 +27,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Sets; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.polaris.router.PolarisRouterContext; import com.tencent.cloud.polaris.router.RouterRuleLabelResolver; @@ -68,7 +68,7 @@ public class PolarisLoadBalancerClientFilterTest { private static MockedStatic mockedApplicationContextAwareUtils; private static MockedStatic mockedMetadataContextHolder; @Mock - private MetadataLocalProperties metadataLocalProperties; + private StaticMetadataManager staticMetadataManager; @Mock private RouterRuleLabelResolver routerRuleLabelResolver; @Mock @@ -105,12 +105,12 @@ public class PolarisLoadBalancerClientFilterTest { @Test public void testGenRouterContext() { PolarisLoadBalancerClientFilter polarisLoadBalancerClientFilter = new PolarisLoadBalancerClientFilter( - loadBalancerClient, loadBalancerProperties, metadataLocalProperties, routerRuleLabelResolver, + loadBalancerClient, loadBalancerProperties, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); Map localMetadata = new HashMap<>(); localMetadata.put("env", "blue"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); Set expressionLabelKeys = Sets.newHashSet("${http.header.k1}", "${http.query.userid}"); when(routerRuleLabelResolver.getExpressionLabelKeys(anyString(), anyString(), anyString())).thenReturn(expressionLabelKeys); @@ -138,7 +138,7 @@ public class PolarisLoadBalancerClientFilterTest { @Test public void testChooseInstanceWithoutRibbon() { PolarisLoadBalancerClientFilter polarisLoadBalancerClientFilter = new PolarisLoadBalancerClientFilter( - loadBalancerClient, loadBalancerProperties, metadataLocalProperties, routerRuleLabelResolver, + loadBalancerClient, loadBalancerProperties, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); String url = "/" + calleeService + "/users"; @@ -152,7 +152,7 @@ public class PolarisLoadBalancerClientFilterTest { polarisLoadBalancerClientFilter.choose(webExchange); verify(loadBalancerClient).choose(calleeService); - verify(metadataLocalProperties, times(0)).getContent(); + verify(staticMetadataManager, times(0)).getMergedStaticMetadata(); } @Test @@ -160,12 +160,12 @@ public class PolarisLoadBalancerClientFilterTest { RibbonLoadBalancerClient ribbonLoadBalancerClient = Mockito.mock(RibbonLoadBalancerClient.class); PolarisLoadBalancerClientFilter polarisLoadBalancerClientFilter = new PolarisLoadBalancerClientFilter( - ribbonLoadBalancerClient, loadBalancerProperties, metadataLocalProperties, routerRuleLabelResolver, + ribbonLoadBalancerClient, loadBalancerProperties, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); Map localMetadata = new HashMap<>(); localMetadata.put("env", "blue"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); Set expressionLabelKeys = Sets.newHashSet("${http.header.k1}", "${http.query.userid}"); when(routerRuleLabelResolver.getExpressionLabelKeys(anyString(), anyString(), anyString())).thenReturn(expressionLabelKeys); @@ -185,6 +185,6 @@ public class PolarisLoadBalancerClientFilterTest { polarisLoadBalancerClientFilter.choose(webExchange); verify(ribbonLoadBalancerClient).choose(anyString(), any()); - verify(metadataLocalProperties, times(1)).getContent(); + verify(staticMetadataManager, times(1)).getMergedStaticMetadata(); } } diff --git a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilterTest.java b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilterTest.java index bc6bb843..ca3bd4e3 100644 --- a/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilterTest.java +++ b/spring-cloud-starter-tencent-polaris-router/src/test/java/com/tencent/cloud/polaris/router/zuul/PolarisRibbonRoutingFilterTest.java @@ -31,7 +31,7 @@ import com.netflix.niws.client.http.RestClient; import com.netflix.zuul.context.RequestContext; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; +import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.polaris.loadbalancer.PolarisLoadBalancer; import com.tencent.cloud.polaris.router.PolarisRouterContext; @@ -81,7 +81,7 @@ public class PolarisRibbonRoutingFilterTest { private static MockedStatic mockedApplicationContextAwareUtils; private static MockedStatic mockedMetadataContextHolder; @Mock - private MetadataLocalProperties metadataLocalProperties; + private StaticMetadataManager staticMetadataManager; @Mock private RouterRuleLabelResolver routerRuleLabelResolver; @Mock @@ -122,12 +122,12 @@ public class PolarisRibbonRoutingFilterTest { @Test public void testGenRouterContext() { PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter(proxyRequestHelper, - ribbonCommandFactory, metadataLocalProperties, routerRuleLabelResolver, + ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); Map localMetadata = new HashMap<>(); localMetadata.put("env", "blue"); - when(metadataLocalProperties.getContent()).thenReturn(localMetadata); + when(staticMetadataManager.getMergedStaticMetadata()).thenReturn(localMetadata); Set expressionLabelKeys = Sets.newHashSet("${http.header.k1}", "${http.query.userid}"); when(routerRuleLabelResolver.getExpressionLabelKeys(anyString(), anyString(), anyString())) @@ -159,7 +159,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -184,7 +184,7 @@ public class PolarisRibbonRoutingFilterTest { command.execute(); verify(polarisLoadBalancer).chooseServer(calleeService); - verify(metadataLocalProperties, times(0)).getContent(); + verify(staticMetadataManager, times(0)).getMergedStaticMetadata(); } @Test @@ -194,7 +194,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -220,7 +220,7 @@ public class PolarisRibbonRoutingFilterTest { // RestClient not use loadBalancerKey verify(polarisLoadBalancer).chooseServer(null); - verify(metadataLocalProperties, times(0)).getContent(); + verify(staticMetadataManager, times(0)).getMergedStaticMetadata(); } @Test @@ -230,7 +230,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -255,7 +255,7 @@ public class PolarisRibbonRoutingFilterTest { command.execute(); verify(polarisLoadBalancer).chooseServer(calleeService); - verify(metadataLocalProperties, times(0)).getContent(); + verify(staticMetadataManager, times(0)).getMergedStaticMetadata(); } @Test @@ -265,7 +265,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -290,7 +290,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties, fallbackProvider, clientConfig); command.execute(); verify(polarisLoadBalancer).chooseServer(routerContext); - verify(metadataLocalProperties, times(1)).getContent(); + verify(staticMetadataManager, times(1)).getMergedStaticMetadata(); } @Test @@ -300,7 +300,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -327,7 +327,7 @@ public class PolarisRibbonRoutingFilterTest { // RestClient not use loadBalancerKey verify(polarisLoadBalancer).chooseServer(null); - verify(metadataLocalProperties, times(1)).getContent(); + verify(staticMetadataManager, times(1)).getMergedStaticMetadata(); } @Test @@ -337,7 +337,7 @@ public class PolarisRibbonRoutingFilterTest { zuulProperties.setThreadPool(new ZuulProperties.HystrixThreadPool()); PolarisRibbonRoutingFilter polarisRibbonRoutingFilter = new PolarisRibbonRoutingFilter( - new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, metadataLocalProperties, + new ProxyRequestHelper(zuulProperties), ribbonCommandFactory, staticMetadataManager, routerRuleLabelResolver, Lists.newArrayList(routerLabelResolver)); MockHttpServletRequest request = new MockHttpServletRequest(); @@ -367,6 +367,6 @@ public class PolarisRibbonRoutingFilterTest { command.execute(); verify(polarisLoadBalancer).chooseServer(routerContext); - verify(metadataLocalProperties, times(1)).getContent(); + verify(staticMetadataManager, times(1)).getMergedStaticMetadata(); } }