You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2021/05/21 10:07:08 UTC
[shardingsphere] branch master updated: Refactor
EncryptRuleStatementConverter (#10424)
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 <me...@gmail.com>
AuthorDate: Fri May 21 18:06:42 2021 +0800
Refactor EncryptRuleStatementConverter (#10424)
Co-authored-by: menghaoranss <me...@apache.org>
---
...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);