You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/01/29 02:06:30 UTC
[shardingsphere] branch master updated: Refactor YamlEngine (#9190)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new c2ec8f5 Refactor YamlEngine (#9190)
c2ec8f5 is described below
commit c2ec8f55408c9fbebcebf86e98ece2b0a043fb4e
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Fri Jan 29 10:05:51 2021 +0800
Refactor YamlEngine (#9190)
* Refactor YamlEngine
* Refactor YamlEngine
* Refactor YamlEngine
---
.../governance/core/config/ConfigCenter.java | 11 ++++---
.../config/listener/PropertiesChangedListener.java | 2 +-
.../metadata/DataSourceChangedListener.java | 2 +-
.../listener/metadata/RuleChangedListener.java | 9 +++---
.../yaml/config/YamlRuleConfigurationWrap.java | 28 ++++++++---------
.../governance/core/config/ConfigCenterTest.java | 3 +-
.../infra/yaml/engine/YamlEngine.java | 35 +++++++++++-----------
...va => ShardingSphereFilterYamlConstructor.java} | 18 +++++++----
.../config/YamlEngineUserConfigurationTest.java | 2 +-
.../infra/yaml/engine/YamlEngineTest.java | 16 ++++++----
.../reg_center/config_center/data-sources.yaml | 4 +--
11 files changed, 73 insertions(+), 57 deletions(-)
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java
index 1936d37..054be2b 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/ConfigCenter.java
@@ -33,6 +33,7 @@ import org.apache.shardingsphere.governance.core.event.model.schema.SchemaNamePe
import org.apache.shardingsphere.governance.core.event.model.schema.SchemaPersistEvent;
import org.apache.shardingsphere.governance.core.yaml.config.YamlDataSourceConfiguration;
import org.apache.shardingsphere.governance.core.yaml.config.YamlDataSourceConfigurationWrap;
+import org.apache.shardingsphere.governance.core.yaml.config.YamlRuleConfigurationWrap;
import org.apache.shardingsphere.governance.core.yaml.config.schema.YamlSchema;
import org.apache.shardingsphere.governance.core.yaml.swapper.DataSourceConfigurationYamlSwapper;
import org.apache.shardingsphere.governance.core.yaml.swapper.SchemaYamlSwapper;
@@ -50,7 +51,6 @@ import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapper
import java.util.ArrayList;
import java.util.Collection;
-import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.LinkedList;
@@ -293,7 +293,8 @@ public final class ConfigCenter {
if (!hasDataSourceConfiguration(schemaName)) {
return new LinkedHashMap<>();
}
- YamlDataSourceConfigurationWrap result = YamlEngine.unmarshal(repository.get(node.getDataSourcePath(schemaName)), YamlDataSourceConfigurationWrap.class, true);
+ YamlDataSourceConfigurationWrap result = YamlEngine.unmarshalWithFilter(repository.get(node.getDataSourcePath(schemaName)),
+ YamlDataSourceConfigurationWrap.class);
return result.getDataSources().entrySet().stream().collect(Collectors.toMap(Entry::getKey,
entry -> new DataSourceConfigurationYamlSwapper().swapToObject(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new));
}
@@ -306,7 +307,8 @@ public final class ConfigCenter {
*/
public Collection<RuleConfiguration> loadRuleConfigurations(final String schemaName) {
return hasRuleConfiguration(schemaName) ? new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(
- YamlEngine.unmarshal(repository.get(node.getRulePath(schemaName)), YamlRootRuleConfigurations.class, true).getRules()) : new LinkedList<>();
+ YamlEngine.unmarshalWithFilter(repository.get(node.getRulePath(schemaName)),
+ YamlRuleConfigurationWrap.class).getRules()) : new LinkedList<>();
}
/**
@@ -326,7 +328,8 @@ public final class ConfigCenter {
* @return properties
*/
public Properties loadProperties() {
- return YamlEngine.unmarshalProperties(repository.get(node.getPropsPath()), Collections.singletonList(Properties.class));
+ return Strings.isNullOrEmpty(repository.get(node.getPropsPath())) ? new Properties()
+ : YamlEngine.unmarshalWithFilter(repository.get(node.getPropsPath()), Properties.class);
}
/**
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
index 29937cc..daba89b 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/PropertiesChangedListener.java
@@ -40,6 +40,6 @@ public final class PropertiesChangedListener extends PostGovernanceRepositoryEve
@Override
protected Optional<GovernanceEvent> createEvent(final DataChangedEvent event) {
- return Optional.of(new PropertiesChangedEvent(YamlEngine.unmarshalProperties(event.getValue(), Collections.singletonList(Properties.class))));
+ return Optional.of(new PropertiesChangedEvent(YamlEngine.unmarshalWithFilter(event.getValue(), Properties.class)));
}
}
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
index f60a496..c615294 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/DataSourceChangedListener.java
@@ -62,7 +62,7 @@ public final class DataSourceChangedListener extends PostGovernanceRepositoryEve
}
private DataSourceChangedEvent createDataSourceChangedEvent(final String schemaName, final DataChangedEvent event) {
- YamlDataSourceConfigurationWrap result = YamlEngine.unmarshal(event.getValue(), YamlDataSourceConfigurationWrap.class, true);
+ YamlDataSourceConfigurationWrap result = YamlEngine.unmarshalWithFilter(event.getValue(), YamlDataSourceConfigurationWrap.class);
Preconditions.checkState(null != result && !result.getDataSources().isEmpty(), "No available data sources to load for governance.");
return new DataSourceChangedEvent(schemaName, result.getDataSources().entrySet().stream()
.collect(Collectors.toMap(Entry::getKey, entry -> new DataSourceConfigurationYamlSwapper().swapToObject(entry.getValue()), (oldValue, currentValue) -> oldValue, LinkedHashMap::new)));
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
index 6fb3fa1..e6dcec3 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/config/listener/metadata/RuleChangedListener.java
@@ -24,10 +24,11 @@ import org.apache.shardingsphere.governance.core.event.listener.PostGovernanceRe
import org.apache.shardingsphere.governance.core.event.model.GovernanceEvent;
import org.apache.shardingsphere.governance.core.event.model.rule.RuleConfigurationCachedEvent;
import org.apache.shardingsphere.governance.core.event.model.rule.RuleConfigurationsChangedEvent;
+import org.apache.shardingsphere.governance.core.yaml.config.YamlRuleConfigurationWrap;
import org.apache.shardingsphere.governance.repository.api.ConfigurationRepository;
import org.apache.shardingsphere.governance.repository.api.listener.DataChangedEvent;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
-import org.apache.shardingsphere.infra.yaml.config.YamlRootRuleConfigurations;
+import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
import org.apache.shardingsphere.infra.yaml.swapper.YamlRuleConfigurationSwapperEngine;
@@ -75,9 +76,9 @@ public final class RuleChangedListener extends PostGovernanceRepositoryEventList
}
private Collection<RuleConfiguration> getRuleConfigurations(final String yamlContent) {
- YamlRootRuleConfigurations configurations = YamlEngine.unmarshal(yamlContent, YamlRootRuleConfigurations.class, true);
- Preconditions.checkState(null != configurations, "No available rule to load for governance.");
- return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(configurations.getRules());
+ Collection<YamlRuleConfiguration> rules = YamlEngine.unmarshalWithFilter(yamlContent, YamlRuleConfigurationWrap.class).getRules();
+ Preconditions.checkState(!rules.isEmpty(), "No available rule to load for governance.");
+ return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(rules);
}
private GovernanceEvent createRuleConfigurationCachedEvent(final String schemaName, final DataChangedEvent event) {
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/PackageFilterConstructor.java b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlRuleConfigurationWrap.java
similarity index 56%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/PackageFilterConstructor.java
rename to shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlRuleConfigurationWrap.java
index ab67d62..253a8cb 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/PackageFilterConstructor.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/main/java/org/apache/shardingsphere/governance/core/yaml/config/YamlRuleConfigurationWrap.java
@@ -15,22 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.infra.yaml.engine.constructor;
+package org.apache.shardingsphere.governance.core.yaml.config;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.shardingsphere.infra.yaml.config.YamlConfiguration;
+import org.apache.shardingsphere.infra.yaml.config.YamlRuleConfiguration;
+
+import java.util.Collection;
+import java.util.LinkedList;
/**
- * Package filter constructor for YAML.
+ * Rule configuration warp for YAML.
*/
-public final class PackageFilterConstructor extends ShardingSphereYamlConstructor {
-
- public PackageFilterConstructor(final Class<?> rootClass) {
- super(rootClass);
- }
+@Getter
+@Setter
+public final class YamlRuleConfigurationWrap implements YamlConfiguration {
- @Override
- protected Class<?> getClassForName(final String name) throws ClassNotFoundException {
- if (name != null && name.startsWith("org.apache.shardingsphere.")) {
- return super.getClassForName(name);
- }
- throw new IllegalArgumentException(String.format("Class is not accepted: %s", name));
- }
+ private Collection<YamlRuleConfiguration> rules = new LinkedList<>();
}
diff --git a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java
index 229ab18..d164940 100644
--- a/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java
+++ b/shardingsphere-governance/shardingsphere-governance-core/src/test/java/org/apache/shardingsphere/governance/core/config/ConfigCenterTest.java
@@ -25,6 +25,7 @@ import org.apache.shardingsphere.governance.core.event.model.rule.RuleConfigurat
import org.apache.shardingsphere.governance.core.event.model.rule.SwitchRuleConfigurationEvent;
import org.apache.shardingsphere.governance.core.event.model.schema.SchemaNamePersistEvent;
import org.apache.shardingsphere.governance.core.event.model.schema.SchemaPersistEvent;
+import org.apache.shardingsphere.governance.core.yaml.config.YamlRuleConfigurationWrap;
import org.apache.shardingsphere.governance.core.yaml.config.schema.YamlSchema;
import org.apache.shardingsphere.governance.core.yaml.swapper.SchemaYamlSwapper;
import org.apache.shardingsphere.governance.repository.api.ConfigurationRepository;
@@ -290,7 +291,7 @@ public final class ConfigCenterTest {
}
private Collection<RuleConfiguration> createRuleConfigurations() {
- return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(YamlEngine.unmarshal(readYAML(SHARDING_RULE_YAML), YamlRootRuleConfigurations.class).getRules());
+ return new YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(YamlEngine.unmarshal(readYAML(SHARDING_RULE_YAML), YamlRuleConfigurationWrap.class).getRules());
}
private Collection<RuleConfiguration> createReplicaQueryRuleConfiguration() {
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
index f5b2af1..0d5ad62 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngine.java
@@ -21,8 +21,7 @@ import com.google.common.base.Strings;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import org.apache.shardingsphere.infra.yaml.config.YamlConfiguration;
-import org.apache.shardingsphere.infra.yaml.engine.constructor.ClassFilterConstructor;
-import org.apache.shardingsphere.infra.yaml.engine.constructor.PackageFilterConstructor;
+import org.apache.shardingsphere.infra.yaml.engine.constructor.ShardingSphereFilterYamlConstructor;
import org.apache.shardingsphere.infra.yaml.engine.constructor.ShardingSphereYamlConstructor;
import org.apache.shardingsphere.infra.yaml.engine.representer.ShardingSphereYamlRepresenter;
import org.yaml.snakeyaml.Yaml;
@@ -34,9 +33,9 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Collection;
+import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.Map;
-import java.util.Properties;
/**
* YAML engine.
@@ -93,36 +92,36 @@ public final class YamlEngine {
* Unmarshal YAML.
*
* @param yamlContent YAML content
+ * @param classType class type
* @param acceptClasses accept classes
- * @return map from YAML
+ * @param <T> type of class
+ * @return object from YAML
*/
- public static Map<?, ?> unmarshal(final String yamlContent, final Collection<Class<?>> acceptClasses) {
- return Strings.isNullOrEmpty(yamlContent) ? new LinkedHashMap<>() : (Map) new Yaml(new ClassFilterConstructor(acceptClasses)).load(yamlContent);
+ public static <T> T unmarshal(final String yamlContent, final Class<T> classType, final Collection<Class<?>> acceptClasses) {
+ return new Yaml(new ShardingSphereFilterYamlConstructor(classType, acceptClasses)).loadAs(yamlContent, classType);
}
/**
* Unmarshal YAML.
*
* @param yamlContent YAML content
- * @param classType class type
- * @param <T> type of class
- * @param filterPackage Filter non ShardingSphere packages or not
- * @return object from YAML
+ * @param acceptClasses accept classes
+ * @return map from YAML
*/
- public static <T> T unmarshal(final String yamlContent, final Class<T> classType, final boolean filterPackage) {
- return new Yaml(filterPackage ? new PackageFilterConstructor(classType)
- : new ShardingSphereYamlConstructor(classType)).loadAs(yamlContent, classType);
+ public static Map<?, ?> unmarshal(final String yamlContent, final Collection<Class<?>> acceptClasses) {
+ return Strings.isNullOrEmpty(yamlContent) ? new LinkedHashMap<>() : (Map) new Yaml(new ShardingSphereFilterYamlConstructor(acceptClasses)).load(yamlContent);
}
/**
- * Unmarshal properties YAML.
+ * Unmarshal YAML with filter.
*
* @param yamlContent YAML content
- * @param acceptClasses accept classes
- * @return properties from YAML
+ * @param classType class type
+ * @param <T> type of class
+ * @return object from YAML
*/
- public static Properties unmarshalProperties(final String yamlContent, final Collection<Class<?>> acceptClasses) {
- return Strings.isNullOrEmpty(yamlContent) ? new Properties() : new Yaml(new ClassFilterConstructor(acceptClasses)).loadAs(yamlContent, Properties.class);
+ public static <T> T unmarshalWithFilter(final String yamlContent, final Class<T> classType) {
+ return new Yaml(new ShardingSphereFilterYamlConstructor(classType, Collections.singletonList(classType))).loadAs(yamlContent, classType);
}
/**
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ClassFilterConstructor.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
similarity index 72%
rename from shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ClassFilterConstructor.java
rename to shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
index 482b940..6654dc8 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ClassFilterConstructor.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/yaml/engine/constructor/ShardingSphereFilterYamlConstructor.java
@@ -17,19 +17,25 @@
package org.apache.shardingsphere.infra.yaml.engine.constructor;
-import lombok.RequiredArgsConstructor;
-import org.yaml.snakeyaml.constructor.Constructor;
-
import java.util.Collection;
/**
- * Class filter constructor for YAML load as map.
+ * ShardingSphere filter constructor for YAML.
*/
-@RequiredArgsConstructor
-public final class ClassFilterConstructor extends Constructor {
+public final class ShardingSphereFilterYamlConstructor extends ShardingSphereYamlConstructor {
private final Collection<Class<?>> acceptClasses;
+ public ShardingSphereFilterYamlConstructor(final Class<?> rootClass, final Collection<Class<?>> acceptClasses) {
+ super(rootClass);
+ this.acceptClasses = acceptClasses;
+ }
+
+ public ShardingSphereFilterYamlConstructor(final Collection<Class<?>> acceptClasses) {
+ super(Object.class);
+ this.acceptClasses = acceptClasses;
+ }
+
@Override
protected Class<?> getClassForName(final String name) throws ClassNotFoundException {
for (Class<? extends Object> each : acceptClasses) {
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
index 11adc45..228b3b8 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/auth/builtin/yaml/config/YamlEngineUserConfigurationTest.java
@@ -46,7 +46,7 @@ public final class YamlEngineUserConfigurationTest {
@Test
public void assertUnmarshalProperties() {
- Properties actual = YamlEngine.unmarshalProperties("password: pwd\nauthorizedSchemas: db1", Collections.singletonList(Properties.class));
+ Properties actual = YamlEngine.unmarshalWithFilter("password: pwd\nauthorizedSchemas: db1", Properties.class);
assertThat(actual.getProperty("authorizedSchemas"), is("db1"));
assertThat(actual.getProperty("password"), is("pwd"));
}
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
index 4539747..7b06dff 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/yaml/engine/YamlEngineTest.java
@@ -80,7 +80,7 @@ public final class YamlEngineTest {
@Test
public void assertUnmarshalProperties() {
- Properties actual = YamlEngine.unmarshalProperties("password: pwd\nauthorizedSchemas: db1", Collections.singletonList(Properties.class));
+ Properties actual = YamlEngine.unmarshalWithFilter("password: pwd\nauthorizedSchemas: db1", Properties.class);
assertThat(actual.getProperty("authorizedSchemas"), is("db1"));
assertThat(actual.getProperty("password"), is("pwd"));
}
@@ -107,7 +107,7 @@ public final class YamlEngineTest {
}
@Test
- public void assertUnmarshalWithYamlWithoutFilterPackage() throws IOException {
+ public void assertUnmarshalWithAcceptClass() throws IOException {
URL url = getClass().getClassLoader().getResource("yaml/fixture-rule-with-props.yaml");
assertNotNull(url);
StringBuilder yamlContent = new StringBuilder();
@@ -119,12 +119,17 @@ public final class YamlEngineTest {
yamlContent.append(line).append("\n");
}
}
- FixtureYamlPropsRuleConfiguration actual = YamlEngine.unmarshal(yamlContent.toString(), FixtureYamlPropsRuleConfiguration.class, false);
+ Collection<Class<?>> acceptClasses = new LinkedList<>();
+ acceptClasses.add(URLClassLoader.class);
+ acceptClasses.add(URL.class);
+ acceptClasses.add(FixtureYamlPropsRuleConfiguration.class);
+ FixtureYamlPropsRuleConfiguration actual = YamlEngine.unmarshal(yamlContent.toString(),
+ FixtureYamlPropsRuleConfiguration.class, acceptClasses);
assertThat(actual.getName(), is("test"));
}
@Test(expected = ConstructorException.class)
- public void assertUnmarshalWithYamlWithFilterPackage() throws IOException {
+ public void assertUnmarshalWithoutAcceptClass() throws IOException {
URL url = getClass().getClassLoader().getResource("yaml/fixture-rule-with-props.yaml");
assertNotNull(url);
StringBuilder yamlContent = new StringBuilder();
@@ -136,7 +141,8 @@ public final class YamlEngineTest {
yamlContent.append(line).append("\n");
}
}
- FixtureYamlPropsRuleConfiguration actual = YamlEngine.unmarshal(yamlContent.toString(), FixtureYamlPropsRuleConfiguration.class, true);
+ FixtureYamlPropsRuleConfiguration actual = YamlEngine.unmarshalWithFilter(yamlContent.toString(),
+ FixtureYamlPropsRuleConfiguration.class);
assertThat(actual.getName(), is("test"));
}
}
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/resources/conf/reg_center/config_center/data-sources.yaml b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/resources/conf/reg_center/config_center/data-sources.yaml
index 902ecea..9905b80 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/resources/conf/reg_center/config_center/data-sources.yaml
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/test/resources/conf/reg_center/config_center/data-sources.yaml
@@ -16,7 +16,7 @@
#
dataSources:
- ds_0: !!org.apache.shardingsphere.governance.core.yaml.config.YamlDataSourceConfiguration
+ ds_0:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
jdbcUrl: jdbc:fixturedb:xxx
@@ -28,7 +28,7 @@ dataSources:
maxPoolSize: 20
minPoolSize: 10
readOnly: true
- ds_1: !!org.apache.shardingsphere.governance.core.yaml.config.YamlDataSourceConfiguration
+ ds_1:
dataSourceClassName: com.zaxxer.hikari.HikariDataSource
props:
jdbcUrl: jdbc:fixturedb:xxx