This is an automated email from the ASF dual-hosted git repository.
hefengen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new fa813522b [type: refactor] polaris test refactor. (#4986)
fa813522b is described below
commit fa813522be09a1217da2e91ba3c714f5d58a515f
Author: DamonXue <[email protected]>
AuthorDate: Tue Aug 15 21:10:39 2023 +0800
[type: refactor] polaris test refactor. (#4986)
* polaris test refactor.
* 11.
* 11.
* 11.
* 11.
* 11.
---
shenyu-client/shenyu-client-core/pom.xml | 5 +
.../client/polaris/PolarisMockConfigFile.java | 90 +++++++++++++-
.../client/polaris/PolarisMockConfigService.java | 59 +++++----
.../data/polaris/PolarisSyncDataConfiguration.java | 4 +-
.../polaris/PolarisSyncDataConfigurationTest.java | 29 +++--
.../data/polaris/PolarisSyncDataServiceTest.java | 4 +-
.../polaris/handler/PolarisCacheHandlerTest.java | 21 ++--
.../polaris/handler/PolarisMockConfigFile.java | 138 ++++++++++++++++++++-
.../PolarisMockConfigFilePublishService.java | 64 ----------
.../handler/PolarisMockConfigFileService.java | 64 ----------
.../polaris/handler/PolarisMockConfigService.java | 111 +++++++++++++++++
11 files changed, 400 insertions(+), 189 deletions(-)
diff --git a/shenyu-client/shenyu-client-core/pom.xml
b/shenyu-client/shenyu-client-core/pom.xml
index 2986c7ec4..a4bfbf093 100644
--- a/shenyu-client/shenyu-client-core/pom.xml
+++ b/shenyu-client/shenyu-client-core/pom.xml
@@ -66,6 +66,11 @@
<artifactId>shenyu-register-client-apollo</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.shenyu</groupId>
+ <artifactId>shenyu-register-client-polaris</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
diff --git
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
index fc2097855..2fd82b56e 100644
---
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
+++
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigFile.java
@@ -20,10 +20,16 @@ package org.apache.shenyu.register.client.polaris;
import com.tencent.polaris.configuration.api.core.ConfigFile;
import com.tencent.polaris.configuration.api.core.ConfigFileChangeListener;
import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import com.tencent.polaris.configuration.api.core.ConfigKVFileChangeListener;
import java.lang.reflect.Type;
import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
-public class PolarisMockConfigFile implements ConfigFile {
+public class PolarisMockConfigFile implements ConfigFile, ConfigKVFile {
+
+ private final Properties properties = new Properties();
private final String namespace;
@@ -31,7 +37,7 @@ public class PolarisMockConfigFile implements ConfigFile {
private String fileName;
- private String content;
+ private final String content;
public PolarisMockConfigFile(final ConfigFileMetadata configFileMetadata) {
this(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
@@ -42,9 +48,7 @@ public class PolarisMockConfigFile implements ConfigFile {
}
public PolarisMockConfigFile(final String namespace, final String
fileGroup, final String fileName) {
- this.namespace = namespace;
- this.fileGroup = fileGroup;
- this.fileName = fileName;
+ this(namespace, fileGroup, fileName, null);
}
public PolarisMockConfigFile(final String namespace, final String
fileGroup, final String fileName, final String content) {
@@ -79,6 +83,16 @@ public class PolarisMockConfigFile implements ConfigFile {
}
+ @Override
+ public void addChangeListener(final ConfigKVFileChangeListener listener) {
+
+ }
+
+ @Override
+ public void removeChangeListener(final ConfigKVFileChangeListener
listener) {
+
+ }
+
@Override
public void removeChangeListener(final ConfigFileChangeListener
configFileChangeListener) {
@@ -124,4 +138,70 @@ public class PolarisMockConfigFile implements ConfigFile {
public int hashCode() {
return com.google.common.base.Objects.hashCode(getNamespace(),
getFileGroup(), getFileName());
}
+
+ @Override
+ public String getProperty(final String key, final String defaultValue) {
+ return properties.getProperty(key, defaultValue);
+ }
+
+ @Override
+ public Integer getIntProperty(final String key, final Integer
defaultValue) {
+ return Integer.valueOf(getProperty(key,
Integer.toString(defaultValue)));
+ }
+
+ @Override
+ public Long getLongProperty(final String key, final Long defaultValue) {
+ return Long.valueOf(getProperty(key, Long.toString(defaultValue)));
+ }
+
+ @Override
+ public Short getShortProperty(final String key, final Short defaultValue) {
+ return Short.valueOf(getProperty(key, Short.toString(defaultValue)));
+ }
+
+ @Override
+ public Float getFloatProperty(final String key, final Float defaultValue) {
+ return Float.valueOf(getProperty(key, Float.toString(defaultValue)));
+ }
+
+ @Override
+ public Double getDoubleProperty(final String key, final Double
defaultValue) {
+ return Double.valueOf(getProperty(key, Double.toString(defaultValue)));
+ }
+
+ @Override
+ public Byte getByteProperty(final String key, final Byte defaultValue) {
+ return Byte.valueOf(getProperty(key, Byte.toString(defaultValue)));
+ }
+
+ @Override
+ public Boolean getBooleanProperty(final String key, final Boolean
defaultValue) {
+ return Boolean.valueOf(getProperty(key,
Boolean.toString(defaultValue)));
+ }
+
+ @Override
+ public String[] getArrayProperty(final String key, final String delimiter,
final String[] defaultValue) {
+ return null;
+ }
+
+ @Override
+ public <T extends Enum<T>> T getEnumProperty(final String key, final
Class<T> enumType, final T defaultValue) {
+ return null;
+ }
+
+ @Override
+ public <T> T getJsonProperty(final String key, final Class<T> clazz, final
T defaultValue) {
+ return null;
+ }
+
+ @Override
+ public <T> T getJsonProperty(final String key, final Type typeOfT, final T
defaultValue) {
+ return null;
+ }
+
+ @Override
+ public Set<String> getPropertyNames() {
+ return null;
+ }
+
}
diff --git
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
index dfcdd06dc..3c120f5c5 100644
---
a/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
+++
b/shenyu-register-center/shenyu-register-client/shenyu-register-client-polaris/src/test/java/org/apache/shenyu/register/client/polaris/PolarisMockConfigService.java
@@ -17,13 +17,15 @@
package org.apache.shenyu.register.client.polaris;
+import com.tencent.polaris.api.exception.ServerCodes;
+import com.tencent.polaris.api.plugin.configuration.ConfigFile;
import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
-import com.tencent.polaris.configuration.api.core.ConfigFile;
import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
import com.tencent.polaris.configuration.api.core.ConfigFileService;
import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import
com.tencent.polaris.configuration.client.internal.DefaultConfigFileMetadata;
import java.util.Map;
public class PolarisMockConfigService implements ConfigFilePublishService,
ConfigFileService {
@@ -35,65 +37,76 @@ public class PolarisMockConfigService implements
ConfigFilePublishService, Confi
}
@Override
- public ConfigFileResponse createConfigFile(final String s, final String
s1, final String s2, final String s3) {
- return null;
+ public ConfigFileResponse createConfigFile(final String namespace, final
String fileGroup, final String fileName, final String content) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ store.put(configFileMetadata, content);
+ final ConfigFile configFile = new ConfigFile(namespace, fileGroup,
fileName);
+ configFile.setContent(content);
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
}
@Override
public ConfigFileResponse createConfigFile(final ConfigFileMetadata
configFileMetadata, final String content) {
- store.put(configFileMetadata, content);
- return null;
+ return createConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
}
@Override
- public ConfigFileResponse updateConfigFile(final String s, final String
s1, final String s2, final String s3) {
- return null;
+ public ConfigFileResponse updateConfigFile(final String namespace, final
String fileGroup, final String fileName, final String content) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ store.put(configFileMetadata, content);
+ final ConfigFile configFile =
+ new ConfigFile(namespace, fileGroup, fileName);
+ configFile.setContent(content);
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
}
@Override
public ConfigFileResponse updateConfigFile(final ConfigFileMetadata
configFileMetadata, final String content) {
- store.put(configFileMetadata, content);
- return null;
+ return updateConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
}
@Override
- public ConfigFileResponse releaseConfigFile(final String s, final String
s1, final String s2) {
- return null;
+ public ConfigFileResponse releaseConfigFile(final String namespace, final
String fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ final ConfigFile configFile = new ConfigFile(namespace, fileGroup,
fileName);
+ configFile.setContent(store.getOrDefault(configFileMetadata, "{}"));
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
}
@Override
public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
+ return releaseConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
}
@Override
- public ConfigKVFile getConfigPropertiesFile(final String s, final String
s1, final String s2) {
- return null;
+ public ConfigKVFile getConfigPropertiesFile(final String namespace, final
String fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
}
@Override
public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata
configFileMetadata) {
- store.get(configFileMetadata);
- return null;
+ return getConfigPropertiesFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
}
@Override
- public ConfigKVFile getConfigYamlFile(final String s, final String s1,
final String s2) {
- return null;
+ public ConfigKVFile getConfigYamlFile(final String namespace, final String
fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
}
@Override
public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
+ return getConfigYamlFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
}
@Override
- public ConfigFile getConfigFile(final String s, final String s1, final
String s2) {
- return null;
+ public com.tencent.polaris.configuration.api.core.ConfigFile
getConfigFile(final String namespace, final String fileGroup, final String
fileName) {
+ return getConfigFile(new DefaultConfigFileMetadata(namespace,
fileGroup, fileName));
}
@Override
- public ConfigFile getConfigFile(final ConfigFileMetadata
configFileMetadata) {
- return new PolarisMockConfigFile(configFileMetadata,
store.get(configFileMetadata));
+ public com.tencent.polaris.configuration.api.core.ConfigFile
getConfigFile(final ConfigFileMetadata configFileMetadata) {
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
}
}
diff --git
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
index eb7a555ef..b31be4784 100644
---
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
+++
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/main/java/org/apache/shenyu/springboot/starter/sync/data/polaris/PolarisSyncDataConfiguration.java
@@ -61,13 +61,13 @@ public class PolarisSyncDataConfiguration {
* @return the sync data service
*/
@Bean
- public SyncDataService polarisSyncDataService(final PolarisConfig
polarisConfig, final ObjectProvider<ConfigFileService> configFileServices,
+ public SyncDataService polarisSyncDataService(final
ObjectProvider<PolarisConfig> polarisConfig, final
ObjectProvider<ConfigFileService> configFileServices,
final
ObjectProvider<PluginDataSubscriber> pluginSubscriber,
final
ObjectProvider<List<MetaDataSubscriber>> metaSubscribers,
final
ObjectProvider<List<AuthDataSubscriber>> authSubscribers,
final
ObjectProvider<List<ProxySelectorDataSubscriber>> proxySelectorSubscribers) {
LOGGER.info("you use polaris sync shenyu data.......");
- return new PolarisSyncDataService(polarisConfig,
configFileServices.getIfAvailable(), pluginSubscriber.getIfAvailable(),
+ return new PolarisSyncDataService(polarisConfig.getIfAvailable(),
configFileServices.getIfAvailable(), pluginSubscriber.getIfAvailable(),
metaSubscribers.getIfAvailable(Collections::emptyList),
authSubscribers.getIfAvailable(Collections::emptyList),
proxySelectorSubscribers.getIfAvailable());
}
diff --git
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
index dcbe8a75f..0febf044a 100644
---
a/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
+++
b/shenyu-spring-boot-starter/shenyu-spring-boot-starter-sync-data-center/shenyu-spring-boot-starter-sync-data-polaris/src/test/java/org/apache/shenyu/springboot/stater/sync/data/polaris/PolarisSyncDataConfigurationTest.java
@@ -17,10 +17,16 @@
package org.apache.shenyu.springboot.stater.sync.data.polaris;
+import com.tencent.polaris.client.api.SDKContext;
+import com.tencent.polaris.configuration.api.core.ConfigFileService;
+import com.tencent.polaris.configuration.client.DefaultConfigFileService;
import
org.apache.shenyu.springboot.starter.sync.data.polaris.PolarisSyncDataConfiguration;
import org.apache.shenyu.sync.data.api.SyncDataService;
import org.apache.shenyu.sync.data.polaris.config.PolarisConfig;
import org.junit.jupiter.api.Assertions;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
@@ -28,8 +34,6 @@ import
org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-
/**
* The test case for {@link PolarisSyncDataConfiguration}.
*/
@@ -37,13 +41,15 @@ import static
org.junit.jupiter.api.Assertions.assertNotNull;
@SpringBootTest(
classes = PolarisSyncDataConfiguration.class,
properties = {
- "shenyu.sync.polaris.url=127.0.0.1:8093",
+ "shenyu.sync.polaris.url=" +
PolarisSyncDataConfigurationTest.URL,
"shenyu.sync.polaris.namespace=default",
"shenyu.sync.polaris.fileGroup=fileGroup"
})
@EnableAutoConfiguration
public final class PolarisSyncDataConfigurationTest {
+ public static final String URL = "127.0.0.1:8093";
+
@Autowired
private SyncDataService syncDataService;
@@ -51,18 +57,15 @@ public final class PolarisSyncDataConfigurationTest {
private PolarisConfig polarisConfig;
@Test
- public void polarisSyncDataServiceTest() {
+ public void polarisConfigServiceTest() {
assertNotNull(syncDataService);
- }
-
- @Test
- public void polarisConfigTest() {
assertNotNull(polarisConfig);
- }
-
- @Test
- public void polarisConfigServiceTest() {
final PolarisSyncDataConfiguration polarisSyncDataConfiguration = new
PolarisSyncDataConfiguration();
- Assertions.assertDoesNotThrow(() ->
polarisSyncDataConfiguration.polarisConfigServices(polarisConfig));
+
+ final ConfigFileService configFileService =
Assertions.assertDoesNotThrow(() ->
polarisSyncDataConfiguration.polarisConfigServices(polarisConfig));
+ assertInstanceOf(DefaultConfigFileService.class, configFileService);
+ DefaultConfigFileService defaultConfigFileService =
(DefaultConfigFileService) configFileService;
+ final SDKContext sdkContext = defaultConfigFileService.getSDKContext();
+
assertTrue(sdkContext.getConfig().getConfigFile().getServerConnector().getAddresses().contains(PolarisSyncDataConfigurationTest.URL));
}
}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
index 96995e83e..043a21ec1 100644
---
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
+++
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/PolarisSyncDataServiceTest.java
@@ -19,7 +19,7 @@ package org.apache.shenyu.sync.data.polaris;
import com.tencent.polaris.configuration.api.core.ConfigFileService;
import org.apache.shenyu.sync.data.polaris.config.PolarisConfig;
-import
org.apache.shenyu.sync.data.polaris.handler.PolarisMockConfigFileService;
+import org.apache.shenyu.sync.data.polaris.handler.PolarisMockConfigService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -36,7 +36,7 @@ public class PolarisSyncDataServiceTest {
@BeforeEach
public void setup() {
PolarisConfig polarisConfig = new PolarisConfig();
- ConfigFileService configFileService = new
PolarisMockConfigFileService(new HashMap<>());
+ ConfigFileService configFileService = new PolarisMockConfigService(new
HashMap<>());
polarisSyncDataService = new PolarisSyncDataService(polarisConfig,
configFileService, null,
Collections.emptyList(), Collections.emptyList(),
Collections.emptyList());
}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
index 377bbc472..90012f163 100644
---
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
+++
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisCacheHandlerTest.java
@@ -24,6 +24,7 @@ import com.google.common.collect.Maps;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.tencent.polaris.api.exception.PolarisException;
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
import com.tencent.polaris.configuration.api.core.ConfigFileService;
import org.apache.shenyu.common.dto.AppAuthData;
@@ -92,12 +93,12 @@ public class PolarisCacheHandlerTest {
private ConfigFilePublishService configFilePublishService;
- private final Map<String, String> store = new HashMap<>();
+ private final Map<ConfigFileMetadata, String> store = new HashMap<>();
@BeforeEach
public void setUp() {
- configFileService = new PolarisMockConfigFileService(store);
- configFilePublishService = new
PolarisMockConfigFilePublishService(store);
+ configFileService = new PolarisMockConfigService(store);
+ configFilePublishService = new PolarisMockConfigService(store);
}
@Test
@@ -133,7 +134,7 @@ public class PolarisCacheHandlerTest {
assertEquals(2, onSubscribeList.size());
assertEquals(2, unsubscribeList.size());
assertEquals(
- configFileService.getConfigFile(PLUGIN_DATA_FILE_NAME,
NAMESPACE, "1").getContent(),
+ configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
PLUGIN_DATA_FILE_NAME).getContent(),
ImmutableMap.of(pluginName2, pluginData2, pluginName1,
pluginData1).toString());
}
@@ -179,7 +180,7 @@ public class PolarisCacheHandlerTest {
assertEquals(2, subscribeList.size());
assertEquals(2, unsubscribeList.size());
assertEquals(
- configFileService.getConfigFile(SELECTOR_DATA_FILE_NAME,
NAMESPACE, "1").getContent(),
+ configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
SELECTOR_DATA_FILE_NAME).getContent(),
ImmutableMap.of(
selectorDataPluginName2,
ImmutableList.of(selectorData2),
@@ -223,7 +224,7 @@ public class PolarisCacheHandlerTest {
assertEquals(2, subscribeList.size());
assertEquals(2, unsubscribeList.size());
assertEquals(
- configFileService.getConfigFile(RULE_DATA_FILE_NAME,
NAMESPACE, "1").getContent(),
+ configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
RULE_DATA_FILE_NAME).getContent(),
ImmutableMap.of(
selectorId2,
ImmutableList.of(ruleData2),
@@ -263,7 +264,7 @@ public class PolarisCacheHandlerTest {
assertEquals(2, subscribeList.size());
assertEquals(2, unsubscribeList.size());
assertEquals(
- configFileService.getConfigFile(META_DATA_FILE_NAME,
NAMESPACE, "1").getContent(),
+ configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
META_DATA_FILE_NAME).getContent(),
ImmutableMap.of(metadataPath1, metaData1, metadataPath2,
metaData2).toString());
}
@@ -304,7 +305,7 @@ public class PolarisCacheHandlerTest {
assertEquals(2, subscribeList.size());
assertEquals(2, unsubscribeList.size());
assertEquals(
- configFileService.getConfigFile(AUTH_DATA_ID_FILE_NAME,
NAMESPACE, "1").getContent(),
+ configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
AUTH_DATA_ID_FILE_NAME).getContent(),
ImmutableMap.of(mockAppKey2, appAuthData2, mockAppKey,
appAuthData).toString());
}
@@ -460,10 +461,10 @@ public class PolarisCacheHandlerTest {
}
private String getConfig(final String fileName) throws PolarisException {
- return configFileService.getConfigFile(fileName, NAMESPACE,
FILE_GROUP).getContent();
+ return configFileService.getConfigFile(NAMESPACE, FILE_GROUP,
fileName).getContent();
}
private void publishConfig(final String fileName, final Object data)
throws PolarisException {
- configFilePublishService.createConfigFile(fileName, NAMESPACE,
FILE_GROUP, data.toString());
+ configFilePublishService.createConfigFile(NAMESPACE, FILE_GROUP,
fileName, data.toString());
}
}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
index f8cec6017..fbf1d3470 100644
---
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
+++
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFile.java
@@ -19,14 +19,38 @@ package org.apache.shenyu.sync.data.polaris.handler;
import com.tencent.polaris.configuration.api.core.ConfigFile;
import com.tencent.polaris.configuration.api.core.ConfigFileChangeListener;
-
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import com.tencent.polaris.configuration.api.core.ConfigKVFileChangeListener;
import java.lang.reflect.Type;
+import java.util.Objects;
+import java.util.Properties;
+import java.util.Set;
+
+public class PolarisMockConfigFile implements ConfigFile, ConfigKVFile {
+
+ private final Properties properties = new Properties();
+
+ private final String namespace;
+
+ private final String fileGroup;
-public class PolarisMockConfigFile implements ConfigFile {
+ private String fileName;
private final String content;
- public PolarisMockConfigFile(final String content) {
+ public PolarisMockConfigFile(final ConfigFileMetadata configFileMetadata,
final String content) {
+ this(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+ }
+
+ public PolarisMockConfigFile(final String namespace, final String
fileGroup, final String fileName) {
+ this(namespace, fileGroup, fileName, null);
+ }
+
+ public PolarisMockConfigFile(final String namespace, final String
fileGroup, final String fileName, final String content) {
+ this.namespace = namespace;
+ this.fileGroup = fileGroup;
+ this.fileName = fileName;
this.content = content;
}
@@ -47,7 +71,7 @@ public class PolarisMockConfigFile implements ConfigFile {
@Override
public boolean hasContent() {
- return false;
+ return Objects.nonNull(content);
}
@Override
@@ -55,6 +79,16 @@ public class PolarisMockConfigFile implements ConfigFile {
}
+ @Override
+ public void addChangeListener(final ConfigKVFileChangeListener listener) {
+
+ }
+
+ @Override
+ public void removeChangeListener(final ConfigKVFileChangeListener
listener) {
+
+ }
+
@Override
public void removeChangeListener(final ConfigFileChangeListener
configFileChangeListener) {
@@ -62,16 +96,108 @@ public class PolarisMockConfigFile implements ConfigFile {
@Override
public String getNamespace() {
- return null;
+ return namespace;
}
@Override
public String getFileGroup() {
- return null;
+ return fileGroup;
+ }
+
+ /**
+ * set file name.
+ * @param fileName fileName
+ */
+ public void setFileName(final String fileName) {
+ this.fileName = fileName;
}
@Override
public String getFileName() {
+ return fileName;
+ }
+
+ @Override
+ public boolean equals(final Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (!(o instanceof ConfigFileMetadata)) {
+ return false;
+ }
+ final ConfigFileMetadata that = (ConfigFileMetadata) o;
+ return Objects.equals(getNamespace(), that.getNamespace()) &&
Objects.equals(getFileGroup(), that.getFileGroup())
+ && Objects.equals(getFileName(), that.getFileName());
+ }
+
+ @Override
+ public int hashCode() {
+ return com.google.common.base.Objects.hashCode(getNamespace(),
getFileGroup(), getFileName());
+ }
+
+ @Override
+ public String getProperty(final String key, final String defaultValue) {
+ return properties.getProperty(key, defaultValue);
+ }
+
+ @Override
+ public Integer getIntProperty(final String key, final Integer
defaultValue) {
+ return Integer.valueOf(getProperty(key,
Integer.toString(defaultValue)));
+ }
+
+ @Override
+ public Long getLongProperty(final String key, final Long defaultValue) {
+ return Long.valueOf(getProperty(key, Long.toString(defaultValue)));
+ }
+
+ @Override
+ public Short getShortProperty(final String key, final Short defaultValue) {
+ return Short.valueOf(getProperty(key, Short.toString(defaultValue)));
+ }
+
+ @Override
+ public Float getFloatProperty(final String key, final Float defaultValue) {
+ return Float.valueOf(getProperty(key, Float.toString(defaultValue)));
+ }
+
+ @Override
+ public Double getDoubleProperty(final String key, final Double
defaultValue) {
+ return Double.valueOf(getProperty(key, Double.toString(defaultValue)));
+ }
+
+ @Override
+ public Byte getByteProperty(final String key, final Byte defaultValue) {
+ return Byte.valueOf(getProperty(key, Byte.toString(defaultValue)));
+ }
+
+ @Override
+ public Boolean getBooleanProperty(final String key, final Boolean
defaultValue) {
+ return Boolean.valueOf(getProperty(key,
Boolean.toString(defaultValue)));
+ }
+
+ @Override
+ public String[] getArrayProperty(final String key, final String delimiter,
final String[] defaultValue) {
+ return new String[0];
+ }
+
+ @Override
+ public <T extends Enum<T>> T getEnumProperty(final String key, final
Class<T> enumType, final T defaultValue) {
return null;
}
+
+ @Override
+ public <T> T getJsonProperty(final String key, final Class<T> clazz, final
T defaultValue) {
+ return null;
+ }
+
+ @Override
+ public <T> T getJsonProperty(final String key, final Type typeOfT, final T
defaultValue) {
+ return null;
+ }
+
+ @Override
+ public Set<String> getPropertyNames() {
+ return null;
+ }
+
}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
deleted file mode 100644
index 54d5e3a00..000000000
---
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFilePublishService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shenyu.sync.data.polaris.handler;
-
-import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
-import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
-import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
-
-import java.util.Map;
-
-public class PolarisMockConfigFilePublishService implements
ConfigFilePublishService {
-
- private final Map<String, String> store;
-
- public PolarisMockConfigFilePublishService(final Map<String, String>
store) {
- this.store = store;
- }
-
- @Override
- public ConfigFileResponse createConfigFile(final String s, final String
s1, final String s2, final String s3) {
- store.put(s, s3);
- return null;
- }
-
- @Override
- public ConfigFileResponse createConfigFile(final ConfigFileMetadata
configFileMetadata, final String s) {
- return null;
- }
-
- @Override
- public ConfigFileResponse updateConfigFile(final String s, final String
s1, final String s2, final String s3) {
- return null;
- }
-
- @Override
- public ConfigFileResponse updateConfigFile(final ConfigFileMetadata
configFileMetadata, final String s) {
- return null;
- }
-
- @Override
- public ConfigFileResponse releaseConfigFile(final String s, final String
s1, final String s2) {
- return null;
- }
-
- @Override
- public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
- }
-}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
deleted file mode 100644
index 1bbc6eed6..000000000
---
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigFileService.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You 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.apache.shenyu.sync.data.polaris.handler;
-
-import com.tencent.polaris.configuration.api.core.ConfigFile;
-import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
-import com.tencent.polaris.configuration.api.core.ConfigFileService;
-import com.tencent.polaris.configuration.api.core.ConfigKVFile;
-
-import java.util.Map;
-
-public class PolarisMockConfigFileService implements ConfigFileService {
-
- private final Map<String, String> store;
-
- public PolarisMockConfigFileService(final Map<String, String> store) {
- this.store = store;
- }
-
- @Override
- public ConfigKVFile getConfigPropertiesFile(final String s, final String
s1, final String s2) {
- return null;
- }
-
- @Override
- public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
- }
-
- @Override
- public ConfigKVFile getConfigYamlFile(final String s, final String s1,
final String s2) {
- return null;
- }
-
- @Override
- public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
- }
-
- @Override
- public ConfigFile getConfigFile(final String s, final String s1, final
String s2) {
- return new PolarisMockConfigFile(store.getOrDefault(s, "{}"));
- }
-
- @Override
- public ConfigFile getConfigFile(final ConfigFileMetadata
configFileMetadata) {
- return null;
- }
-}
diff --git
a/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
new file mode 100644
index 000000000..ec39a9935
--- /dev/null
+++
b/shenyu-sync-data-center/shenyu-sync-data-polaris/src/test/java/org/apache/shenyu/sync/data/polaris/handler/PolarisMockConfigService.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.apache.shenyu.sync.data.polaris.handler;
+
+import com.tencent.polaris.api.exception.ServerCodes;
+import com.tencent.polaris.api.plugin.configuration.ConfigFile;
+import com.tencent.polaris.api.plugin.configuration.ConfigFileResponse;
+import com.tencent.polaris.configuration.api.core.ConfigFileMetadata;
+import com.tencent.polaris.configuration.api.core.ConfigFilePublishService;
+import com.tencent.polaris.configuration.api.core.ConfigFileService;
+import com.tencent.polaris.configuration.api.core.ConfigKVFile;
+import
com.tencent.polaris.configuration.client.internal.DefaultConfigFileMetadata;
+import java.util.Map;
+
+public class PolarisMockConfigService implements ConfigFilePublishService,
ConfigFileService {
+
+ private final Map<ConfigFileMetadata, String> store;
+
+ public PolarisMockConfigService(final Map<ConfigFileMetadata, String>
store) {
+ this.store = store;
+ }
+
+ @Override
+ public ConfigFileResponse createConfigFile(final String namespace, final
String fileGroup, final String fileName, final String content) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ store.put(configFileMetadata, content);
+ final ConfigFile configFile = new ConfigFile(namespace, fileGroup,
fileName);
+ configFile.setContent(content);
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
+ }
+
+ @Override
+ public ConfigFileResponse createConfigFile(final ConfigFileMetadata
configFileMetadata, final String content) {
+ return createConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+ }
+
+ @Override
+ public ConfigFileResponse updateConfigFile(final String namespace, final
String fileGroup, final String fileName, final String content) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ store.put(configFileMetadata, content);
+ final ConfigFile configFile =
+ new ConfigFile(namespace, fileGroup, fileName);
+ configFile.setContent(content);
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
+ }
+
+ @Override
+ public ConfigFileResponse updateConfigFile(final ConfigFileMetadata
configFileMetadata, final String content) {
+ return updateConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName(), content);
+ }
+
+ @Override
+ public ConfigFileResponse releaseConfigFile(final String namespace, final
String fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ final ConfigFile configFile = new ConfigFile(namespace, fileGroup,
fileName);
+ configFile.setContent(store.getOrDefault(configFileMetadata, "{}"));
+ return new ConfigFileResponse(ServerCodes.EXECUTE_SUCCESS, "success",
configFile);
+ }
+
+ @Override
+ public ConfigFileResponse releaseConfigFile(final ConfigFileMetadata
configFileMetadata) {
+ return releaseConfigFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+ }
+
+ @Override
+ public ConfigKVFile getConfigPropertiesFile(final String namespace, final
String fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
+ }
+
+ @Override
+ public ConfigKVFile getConfigPropertiesFile(final ConfigFileMetadata
configFileMetadata) {
+ return getConfigPropertiesFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+ }
+
+ @Override
+ public ConfigKVFile getConfigYamlFile(final String namespace, final String
fileGroup, final String fileName) {
+ final DefaultConfigFileMetadata configFileMetadata = new
DefaultConfigFileMetadata(namespace, fileGroup, fileName);
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
+ }
+
+ @Override
+ public ConfigKVFile getConfigYamlFile(final ConfigFileMetadata
configFileMetadata) {
+ return getConfigYamlFile(configFileMetadata.getNamespace(),
configFileMetadata.getFileGroup(), configFileMetadata.getFileName());
+ }
+
+ @Override
+ public com.tencent.polaris.configuration.api.core.ConfigFile
getConfigFile(final String namespace, final String fileGroup, final String
fileName) {
+ return getConfigFile(new DefaultConfigFileMetadata(namespace,
fileGroup, fileName));
+ }
+
+ @Override
+ public com.tencent.polaris.configuration.api.core.ConfigFile
getConfigFile(final ConfigFileMetadata configFileMetadata) {
+ return new PolarisMockConfigFile(configFileMetadata,
store.getOrDefault(configFileMetadata, "{}"));
+ }
+}