This is an automated email from the ASF dual-hosted git repository. liubao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git
commit 4120fa790ccc3956b3bf6aa242f4993c009a439d Author: liubao <bi...@qq.com> AuthorDate: Sun Oct 8 11:11:56 2023 +0800 [SCB-2008]remove archaius dependency: remove ArchaiusUtils usage and DynamicProperty --- .../config/inject/PlaceholderResolver.java | 4 +- .../config/priority/TestPriorityPropertyBase.java | 11 ++- .../java/org/apache/servicecomb/qps/Config.java | 2 + .../servicecomb/qps/ConsumerFlowControlFilter.java | 7 +- .../qps/FlowControlQpsConfiguration.java | 9 +- .../servicecomb/qps/ProviderFlowControlFilter.java | 7 +- .../servicecomb/qps/QpsControllerManager.java | 101 +++++++-------------- .../servicecomb/qps/QpsControllerManagerTest.java | 64 +++++++++---- .../generator/core/TestSwaggerGenerator.java | 21 ++--- 9 files changed, 120 insertions(+), 106 deletions(-) diff --git a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java index 050bcf50e..b05ab11a7 100644 --- a/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java +++ b/foundations/foundation-config/src/main/java/org/apache/servicecomb/config/inject/PlaceholderResolver.java @@ -25,7 +25,7 @@ import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.servicecomb.config.ConfigUtil; +import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; /** * <pre> @@ -203,7 +203,7 @@ public class PlaceholderResolver { private Object findValue(Map<String, Object> parameters, String key) { Object value = parameters.get(key); if (value == null) { - value = ConfigUtil.getProperty(key); + value = LegacyPropertyFactory.getStringProperty(key); } return value; } diff --git a/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/priority/TestPriorityPropertyBase.java b/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/priority/TestPriorityPropertyBase.java index 4f76abbae..1b2d5f450 100644 --- a/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/priority/TestPriorityPropertyBase.java +++ b/foundations/foundation-config/src/test/java/org/apache/servicecomb/config/priority/TestPriorityPropertyBase.java @@ -16,24 +16,31 @@ */ package org.apache.servicecomb.config.priority; -import com.netflix.config.DynamicPropertyFactory; import org.apache.logging.log4j.Level; import org.apache.logging.log4j.core.config.Configurator; +import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; +import org.mockito.Mockito; +import org.springframework.core.env.Environment; + +import com.netflix.config.DynamicPropertyFactory; public class TestPriorityPropertyBase { protected PriorityPropertyManager priorityPropertyManager; protected PriorityPropertyFactory propertyFactory; + protected Environment environment; + @BeforeEach public void setup() { // avoid write too many logs Configurator.setRootLevel(Level.OFF); - ArchaiusUtils.resetConfig(); + environment = Mockito.mock(Environment.class); + LegacyPropertyFactory.setEnvironment(environment); // make sure create a DynamicPropertyFactory instance // otherwise will cause wrong order of configurationListeners diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java index c7f286c2d..8325352d7 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/Config.java @@ -20,6 +20,8 @@ package org.apache.servicecomb.qps; import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; public final class Config { + public static final String CONFIG_PREFIX = "servicecomb.flowcontrol."; + public static final String STRATEGY_KEY = "servicecomb.flowcontrol.strategy"; public static final String ANY_SERVICE = "ANY"; diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java index ac848c56a..749514aae 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java @@ -29,11 +29,16 @@ import org.apache.servicecomb.swagger.invocation.InvocationType; import org.apache.servicecomb.swagger.invocation.Response; import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData; import org.apache.servicecomb.swagger.invocation.exception.InvocationException; +import org.springframework.core.env.Environment; import com.google.common.annotations.VisibleForTesting; public class ConsumerFlowControlFilter implements ConsumerFilter { - private final QpsControllerManager qpsControllerMgr = new QpsControllerManager(false); + private final QpsControllerManager qpsControllerMgr; + + public ConsumerFlowControlFilter(Environment environment) { + qpsControllerMgr = new QpsControllerManager(false, environment); + } @VisibleForTesting public QpsControllerManager getQpsControllerMgr() { diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java index de13eae57..27bef6dcb 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java @@ -19,6 +19,7 @@ package org.apache.servicecomb.qps; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; @Configuration @ConditionalOnProperty(value = FlowControlQpsConfiguration.FLOW_CONTROL_ENABLED, @@ -29,12 +30,12 @@ public class FlowControlQpsConfiguration { public static final String FLOW_CONTROL_ENABLED = FLOW_CONTROL_PREFIX + ".enabled"; @Bean - public ProviderFlowControlFilter providerFlowControlFilter() { - return new ProviderFlowControlFilter(); + public ProviderFlowControlFilter providerFlowControlFilter(Environment environment) { + return new ProviderFlowControlFilter(environment); } @Bean - public ConsumerFlowControlFilter consumerFlowControlFilter() { - return new ConsumerFlowControlFilter(); + public ConsumerFlowControlFilter consumerFlowControlFilter(Environment environment) { + return new ConsumerFlowControlFilter(environment); } } diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java index 9f5dcbbc3..c941f2900 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java @@ -30,11 +30,16 @@ import org.apache.servicecomb.swagger.invocation.InvocationType; import org.apache.servicecomb.swagger.invocation.Response; import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData; import org.apache.servicecomb.swagger.invocation.exception.InvocationException; +import org.springframework.core.env.Environment; import com.google.common.annotations.VisibleForTesting; public class ProviderFlowControlFilter implements ProviderFilter { - private final QpsControllerManager qpsControllerMgr = new QpsControllerManager(true); + private final QpsControllerManager qpsControllerMgr; + + public ProviderFlowControlFilter(Environment environment) { + qpsControllerMgr = new QpsControllerManager(true, environment); + } @Override public int getOrder(InvocationType invocationType, String application, String serviceName) { diff --git a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java index 436d6db13..8e33088e3 100644 --- a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java +++ b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/QpsControllerManager.java @@ -17,23 +17,26 @@ package org.apache.servicecomb.qps; -import java.util.Iterator; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.lang3.StringUtils; +import org.apache.servicecomb.config.ConfigurationChangedEvent; import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx; +import org.apache.servicecomb.foundation.common.event.EventManager; import org.apache.servicecomb.foundation.common.exceptions.ServiceCombException; import org.apache.servicecomb.foundation.common.utils.SPIServiceUtils; import org.apache.servicecomb.qps.strategy.AbstractQpsStrategy; import org.apache.servicecomb.qps.strategy.IStrategyFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.core.env.Environment; import com.google.common.annotations.VisibleForTesting; -import com.netflix.config.DynamicProperty; +import com.google.common.eventbus.Subscribe; public class QpsControllerManager { private static final Logger LOGGER = LoggerFactory.getLogger(QpsControllerManager.class); @@ -60,7 +63,10 @@ public class QpsControllerManager { private final String globalBucketKey; - public QpsControllerManager(boolean isProvider) { + private final Environment environment; + + public QpsControllerManager(boolean isProvider, Environment environment) { + this.environment = environment; if (isProvider) { limitKeyPrefix = Config.PROVIDER_LIMIT_KEY_PREFIX; bucketKeyPrefix = Config.PROVIDER_BUCKET_KEY_PREFIX; @@ -74,6 +80,24 @@ public class QpsControllerManager { } initGlobalQpsController(); + EventManager.register(this); + } + + @Subscribe + public void onConfigurationChangedEvent(ConfigurationChangedEvent event) { + Map<String, Object> changed = new HashMap<>(); + changed.putAll(event.getDeleted()); + changed.putAll(event.getAdded()); + changed.putAll(event.getUpdated()); + + for (Entry<String, Object> entry : changed.entrySet()) { + if (entry.getKey().startsWith(Config.CONFIG_PREFIX)) { + configQpsControllerMap.clear(); + qualifiedNameControllerMap.clear(); + initGlobalQpsController(); + break; + } + } } @VisibleForTesting @@ -172,74 +196,19 @@ public class QpsControllerManager { } LOGGER.info("Create qpsController, configKey = [{}]", configKey); - DynamicProperty limitProperty = DynamicProperty.getInstance(limitKeyPrefix + configKey); - DynamicProperty bucketProperty = DynamicProperty.getInstance(bucketKeyPrefix + configKey); - DynamicProperty strategyProperty = DynamicProperty.getInstance(Config.STRATEGY_KEY); - AbstractQpsStrategy qpsStrategy = chooseStrategy(configKey, limitProperty.getLong(), - bucketProperty.getLong(), strategyProperty.getString()); - - strategyProperty.addCallback(() -> { - AbstractQpsStrategy innerQpsStrategy = chooseStrategy(configKey, limitProperty.getLong(), - bucketProperty.getLong(), strategyProperty.getString()); - configQpsControllerMap.put(configKey, innerQpsStrategy); - LOGGER.info("Global flow control strategy update, value = [{}]", - strategyProperty.getString()); - updateObjMap(); - }); - limitProperty.addCallback(() -> { - qpsStrategy.setQpsLimit(limitProperty.getLong()); - LOGGER.info("Qps limit updated, configKey = [{}], value = [{}]", configKey, - limitProperty.getString()); - updateObjMap(); - }); - bucketProperty.addCallback(() -> { - qpsStrategy.setBucketLimit(bucketProperty.getLong()); - LOGGER.info("bucket limit updated, configKey = [{}], value = [{}]", configKey, - bucketProperty.getString()); - updateObjMap(); - }); + AbstractQpsStrategy qpsStrategy = chooseStrategy(configKey, + environment.getProperty(limitKeyPrefix + configKey, Long.class), + environment.getProperty(bucketKeyPrefix + configKey, Long.class), + environment.getProperty(Config.STRATEGY_KEY)); configQpsControllerMap.put(configKey, qpsStrategy); } - protected void updateObjMap() { - Iterator<Entry<String, AbstractQpsStrategy>> it = qualifiedNameControllerMap.entrySet().iterator(); - while (it.hasNext()) { - Map.Entry<String, AbstractQpsStrategy> entry = it.next(); - AbstractQpsStrategy qpsStrategy = searchQpsController(entry.getKey()); - if (qpsStrategy == null) { - it.remove(); - continue; - } - if (qpsStrategy != entry.getValue()) { - entry.setValue(qpsStrategy); - LOGGER.info("QpsController updated, operationId = [{}], configKey = [{}], qpsLimit = [{}]", - entry.getKey(), qpsStrategy.getKey(), qpsStrategy.getQpsLimit()); - } - } - } - private void initGlobalQpsController() { - DynamicProperty globalLimitProperty = DynamicProperty.getInstance(globalLimitKey); - DynamicProperty globalBucketProperty = DynamicProperty.getInstance(globalBucketKey); - DynamicProperty globalStrategyProperty = DynamicProperty - .getInstance(Config.STRATEGY_KEY); - globalQpsStrategy = chooseStrategy(globalLimitKey, globalLimitProperty.getLong((long) Integer.MAX_VALUE), - globalBucketProperty.getLong(), globalStrategyProperty.getString()); - globalStrategyProperty.addCallback(() -> { - globalQpsStrategy = chooseStrategy(globalLimitKey, globalLimitProperty.getLong((long) Integer.MAX_VALUE), - globalBucketProperty.getLong(), globalStrategyProperty.getString()); - LOGGER.info("Global flow control strategy update, value = [{}]", - globalStrategyProperty.getString()); - }); - globalLimitProperty.addCallback(() -> { - globalQpsStrategy.setQpsLimit(globalLimitProperty.getLong((long) Integer.MAX_VALUE)); - LOGGER.info("Global qps limit update, value = [{}]", globalLimitProperty.getLong()); - }); - globalBucketProperty.addCallback(() -> { - globalQpsStrategy.setBucketLimit(globalBucketProperty.getLong()); - LOGGER.info("Global bucket limit update, value = [{}]", globalBucketProperty.getLong()); - }); + globalQpsStrategy = chooseStrategy(globalLimitKey, + environment.getProperty(globalLimitKey, Long.class, (long) Integer.MAX_VALUE), + environment.getProperty(globalBucketKey, Long.class), + environment.getProperty(Config.STRATEGY_KEY)); } private AbstractQpsStrategy chooseStrategy(String configKey, Long limit, Long bucket, diff --git a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java index 8f4aaf135..e2b5f79fa 100644 --- a/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java +++ b/handlers/handler-flowcontrol-qps/src/test/java/org/apache/servicecomb/qps/QpsControllerManagerTest.java @@ -17,28 +17,36 @@ package org.apache.servicecomb.qps; +import java.util.HashMap; + +import org.apache.servicecomb.config.ConfigurationChangedEvent; +import org.apache.servicecomb.config.InMemoryDynamicPropertiesSource; import org.apache.servicecomb.core.Invocation; import org.apache.servicecomb.core.definition.OperationMeta; import org.apache.servicecomb.core.definition.SchemaMeta; -import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils; +import org.apache.servicecomb.foundation.common.event.EventManager; import org.apache.servicecomb.qps.strategy.AbstractQpsStrategy; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.Mockito; +import org.springframework.core.env.Environment; public class QpsControllerManagerTest { + static Environment environment = Mockito.mock(Environment.class); @BeforeEach public void beforeTest() { - // TODO: fix DynamicProperty - ArchaiusUtils.resetConfig(); + Mockito.when(environment.getProperty(Config.PROVIDER_LIMIT_KEY_GLOBAL, Long.class, (long) Integer.MAX_VALUE)) + .thenReturn((long) Integer.MAX_VALUE); + Mockito.when(environment.getProperty(Config.CONSUMER_LIMIT_KEY_GLOBAL, Long.class, (long) Integer.MAX_VALUE)) + .thenReturn((long) Integer.MAX_VALUE); } @AfterEach public void afterTest() { - ArchaiusUtils.resetConfig(); + } @Test @@ -49,7 +57,7 @@ public class QpsControllerManagerTest { Mockito.when(invocation.getSchemaId()).thenReturn("server"); Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test"); - QpsControllerManager testQpsControllerManager = new QpsControllerManager(false); + QpsControllerManager testQpsControllerManager = new QpsControllerManager(false, environment); initTestQpsControllerManager(false, testQpsControllerManager, invocation, operationMeta); // pojo @@ -65,12 +73,23 @@ public class QpsControllerManagerTest { Assertions.assertEquals(Config.CONSUMER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey()); Assertions.assertEquals(Integer.MAX_VALUE, ((AbstractQpsStrategy) qpsStrategy).getQpsLimit().intValue()); - ArchaiusUtils.setProperty("servicecomb.flowcontrol.Consumer.qps.limit.poj.server", 10000); + Mockito.when(environment.getProperty("servicecomb.flowcontrol.Consumer.qps.limit.poj.server", + Long.class)).thenReturn(Long.valueOf(10000)); + HashMap<String, Object> updated = new HashMap<>(); + updated.put("servicecomb.flowcontrol.Consumer.qps.limit.poj.server", Long.valueOf(10000)); + EventManager.post(ConfigurationChangedEvent.createIncremental(updated)); + qpsStrategy = testQpsControllerManager.getOrCreate("poj", invocation); Assertions.assertEquals("poj.server", ((AbstractQpsStrategy) qpsStrategy).getKey()); Assertions.assertEquals(((AbstractQpsStrategy) qpsStrategy).getQpsLimit(), (Long) 10000L); - ArchaiusUtils.setProperty("servicecomb.flowcontrol.Consumer.qps.limit.poj.server.test", 20000); + InMemoryDynamicPropertiesSource.update("servicecomb.flowcontrol.Consumer.qps.limit.poj.server.test", 20000); + Mockito.when(environment.getProperty("servicecomb.flowcontrol.Consumer.qps.limit.poj.server.test", + Long.class)).thenReturn(Long.valueOf(20000)); + updated = new HashMap<>(); + updated.put("servicecomb.flowcontrol.Consumer.qps.limit.poj.server.test", Long.valueOf(20000)); + EventManager.post(ConfigurationChangedEvent.createIncremental(updated)); + qpsStrategy = testQpsControllerManager.getOrCreate("poj", invocation); Assertions.assertEquals("poj.server.test", ((AbstractQpsStrategy) qpsStrategy).getKey()); Assertions.assertEquals(((AbstractQpsStrategy) qpsStrategy).getQpsLimit(), (Long) 20000L); @@ -86,10 +105,15 @@ public class QpsControllerManagerTest { Mockito.when(invocation.getSchemaId()).thenReturn("server"); Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("server.test"); - QpsControllerManager testQpsControllerManager = new QpsControllerManager(true); + QpsControllerManager testQpsControllerManager = new QpsControllerManager(true, environment); // global - setConfig(Config.PROVIDER_LIMIT_KEY_GLOBAL, 50); + Mockito.when(environment.getProperty(Config.PROVIDER_LIMIT_KEY_GLOBAL, Long.class, + (long) Integer.MAX_VALUE)).thenReturn(50L); + HashMap<String, Object> updated = new HashMap<>(); + updated.put(Config.PROVIDER_LIMIT_KEY_GLOBAL, 50L); + EventManager.post(ConfigurationChangedEvent.createIncremental(updated)); + QpsStrategy qpsStrategy = testQpsControllerManager.getOrCreate("pojo", invocation); Assertions.assertEquals(Config.PROVIDER_LIMIT_KEY_GLOBAL, ((AbstractQpsStrategy) qpsStrategy).getKey()); Assertions.assertEquals(50, (long) ((AbstractQpsStrategy) qpsStrategy).getQpsLimit()); @@ -122,7 +146,7 @@ public class QpsControllerManagerTest { Mockito.when(invocation.getOperationMeta()).thenReturn(operationMeta); Mockito.when(invocation.getSchemaId()).thenReturn("schema"); Mockito.when(operationMeta.getSchemaQualifiedName()).thenReturn("schema.opr"); - QpsControllerManager qpsControllerManager = new QpsControllerManager(true); + QpsControllerManager qpsControllerManager = new QpsControllerManager(true, environment); QpsStrategy qpsStrategy = qpsControllerManager.getOrCreate("service", invocation); Assertions.assertEquals("servicecomb.flowcontrol.Provider.qps.global.limit", ((AbstractQpsStrategy) qpsStrategy).getKey()); @@ -316,17 +340,16 @@ public class QpsControllerManagerTest { return operationMeta; } - public static void setConfig(String key, int value) { - ArchaiusUtils.setProperty(key, value); - } - private static void setConfigWithDefaultPrefix(boolean isProvider, String key, int value) { String configKey = Config.CONSUMER_LIMIT_KEY_PREFIX + key; if (isProvider) { configKey = Config.PROVIDER_LIMIT_KEY_PREFIX + key; } - ArchaiusUtils.setProperty(configKey, value); + Mockito.when(environment.getProperty(configKey, Long.class)).thenReturn(Long.valueOf(value)); + HashMap<String, Object> updated = new HashMap<>(); + updated.put(configKey, value); + EventManager.post(ConfigurationChangedEvent.createIncremental(updated)); } private static void deleteConfigWithDefaultPrefix(boolean isProvider, String key) { @@ -335,7 +358,10 @@ public class QpsControllerManagerTest { configKey = Config.PROVIDER_LIMIT_KEY_PREFIX + key; } - ArchaiusUtils.setProperty(configKey, null); + Mockito.when(environment.getProperty(configKey, Long.class)).thenReturn(null); + HashMap<String, Object> updated = new HashMap<>(); + updated.put(configKey, null); + EventManager.post(ConfigurationChangedEvent.createIncremental(updated)); } @Test @@ -346,7 +372,7 @@ public class QpsControllerManagerTest { final String operationId = "add"; final String configKey = "springmvcClient.controller.add"; - QpsControllerManager testManager = new QpsControllerManager(true); + QpsControllerManager testManager = new QpsControllerManager(true, environment); Invocation testInvocation = getMockInvocation(microserviceName, schemaId, operationId); Mockito.when(testInvocation.getSchemaId()).thenReturn(schemaId); @@ -358,6 +384,8 @@ public class QpsControllerManagerTest { QpsStrategy strategy2 = testManager.getOrCreate(microserviceName, testInvocation); - Assertions.assertEquals(strategy1, strategy2); + Assertions.assertEquals(((AbstractQpsStrategy) strategy1).getQpsLimit(), + ((AbstractQpsStrategy) strategy2).getQpsLimit()); + Assertions.assertEquals(((AbstractQpsStrategy) strategy1).getQpsLimit(), Long.valueOf(Integer.MAX_VALUE)); } } diff --git a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerGenerator.java b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerGenerator.java index 79c7890f7..a05bbce20 100644 --- a/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerGenerator.java +++ b/swagger/swagger-generator/generator-core/src/test/java/org/apache/servicecomb/swagger/generator/core/TestSwaggerGenerator.java @@ -17,29 +17,26 @@ package org.apache.servicecomb.swagger.generator.core; -import org.apache.servicecomb.foundation.test.scaffolding.config.ArchaiusUtils; +import org.apache.servicecomb.foundation.common.LegacyPropertyFactory; import org.apache.servicecomb.swagger.SwaggerUtils; import org.apache.servicecomb.swagger.generator.pojo.PojoSwaggerGenerator; -import org.junit.AfterClass; -import org.junit.BeforeClass; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.springframework.core.env.Environment; public class TestSwaggerGenerator { - @BeforeClass - public static void setup() { - ArchaiusUtils.resetConfig(); - } + Environment environment = Mockito.mock(Environment.class); - @AfterClass - public static void teardown() { - ArchaiusUtils.resetConfig(); + @BeforeEach + public void setUp() { + LegacyPropertyFactory.setEnvironment(environment); } @Test public void testBasePathPlaceHolder() { - // TODO: fix PlaceholderResolver - ArchaiusUtils.setProperty("var", "varValue"); + Mockito.when(environment.getProperty("var")).thenReturn("varValue"); PojoSwaggerGenerator swaggerGenerator = new PojoSwaggerGenerator(null); swaggerGenerator.setBasePath("/a/${var}/b");