This is an automated email from the ASF dual-hosted git repository.
zhangliang 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 a74aff2 Refactor EncryptRuleStatementConverter (#10424)
a74aff2 is described below
commit a74aff2cb9312afd6c067ddb0663604cd017a766
Author: Haoran Meng <[email protected]>
AuthorDate: Fri May 21 18:06:42 2021 +0800
Refactor EncryptRuleStatementConverter (#10424)
Co-authored-by: menghaoranss <[email protected]>
---
...erter.java => EncryptRuleStatementConverter.java} | 20 +++++++++-----------
...t.java => EncryptRuleStatementConverterTest.java} | 6 +++---
.../rdl/impl/AlterEncryptRuleBackendHandler.java | 4 ++--
.../rdl/impl/CreateEncryptRuleBackendHandler.java | 4 ++--
4 files changed, 16 insertions(+), 18 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverter.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverter.java
similarity index 82%
rename from
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverter.java
rename to
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverter.java
index 4c6123f..cf9dfdc 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverter.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/main/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverter.java
@@ -29,9 +29,9 @@ import java.util.Map;
import java.util.stream.Collectors;
/**
- * Encrypt rule converter.
+ * Encrypt rule statement converter.
*/
-public final class EncryptRuleConverter {
+public final class EncryptRuleStatementConverter {
/**
* Convert collection of encrypt rule segments to YAML encrypt rule
configuration.
@@ -41,11 +41,9 @@ public final class EncryptRuleConverter {
*/
public static YamlEncryptRuleConfiguration convert(final
Collection<EncryptRuleSegment> encryptRules) {
YamlEncryptRuleConfiguration result = new
YamlEncryptRuleConfiguration();
-
result.getTables().putAll(encryptRules.stream().map(EncryptRuleConverter::buildYamlEncryptTableRuleConfiguration)
+
result.getTables().putAll(encryptRules.stream().map(EncryptRuleStatementConverter::buildYamlEncryptTableRuleConfiguration)
.collect(Collectors.toMap(YamlEncryptTableRuleConfiguration::getName, each ->
each)));
- for (EncryptRuleSegment encryptRuleSegment : encryptRules) {
-
result.getEncryptors().putAll(buildYamlShardingSphereAlgorithmConfigurations(encryptRuleSegment));
- }
+ encryptRules.forEach(each ->
result.getEncryptors().putAll(buildYamlShardingSphereAlgorithmConfigurations(each)));
return result;
}
@@ -63,13 +61,13 @@ public final class EncryptRuleConverter {
result.setLogicColumn(encryptColumnSegment.getName());
result.setCipherColumn(encryptColumnSegment.getCipherColumn());
result.setPlainColumn(encryptColumnSegment.getPlainColumn());
- result.setEncryptorName(getEncryptorName(tableName,
encryptColumnSegment.getName(),
encryptColumnSegment.getEncryptor().getAlgorithmName()));
+ result.setEncryptorName(getEncryptorName(tableName,
encryptColumnSegment.getName()));
return result;
}
private static Map<String, YamlShardingSphereAlgorithmConfiguration>
buildYamlShardingSphereAlgorithmConfigurations(final EncryptRuleSegment
encryptRuleSegment) {
- return
encryptRuleSegment.getColumns().stream().collect(Collectors.toMap(EncryptColumnSegment::getName,
each -> buildYamlShardingSphereAlgorithmConfiguration(each)))
- .entrySet().stream().collect(Collectors.toMap(entry ->
getEncryptorName(encryptRuleSegment.getTableName(), entry.getKey(),
entry.getValue().getType()), entry -> entry.getValue()));
+ return encryptRuleSegment.getColumns().stream().collect(Collectors
+ .toMap(each ->
getEncryptorName(encryptRuleSegment.getTableName(), each.getName()), each ->
buildYamlShardingSphereAlgorithmConfiguration(each)));
}
private static YamlShardingSphereAlgorithmConfiguration
buildYamlShardingSphereAlgorithmConfiguration(final EncryptColumnSegment
encryptColumnSegment) {
@@ -79,7 +77,7 @@ public final class EncryptRuleConverter {
return result;
}
- private static String getEncryptorName(final String tableName, final
String columnName, final String encryptorAlgorithmName) {
- return String.format("%s_%s_%s", tableName, columnName,
encryptorAlgorithmName);
+ private static String getEncryptorName(final String tableName, final
String columnName) {
+ return String.format("%s_%s", tableName, columnName);
}
}
diff --git
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverterTest.java
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverterTest.java
similarity index 96%
rename from
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverterTest.java
rename to
shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverterTest.java
index 11da81e..8107e7c 100644
---
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleConverterTest.java
+++
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-common/src/test/java/org/apache/shardingsphere/encrypt/yaml/converter/EncryptRuleStatementConverterTest.java
@@ -31,11 +31,11 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.is;
-public final class EncryptRuleConverterTest {
+public final class EncryptRuleStatementConverterTest {
@Test
public void assertCovert() {
- YamlEncryptRuleConfiguration encryptRuleConfiguration =
EncryptRuleConverter.convert(Collections
+ YamlEncryptRuleConfiguration encryptRuleConfiguration =
EncryptRuleStatementConverter.convert(Collections
.singleton(new EncryptRuleSegment("t_encrypt",
buildColumns())));
assertNotNull(encryptRuleConfiguration);
assertThat(encryptRuleConfiguration.getTables().keySet(),
is(Collections.singleton("t_encrypt")));
@@ -44,7 +44,7 @@ public final class EncryptRuleConverterTest {
assertThat(encryptRuleConfiguration.getTables().get("t_encrypt").getColumns().get("user_id").getLogicColumn(),
is("user_id"));
assertThat(encryptRuleConfiguration.getTables().get("t_encrypt").getColumns().get("user_id").getCipherColumn(),
is("user_cipher"));
assertThat(encryptRuleConfiguration.getTables().get("t_encrypt").getColumns().get("user_id").getPlainColumn(),
is("user_plain"));
-
assertThat(encryptRuleConfiguration.getTables().get("t_encrypt").getColumns().get("user_id").getEncryptorName(),
is("t_encrypt_user_id_MD5"));
+
assertThat(encryptRuleConfiguration.getTables().get("t_encrypt").getColumns().get("user_id").getEncryptorName(),
is("t_encrypt_user_id"));
}
private Collection<EncryptColumnSegment> buildColumns() {
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
index 1844571..3874904 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/AlterEncryptRuleBackendHandler.java
@@ -23,7 +23,7 @@ import
org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
import
org.apache.shardingsphere.encrypt.api.config.rule.EncryptTableRuleConfiguration;
import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfiguration;
-import org.apache.shardingsphere.encrypt.yaml.converter.EncryptRuleConverter;
+import
org.apache.shardingsphere.encrypt.yaml.converter.EncryptRuleStatementConverter;
import
org.apache.shardingsphere.governance.core.registry.listener.event.rule.RuleConfigurationsAlteredEvent;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
@@ -102,7 +102,7 @@ public final class AlterEncryptRuleBackendHandler extends
SchemaRequiredBackendH
private YamlEncryptRuleConfiguration alter(final EncryptRuleConfiguration
encryptRuleConfiguration, final AlterEncryptRuleStatement sqlStatement) {
YamlEncryptRuleConfiguration alterYamlEncryptRuleConfiguration
- = EncryptRuleConverter.convert(sqlStatement.getEncryptRules());
+ =
EncryptRuleStatementConverter.convert(sqlStatement.getEncryptRules());
YamlEncryptRuleConfiguration result = new
YamlRuleConfigurationSwapperEngine()
.swapToYamlRuleConfigurations(Collections.singletonList(encryptRuleConfiguration)).stream()
.map(each -> (YamlEncryptRuleConfiguration)
each).findFirst().get();
diff --git
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
index 81747b9..e65e35a 100644
---
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
+++
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/impl/CreateEncryptRuleBackendHandler.java
@@ -21,7 +21,7 @@ import
org.apache.shardingsphere.distsql.parser.statement.rdl.create.impl.Create
import org.apache.shardingsphere.encrypt.api.config.EncryptRuleConfiguration;
import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
import
org.apache.shardingsphere.encrypt.yaml.config.YamlEncryptRuleConfiguration;
-import org.apache.shardingsphere.encrypt.yaml.converter.EncryptRuleConverter;
+import
org.apache.shardingsphere.encrypt.yaml.converter.EncryptRuleStatementConverter;
import
org.apache.shardingsphere.governance.core.registry.listener.event.rule.RuleConfigurationsAlteredEvent;
import org.apache.shardingsphere.infra.config.RuleConfiguration;
import org.apache.shardingsphere.infra.eventbus.ShardingSphereEventBus;
@@ -53,7 +53,7 @@ public final class CreateEncryptRuleBackendHandler extends
SchemaRequiredBackend
@Override
public ResponseHeader execute(final String schemaName, final
CreateEncryptRuleStatement sqlStatement) {
check(schemaName, sqlStatement);
- YamlEncryptRuleConfiguration config =
EncryptRuleConverter.convert(sqlStatement.getEncryptRules());
+ YamlEncryptRuleConfiguration config =
EncryptRuleStatementConverter.convert(sqlStatement.getEncryptRules());
Collection<RuleConfiguration> rules = new
YamlRuleConfigurationSwapperEngine().swapToRuleConfigurations(Collections.singleton(config));
post(schemaName, rules);
return new UpdateResponseHeader(sqlStatement);