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 2023/04/25 09:36:52 UTC
[shardingsphere] branch master updated: Add more Performance rules for pmd (#25321)
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 a3bd49327dc Add more Performance rules for pmd (#25321)
a3bd49327dc is described below
commit a3bd49327dc26c4a5d138f807eef19385823befc
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Apr 25 17:36:44 2023 +0800
Add more Performance rules for pmd (#25321)
---
.../yaml/loader/YamlPluginConfigurationLoader.java | 6 +-
.../generic/OpenGaussErrorResponsePacket.java | 6 +-
.../show/EncryptShowCreateTableMergedResult.java | 6 +-
.../EncryptPredicateFunctionRightValueToken.java | 6 +-
.../pojo/EncryptPredicateInRightValueToken.java | 8 +-
.../UnifiedCreditCodeRandomReplaceAlgorithm.java | 6 +-
.../rewrite/token/pojo/ConstraintToken.java | 2 +-
.../sharding/rewrite/token/pojo/OrderByToken.java | 6 +-
...ngTableReferenceRuleConfigurationConverter.java | 4 +-
.../keygen/CosIdSnowflakeKeyGenerateAlgorithm.java | 2 +-
.../CosIdSnowflakeIntervalShardingAlgorithm.java | 2 +-
.../database/metadata/url/JdbcUrlAppender.java | 4 +-
.../infra/metadata/data/ShardingSphereRowData.java | 6 +-
.../dialect/OracleSchemaMetaDataLoader.java | 2 +-
.../pojo/generic/SubstitutableColumnNameToken.java | 2 +-
.../groovy/expr/HotspotInlineExpressionParser.java | 4 +-
.../shardingsphere/infra/util/yaml/YamlEngine.java | 9 +-
.../jdbc/core/connection/ConnectionManager.java | 2 +-
.../driver/spi/AbsolutePathDriverURLProvider.java | 2 +-
.../core/driver/spi/ApolloDriverURLProvider.java | 2 +-
.../driver/spi/ClasspathDriverURLProvider.java | 2 +-
.../database/builder/DatabasePrivilegeBuilder.java | 4 +-
.../authority/yaml/swapper/YamlUserSwapper.java | 4 +-
.../pipeline/api/datanode/JobDataNodeEntry.java | 3 +-
...DataMatchDataConsistencyCalculateAlgorithm.java | 2 +-
.../metadata/generator/PipelineDDLGenerator.java | 3 +-
.../sqlbuilder/AbstractPipelineSQLBuilder.java | 2 +-
.../core/util/PipelineDistributedBarrier.java | 2 +-
.../ingest/wal/decode/MppdbDecodingPlugin.java | 2 +-
.../sqlbuilder/OpenGaussPipelineSQLBuilder.java | 2 +-
.../PostgreSQLColumnPropertiesAppender.java | 4 +-
.../sqlbuilder/PostgreSQLPipelineSQLBuilder.java | 4 +-
.../ConvertYamlConfigurationExecutor.java | 152 +++++++++++----------
.../proxy/backend/util/ExportUtils.java | 8 +-
.../ExportDatabaseConfigurationExecutorTest.java | 3 +-
.../mysql/visitor/format/MySQLFormatVisitor.java | 56 ++++----
src/resources/pmd.xml | 21 +++
.../result/type/csv/CsvSQLParseResultReporter.java | 9 +-
.../internal/asserts/SQLCaseAssertContext.java | 14 +-
.../loader/SQLParserTestCaseLoaderCallback.java | 5 +-
.../test/it/yaml/YamlRuleConfigurationIT.java | 10 +-
41 files changed, 211 insertions(+), 188 deletions(-)
diff --git a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/config/yaml/loader/YamlPluginConfigurationLoader.java b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/config/yaml/loader/YamlPluginConfigurationLoader.java
index 47c454d59b0..f547434299a 100644
--- a/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/config/yaml/loader/YamlPluginConfigurationLoader.java
+++ b/agent/core/src/main/java/org/apache/shardingsphere/agent/core/plugin/config/yaml/loader/YamlPluginConfigurationLoader.java
@@ -23,8 +23,10 @@ import org.apache.shardingsphere.agent.core.plugin.config.yaml.entity.YamlAgentC
import org.apache.shardingsphere.agent.core.yaml.AgentYamlEngine;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Optional;
/**
@@ -41,7 +43,7 @@ public final class YamlPluginConfigurationLoader {
* @throws IOException IO exception
*/
public static Optional<YamlAgentConfiguration> load(final File yamlFile) throws IOException {
- try (FileInputStream fileInputStream = new FileInputStream(yamlFile)) {
+ try (InputStream fileInputStream = Files.newInputStream(Paths.get(yamlFile.toURI()))) {
YamlAgentConfiguration result = AgentYamlEngine.unmarshalYamlAgentConfiguration(fileInputStream);
return null == result ? Optional.empty() : Optional.of(result);
}
diff --git a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/packet/command/generic/OpenGaussErrorResponsePacket.java b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/packet/command/generic/OpenGaussErrorResponsePacket.java
index b4eb2ff73d6..5a893d00fef 100644
--- a/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/packet/command/generic/OpenGaussErrorResponsePacket.java
+++ b/db-protocol/opengauss/src/main/java/org/apache/shardingsphere/db/protocol/opengauss/packet/command/generic/OpenGaussErrorResponsePacket.java
@@ -94,10 +94,10 @@ public final class OpenGaussErrorResponsePacket implements PostgreSQLIdentifierP
fields.put(FIELD_TYPE_HINT, serverErrorMessage.getHint());
}
if (serverErrorMessage.getPosition() > 0) {
- fields.put(FIELD_TYPE_POSITION, serverErrorMessage.getPosition() + "");
+ fields.put(FIELD_TYPE_POSITION, String.valueOf(serverErrorMessage.getPosition()));
}
if (serverErrorMessage.getInternalPosition() > 0) {
- fields.put(FIELD_TYPE_INTERNAL_POSITION, serverErrorMessage.getInternalPosition() + "");
+ fields.put(FIELD_TYPE_INTERNAL_POSITION, String.valueOf(serverErrorMessage.getInternalPosition()));
}
if (null != serverErrorMessage.getInternalQuery()) {
fields.put(FIELD_TYPE_INTERNAL_QUERY, serverErrorMessage.getInternalQuery());
@@ -109,7 +109,7 @@ public final class OpenGaussErrorResponsePacket implements PostgreSQLIdentifierP
fields.put(FIELD_TYPE_FILE, serverErrorMessage.getFile());
}
if (serverErrorMessage.getLine() > 0) {
- fields.put(FIELD_TYPE_LINE, serverErrorMessage.getLine() + "");
+ fields.put(FIELD_TYPE_LINE, String.valueOf(serverErrorMessage.getLine()));
}
if (null != serverErrorMessage.getRoutine()) {
fields.put(FIELD_TYPE_ROUTINE, serverErrorMessage.getRoutine());
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
index ea2e32460c8..75c3ee1b807 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/merge/dal/show/EncryptShowCreateTableMergedResult.java
@@ -68,12 +68,12 @@ public abstract class EncryptShowCreateTableMergedResult implements MergedResult
if (!encryptTable.isPresent()) {
return result;
}
- StringBuilder builder = new StringBuilder(result.substring(0, result.indexOf("(") + 1));
- List<String> columnDefinitions = Splitter.on(COMMA).splitToList(result.substring(result.indexOf("(") + 1, result.lastIndexOf(")")));
+ StringBuilder builder = new StringBuilder(result.substring(0, result.indexOf('(') + 1));
+ List<String> columnDefinitions = Splitter.on(COMMA).splitToList(result.substring(result.indexOf('(') + 1, result.lastIndexOf(')')));
for (String each : columnDefinitions) {
findLogicColumnDefinition(each, encryptTable.get()).ifPresent(optional -> builder.append(optional).append(COMMA));
}
- builder.deleteCharAt(builder.length() - 1).append(result.substring(result.lastIndexOf(")")));
+ builder.deleteCharAt(builder.length() - 1).append(result.substring(result.lastIndexOf(')')));
return builder.toString();
}
return getOriginalValue(columnIndex, type);
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateFunctionRightValueToken.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateFunctionRightValueToken.java
index 5ab6e115a86..8790d029e22 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateFunctionRightValueToken.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateFunctionRightValueToken.java
@@ -54,17 +54,17 @@ public final class EncryptPredicateFunctionRightValueToken extends SQLToken impl
result.append(functionName).append(" (");
for (int i = 0; i < indexValues.size() + paramMarkerIndexes.size(); i++) {
if (paramMarkerIndexes.contains(i)) {
- result.append("?");
+ result.append('?');
} else {
if (indexValues.get(i) instanceof String) {
- result.append("'").append(indexValues.get(i)).append("'");
+ result.append('\'').append(indexValues.get(i)).append('\'');
} else {
result.append(indexValues.get(i));
}
}
result.append(", ");
}
- result.delete(result.length() - 2, result.length()).append(")");
+ result.delete(result.length() - 2, result.length()).append(')');
return result.toString();
}
diff --git a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateInRightValueToken.java b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateInRightValueToken.java
index c0317ac2c58..0d13ab4ff4e 100644
--- a/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateInRightValueToken.java
+++ b/features/encrypt/core/src/main/java/org/apache/shardingsphere/encrypt/rewrite/token/pojo/EncryptPredicateInRightValueToken.java
@@ -47,20 +47,20 @@ public final class EncryptPredicateInRightValueToken extends SQLToken implements
@Override
public String toString() {
StringBuilder result = new StringBuilder();
- result.append("(");
+ result.append('(');
for (int i = 0; i < indexValues.size() + paramMarkerIndexes.size(); i++) {
if (paramMarkerIndexes.contains(i)) {
- result.append("?");
+ result.append('?');
} else {
if (indexValues.get(i) instanceof String) {
- result.append("'").append(indexValues.get(i)).append("'");
+ result.append('\'').append(indexValues.get(i)).append('\'');
} else {
result.append(indexValues.get(i));
}
}
result.append(", ");
}
- result.delete(result.length() - 2, result.length()).append(")");
+ result.delete(result.length() - 2, result.length()).append(')');
return result.toString();
}
diff --git a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/UnifiedCreditCodeRandomReplaceAlgorithm.java b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/UnifiedCreditCodeRandomReplaceAlgorithm.java
index c1cd725c54b..6a570f00920 100644
--- a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/UnifiedCreditCodeRandomReplaceAlgorithm.java
+++ b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/algorithm/replace/UnifiedCreditCodeRandomReplaceAlgorithm.java
@@ -85,9 +85,9 @@ public final class UnifiedCreditCodeRandomReplaceAlgorithm implements MaskAlgori
private String randomReplace() {
StringBuilder result = new StringBuilder();
- result.append(registrationDepartmentCodes.get(random.nextInt(registrationDepartmentCodes.size())));
- result.append(categoryCodes.get(random.nextInt(categoryCodes.size())));
- result.append(administrativeDivisionCodes.get(random.nextInt(administrativeDivisionCodes.size())));
+ result.append(registrationDepartmentCodes.get(random.nextInt(registrationDepartmentCodes.size())))
+ .append(categoryCodes.get(random.nextInt(categoryCodes.size())))
+ .append(administrativeDivisionCodes.get(random.nextInt(administrativeDivisionCodes.size())));
for (int i = 0; i < 10; i++) {
result.append(Character.forDigit(random.nextInt(10), 10));
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
index 1c34e1e4c2b..38146e854c3 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/ConstraintToken.java
@@ -59,7 +59,7 @@ public final class ConstraintToken extends SQLToken implements Substitutable, Ro
StringBuilder result = new StringBuilder(identifier.getValue());
Map<String, String> logicAndActualTables = TokenUtils.getLogicAndActualTables(routeUnit, sqlStatementContext, shardingRule);
sqlStatementContext.getTablesContext().getTableNames().stream().findFirst().map(optional -> logicAndActualTables.get(optional.toLowerCase()))
- .ifPresent(optional -> result.append("_").append(optional));
+ .ifPresent(optional -> result.append('_').append(optional));
return result.toString();
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/OrderByToken.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/OrderByToken.java
index 6e1ca376862..cb082880df2 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/OrderByToken.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/rewrite/token/pojo/OrderByToken.java
@@ -45,12 +45,12 @@ public final class OrderByToken extends SQLToken implements Attachable {
result.append(" ORDER BY ");
for (int i = 0; i < columnLabels.size(); i++) {
if (0 == i) {
- result.append(columnLabels.get(0)).append(" ").append(orderDirections.get(i).name());
+ result.append(columnLabels.get(0)).append(' ').append(orderDirections.get(i).name());
} else {
- result.append(",").append(columnLabels.get(i)).append(" ").append(orderDirections.get(i).name());
+ result.append(',').append(columnLabels.get(i)).append(' ').append(orderDirections.get(i).name());
}
}
- result.append(" ");
+ result.append(' ');
return result.toString();
}
}
diff --git a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingTableReferenceRuleConfigurationConverter.java b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingTableReferenceRuleConfigurationConverter.java
index ab2bd17e19d..6b518f45279 100644
--- a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingTableReferenceRuleConfigurationConverter.java
+++ b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/yaml/swapper/rule/YamlShardingTableReferenceRuleConfigurationConverter.java
@@ -53,8 +53,8 @@ public final class YamlShardingTableReferenceRuleConfigurationConverter {
}
private static ShardingTableReferenceRuleConfiguration convertYamlConfigurationWithName(final String referenceConfig) {
- String name = referenceConfig.substring(0, referenceConfig.indexOf(":"));
- String reference = referenceConfig.substring(referenceConfig.indexOf(":") + 1);
+ String name = referenceConfig.substring(0, referenceConfig.indexOf(':'));
+ String reference = referenceConfig.substring(referenceConfig.indexOf(':') + 1);
return new ShardingTableReferenceRuleConfiguration(name, reference);
}
diff --git a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
index ac14e58e2e7..9d772d3e7ae 100644
--- a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
+++ b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/keygen/CosIdSnowflakeKeyGenerateAlgorithm.java
@@ -73,7 +73,7 @@ public final class CosIdSnowflakeKeyGenerateAlgorithm implements KeyGenerateAlgo
}
private long getEpoch(final Properties props) {
- long result = Long.parseLong(props.getProperty(EPOCH_KEY, DEFAULT_EPOCH + ""));
+ long result = Long.parseLong(props.getProperty(EPOCH_KEY, String.valueOf(DEFAULT_EPOCH)));
ShardingSpherePreconditions.checkState(result > 0L,
() -> new ShardingPluginException("Key generate algorithm `%s` initialization failed, reason is: %s.", getType(), "Epoch must be positive."));
return result;
diff --git a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/sharding/interval/CosIdSnowflakeIntervalShardingAlgorithm.java b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/sharding/interval/CosIdSnowflakeIntervalShardingAlgorithm.java
index 4e18f9e700c..966b610972f 100644
--- a/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/sharding/interval/CosIdSnowflakeIntervalShardingAlgorithm.java
+++ b/features/sharding/plugin/cosid/src/main/java/org/apache/shardingsphere/sharding/cosid/algorithm/sharding/interval/CosIdSnowflakeIntervalShardingAlgorithm.java
@@ -43,7 +43,7 @@ public final class CosIdSnowflakeIntervalShardingAlgorithm extends AbstractCosId
}
private SnowflakeIdStateParser createSnowflakeIdStateParser(final Properties props) {
- long epoch = Long.parseLong(props.getProperty(EPOCH_KEY, CosIdSnowflakeKeyGenerateAlgorithm.DEFAULT_EPOCH + ""));
+ long epoch = Long.parseLong(props.getProperty(EPOCH_KEY, String.valueOf(CosIdSnowflakeKeyGenerateAlgorithm.DEFAULT_EPOCH)));
ZoneId zoneId = props.containsKey(ZONE_ID_KEY) ? ZoneId.of(props.getProperty(ZONE_ID_KEY)) : ZoneId.systemDefault();
return new MillisecondSnowflakeIdStateParser(
epoch, MillisecondSnowflakeId.DEFAULT_TIMESTAMP_BIT, MillisecondSnowflakeId.DEFAULT_MACHINE_BIT, MillisecondSnowflakeId.DEFAULT_SEQUENCE_BIT, zoneId);
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/metadata/url/JdbcUrlAppender.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/metadata/url/JdbcUrlAppender.java
index 495b1f4a80b..3c5e32f522c 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/database/metadata/url/JdbcUrlAppender.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/database/metadata/url/JdbcUrlAppender.java
@@ -57,9 +57,9 @@ public final class JdbcUrlAppender {
for (Entry<Object, Object> entry : queryProps.entrySet()) {
result.append(entry.getKey());
if (null != entry.getValue()) {
- result.append("=").append(entry.getValue());
+ result.append('=').append(entry.getValue());
}
- result.append("&");
+ result.append('&');
}
result.deleteCharAt(result.length() - 1);
return result.toString();
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/data/ShardingSphereRowData.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/data/ShardingSphereRowData.java
index 063deeb6aee..14fe1b1564d 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/data/ShardingSphereRowData.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/data/ShardingSphereRowData.java
@@ -48,7 +48,11 @@ public final class ShardingSphereRowData {
private String generateUniqueKey(final List<Object> rows) {
StringBuilder uniqueKeyText = new StringBuilder();
for (Object each : rows) {
- uniqueKeyText.append(null == each ? "" : each.toString()).append("|");
+ if (null == each) {
+ uniqueKeyText.append('|');
+ } else {
+ uniqueKeyText.append(each).append('|');
+ }
}
return useMd5GenerateUniqueKey(uniqueKeyText);
}
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/metadata/dialect/OracleSchemaMetaDataLoader.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/metadata/dialect/OracleSchemaMetaDataLoader.java
index f52b435d6c5..eae705cdb8c 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/metadata/dialect/OracleSchemaMetaDataLoader.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/loader/metadata/dialect/OracleSchemaMetaDataLoader.java
@@ -124,7 +124,7 @@ public final class OracleSchemaMetaDataLoader implements DialectSchemaMetaDataLo
}
private String getOriginalDataType(final String dataType) {
- int index = dataType.indexOf("(");
+ int index = dataType.indexOf('(');
if (index > 0) {
return dataType.substring(0, index);
}
diff --git a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
index 29228601b68..e6affa1babb 100644
--- a/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
+++ b/infra/rewrite/src/main/java/org/apache/shardingsphere/infra/rewrite/sql/token/pojo/generic/SubstitutableColumnNameToken.java
@@ -109,7 +109,7 @@ public final class SubstitutableColumnNameToken extends SQLToken implements Subs
StringBuilder builder = new StringBuilder();
String owner = columnProjection.getOwner();
if (!Strings.isNullOrEmpty(owner)) {
- builder.append(quoteCharacter.wrap(logicActualTableNames.getOrDefault(owner, owner))).append(".");
+ builder.append(quoteCharacter.wrap(logicActualTableNames.getOrDefault(owner, owner))).append('.');
}
builder.append(quoteCharacter.wrap(columnProjection.getName()));
if (columnProjection.getAlias().isPresent()) {
diff --git a/infra/util-groovy/src/main/java/org/apache/shardingsphere/infra/util/groovy/expr/HotspotInlineExpressionParser.java b/infra/util-groovy/src/main/java/org/apache/shardingsphere/infra/util/groovy/expr/HotspotInlineExpressionParser.java
index 032aaec5c05..2ca5e9fde34 100644
--- a/infra/util-groovy/src/main/java/org/apache/shardingsphere/infra/util/groovy/expr/HotspotInlineExpressionParser.java
+++ b/infra/util-groovy/src/main/java/org/apache/shardingsphere/infra/util/groovy/expr/HotspotInlineExpressionParser.java
@@ -67,10 +67,10 @@ public final class HotspotInlineExpressionParser implements JVMInlineExpressionP
for (String each : inlineExpressions) {
StringBuilder expression = new StringBuilder(handlePlaceHolder(each));
if (!each.startsWith("\"")) {
- expression.insert(0, "\"");
+ expression.insert(0, '"');
}
if (!each.endsWith("\"")) {
- expression.append("\"");
+ expression.append('"');
}
result.add(evaluate(expression.toString()));
}
diff --git a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/YamlEngine.java b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/YamlEngine.java
index 97a5f3651b9..6ac4eb247c4 100644
--- a/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/YamlEngine.java
+++ b/infra/util/src/main/java/org/apache/shardingsphere/infra/util/yaml/YamlEngine.java
@@ -25,12 +25,13 @@ import org.yaml.snakeyaml.DumperOptions;
import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.representer.Representer;
+import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Collection;
/**
@@ -49,9 +50,7 @@ public final class YamlEngine {
* @throws IOException IO Exception
*/
public static <T extends YamlConfiguration> T unmarshal(final File yamlFile, final Class<T> classType) throws IOException {
- try (
- FileInputStream fileInputStream = new FileInputStream(yamlFile);
- InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream)) {
+ try (BufferedReader inputStreamReader = Files.newBufferedReader(Paths.get(yamlFile.toURI()))) {
return new Yaml(new ShardingSphereYamlConstructor(classType)).loadAs(inputStreamReader, classType);
}
}
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
index 7e6b0b583df..51f335ee77f 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/connection/ConnectionManager.java
@@ -127,7 +127,7 @@ public final class ConnectionManager implements ExecutorJDBCConnectionManager, A
private String createJdbcUrl(final ProxyInstanceMetaData instanceMetaData, final String schema, final Map<String, Object> props) {
String jdbcUrl = String.valueOf(props.get("jdbcUrl"));
String jdbcUrlPrefix = jdbcUrl.substring(0, jdbcUrl.indexOf("//"));
- String jdbcUrlSuffix = jdbcUrl.contains("?") ? jdbcUrl.substring(jdbcUrl.indexOf("?")) : "";
+ String jdbcUrlSuffix = jdbcUrl.contains("?") ? jdbcUrl.substring(jdbcUrl.indexOf('?')) : "";
return String.format("%s//%s:%s/%s%s", jdbcUrlPrefix, instanceMetaData.getIp(), instanceMetaData.getPort(), schema, jdbcUrlSuffix);
}
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/AbsolutePathDriverURLProvider.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/AbsolutePathDriverURLProvider.java
index 35b1ed21082..afe4d4a22f5 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/AbsolutePathDriverURLProvider.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/AbsolutePathDriverURLProvider.java
@@ -45,7 +45,7 @@ public final class AbsolutePathDriverURLProvider implements ShardingSphereDriver
@Override
@SneakyThrows(IOException.class)
public byte[] getContent(final String url) {
- String configuredFile = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf("?") : url.length());
+ String configuredFile = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf('?') : url.length());
String file = configuredFile.substring(PATH_TYPE.length());
Preconditions.checkArgument(!file.isEmpty(), "Configuration file is required in ShardingSphere driver URL.");
try (
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ApolloDriverURLProvider.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ApolloDriverURLProvider.java
index 7bc5febbc0f..888c3fa6cd8 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ApolloDriverURLProvider.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ApolloDriverURLProvider.java
@@ -40,7 +40,7 @@ public final class ApolloDriverURLProvider implements ShardingSphereDriverURLPro
@Override
public byte[] getContent(final String url) {
- String configPath = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf("?") : url.length());
+ String configPath = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf('?') : url.length());
String namespace = configPath.substring(APOLLO_TYPE.length());
Preconditions.checkArgument(!namespace.isEmpty(), "Apollo namespace is required in ShardingSphere driver URL.");
ConfigFile configFile = ConfigService.getConfigFile(namespace, ConfigFileFormat.YAML);
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ClasspathDriverURLProvider.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ClasspathDriverURLProvider.java
index fe12073de03..1f27a8e64d8 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ClasspathDriverURLProvider.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/driver/spi/ClasspathDriverURLProvider.java
@@ -44,7 +44,7 @@ public final class ClasspathDriverURLProvider implements ShardingSphereDriverURL
@Override
@SneakyThrows(IOException.class)
public byte[] getContent(final String url) {
- String configuredFile = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf("?") : url.length());
+ String configuredFile = url.substring("jdbc:shardingsphere:".length(), url.contains("?") ? url.indexOf('?') : url.length());
String file = configuredFile.substring(CLASSPATH_TYPE.length());
Preconditions.checkArgument(!file.isEmpty(), "Configuration file is required in ShardingSphere driver URL.");
try (
diff --git a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/provider/database/builder/DatabasePrivilegeBuilder.java b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/provider/database/builder/DatabasePrivilegeBuilder.java
index 5873f15ef96..61494092456 100644
--- a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/provider/database/builder/DatabasePrivilegeBuilder.java
+++ b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/provider/database/builder/DatabasePrivilegeBuilder.java
@@ -84,8 +84,8 @@ public final class DatabasePrivilegeBuilder {
Arrays.asList(mappings).forEach(each -> {
String[] userDatabasePair = each.trim().split("=");
String yamlUser = userDatabasePair[0];
- String username = yamlUser.substring(0, yamlUser.indexOf("@"));
- String hostname = yamlUser.substring(yamlUser.indexOf("@") + 1);
+ String username = yamlUser.substring(0, yamlUser.indexOf('@'));
+ String hostname = yamlUser.substring(yamlUser.indexOf('@') + 1);
ShardingSphereUser shardingSphereUser = new ShardingSphereUser(username, "", hostname);
Collection<String> databases = result.getOrDefault(shardingSphereUser, new HashSet<>());
databases.add(userDatabasePair[1]);
diff --git a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/YamlUserSwapper.java b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/YamlUserSwapper.java
index 5bb8d5d7ef3..6813063a4d9 100644
--- a/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/YamlUserSwapper.java
+++ b/kernel/authority/core/src/main/java/org/apache/shardingsphere/authority/yaml/swapper/YamlUserSwapper.java
@@ -56,8 +56,8 @@ public final class YamlUserSwapper implements YamlConfigurationSwapper<YamlUserC
if (!yamlUser.contains("@")) {
return new Grantee(yamlUser, "");
}
- String username = yamlUser.substring(0, yamlUser.indexOf("@"));
- String hostname = yamlUser.substring(yamlUser.indexOf("@") + 1);
+ String username = yamlUser.substring(0, yamlUser.indexOf('@'));
+ String hostname = yamlUser.substring(yamlUser.indexOf('@') + 1);
Preconditions.checkArgument(!Strings.isNullOrEmpty(username), "user configuration `%s` is invalid, the legal format is `username@hostname`", yamlUser);
return new Grantee(username, hostname);
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
index d4f00660dff..fc39437f2fb 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/api/datanode/JobDataNodeEntry.java
@@ -59,8 +59,7 @@ public final class JobDataNodeEntry {
*/
public String marshal() {
StringBuilder result = new StringBuilder();
- result.append(logicTableName);
- result.append(":");
+ result.append(logicTableName).append(':');
for (DataNode each : dataNodes) {
result.append(DataNodeUtils.formatWithSchema(each)).append(',');
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index a844eb5d0b7..13b6db9e356 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -80,7 +80,7 @@ public final class DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
private int getChunkSize(final Properties props) {
int result;
try {
- result = Integer.parseInt(props.getProperty(CHUNK_SIZE_KEY, DEFAULT_CHUNK_SIZE + ""));
+ result = Integer.parseInt(props.getProperty(CHUNK_SIZE_KEY, Integer.toString(DEFAULT_CHUNK_SIZE)));
} catch (final NumberFormatException ignore) {
log.warn("'chunk-size' is not a valid number, use default value {}", DEFAULT_CHUNK_SIZE);
return DEFAULT_CHUNK_SIZE;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
index c4723af696a..3deb811b395 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/generator/PipelineDDLGenerator.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.data.pipeline.core.metadata.generator;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.apache.shardingsphere.data.pipeline.spi.ddlgenerator.CreateTableSQLGenerator;
import org.apache.shardingsphere.data.pipeline.util.spi.PipelineTypedSPILoader;
import org.apache.shardingsphere.infra.binder.QueryContext;
@@ -86,7 +87,7 @@ public final class PipelineDDLGenerator {
private Optional<String> decorate(final DatabaseType databaseType, final DataSource dataSource, final String schemaName, final String targetTableName,
final SQLParserEngine parserEngine, final String sql) throws SQLException {
- if (sql.trim().isEmpty()) {
+ if (StringUtils.isBlank(sql)) {
return Optional.empty();
}
String databaseName;
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/AbstractPipelineSQLBuilder.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/AbstractPipelineSQLBuilder.java
index 2efa2e5ea76..a3318855aa4 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/AbstractPipelineSQLBuilder.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/sqlbuilder/AbstractPipelineSQLBuilder.java
@@ -108,7 +108,7 @@ public abstract class AbstractPipelineSQLBuilder implements PipelineSQLBuilder {
protected final String getQualifiedTableName(final String schemaName, final String tableName) {
StringBuilder result = new StringBuilder();
if (TypedSPILoader.getService(DatabaseType.class, getType()).isSchemaAvailable() && !Strings.isNullOrEmpty(schemaName)) {
- result.append(quote(schemaName)).append(".");
+ result.append(quote(schemaName)).append('.');
}
result.append(quote(tableName));
return result.toString();
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
index 16998486400..b6067324786 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/util/PipelineDistributedBarrier.java
@@ -141,7 +141,7 @@ public final class PipelineDistributedBarrier {
if (Strings.isNullOrEmpty(nodePath)) {
return;
}
- String barrierPath = nodePath.substring(0, nodePath.lastIndexOf("/"));
+ String barrierPath = nodePath.substring(0, nodePath.lastIndexOf('/'));
InnerCountDownLatchHolder holder = countDownLatchHolders.get(barrierPath);
if (null != holder && getRepository().getChildrenKeys(barrierPath).size() == holder.getTotalCount()) {
holder.getCountDownLatch().countDown();
diff --git a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
index 05755bf3657..146487c8a98 100644
--- a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
+++ b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/ingest/wal/decode/MppdbDecodingPlugin.java
@@ -92,7 +92,7 @@ public final class MppdbDecodingPlugin implements DecodingPlugin {
} else if (dataText.startsWith("COMMIT")) {
int commitBeginIndex = dataText.indexOf("COMMIT") + "COMMIT".length() + 1;
int csnBeginIndex = dataText.indexOf("CSN") + "CSN".length() + 1;
- result = new CommitTXEvent(Long.parseLong(dataText.substring(commitBeginIndex, dataText.indexOf(" ", commitBeginIndex))), Long.parseLong(dataText.substring(csnBeginIndex)));
+ result = new CommitTXEvent(Long.parseLong(dataText.substring(commitBeginIndex, dataText.indexOf(' ', commitBeginIndex))), Long.parseLong(dataText.substring(csnBeginIndex)));
} else if (dataText.startsWith("{")) {
result = readTableEvent(dataText);
}
diff --git a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
index d0df5963637..b60aae911a9 100644
--- a/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
+++ b/kernel/data-pipeline/dialect/opengauss/src/main/java/org/apache/shardingsphere/data/pipeline/opengauss/sqlbuilder/OpenGaussPipelineSQLBuilder.java
@@ -84,7 +84,7 @@ public final class OpenGaussPipelineSQLBuilder extends AbstractPipelineSQLBuilde
if (column.isUniqueKey()) {
continue;
}
- result.append(quote(column.getName())).append("=EXCLUDED.").append(quote(column.getName())).append(",");
+ result.append(quote(column.getName())).append("=EXCLUDED.").append(quote(column.getName())).append(',');
}
result.setLength(result.length() - 1);
return result.toString();
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLColumnPropertiesAppender.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLColumnPropertiesAppender.java
index 125f92bff83..eb502d06aae 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLColumnPropertiesAppender.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/ddlgenerator/PostgreSQLColumnPropertiesAppender.java
@@ -315,11 +315,11 @@ public final class PostgreSQLColumnPropertiesAppender extends AbstractPostgreSQL
isArray = true;
result = result.substring(0, result.lastIndexOf("[]"));
}
- int idx = result.indexOf("(");
+ int idx = result.indexOf('(');
if (idx > 0 && result.endsWith(")")) {
result = result.substring(0, idx);
} else if (idx > 0 && result.startsWith("time")) {
- int endIdx = result.indexOf(")");
+ int endIdx = result.indexOf(')');
if (1 != endIdx) {
Matcher matcher = BRACKETS_PATTERN.matcher(result);
StringBuffer buffer = new StringBuffer();
diff --git a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
index 43a5530708b..a31ce9d5769 100644
--- a/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
+++ b/kernel/data-pipeline/dialect/postgresql/src/main/java/org/apache/shardingsphere/data/pipeline/postgresql/sqlbuilder/PostgreSQLPipelineSQLBuilder.java
@@ -77,7 +77,7 @@ public final class PostgreSQLPipelineSQLBuilder extends AbstractPipelineSQLBuild
private String buildConflictSQL(final DataRecord dataRecord) {
StringBuilder result = new StringBuilder(" ON CONFLICT (");
for (Column each : RecordUtils.extractPrimaryColumns(dataRecord)) {
- result.append(each.getName()).append(",");
+ result.append(each.getName()).append(',');
}
result.setLength(result.length() - 1);
result.append(") DO UPDATE SET ");
@@ -86,7 +86,7 @@ public final class PostgreSQLPipelineSQLBuilder extends AbstractPipelineSQLBuild
if (column.isUniqueKey()) {
continue;
}
- result.append(quote(column.getName())).append("=EXCLUDED.").append(quote(column.getName())).append(",");
+ result.append(quote(column.getName())).append("=EXCLUDED.").append(quote(column.getName())).append(',');
}
result.setLength(result.length() - 1);
return result.toString();
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
index dc5f4f3a4a4..08027b9ccc8 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
@@ -147,43 +147,43 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
return result;
}
- private void appendResourceDistSQL(final YamlProxyDatabaseConfiguration yamlConfig, final StringBuilder result) {
- appendDatabase(yamlConfig.getDatabaseName(), result);
- appendResources(yamlConfig.getDataSources(), result);
+ private void appendResourceDistSQL(final YamlProxyDatabaseConfiguration yamlConfig, final StringBuilder stringBuilder) {
+ appendDatabase(yamlConfig.getDatabaseName(), stringBuilder);
+ appendResources(yamlConfig.getDataSources(), stringBuilder);
}
- private void appendDatabase(final String databaseName, final StringBuilder result) {
- result.append(String.format(DistSQLScriptConstants.CREATE_DATABASE, databaseName)).append(System.lineSeparator());
- result.append(String.format(DistSQLScriptConstants.USE_DATABASE, databaseName)).append(System.lineSeparator()).append(System.lineSeparator());
+ private void appendDatabase(final String databaseName, final StringBuilder stringBuilder) {
+ stringBuilder.append(String.format(DistSQLScriptConstants.CREATE_DATABASE, databaseName)).append(System.lineSeparator())
+ .append(String.format(DistSQLScriptConstants.USE_DATABASE, databaseName)).append(System.lineSeparator()).append(System.lineSeparator());
}
- private void appendResources(final Map<String, YamlProxyDataSourceConfiguration> dataSources, final StringBuilder result) {
+ private void appendResources(final Map<String, YamlProxyDataSourceConfiguration> dataSources, final StringBuilder stringBuilder) {
if (dataSources.isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.REGISTER_STORAGE_UNIT);
+ stringBuilder.append(DistSQLScriptConstants.REGISTER_STORAGE_UNIT);
Iterator<Entry<String, YamlProxyDataSourceConfiguration>> iterator = dataSources.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, YamlProxyDataSourceConfiguration> entry = iterator.next();
DataSourceProperties dataSourceProps = DataSourcePropertiesCreator.create(HikariDataSource.class.getName(), dataSourceConfigSwapper.swap(entry.getValue()));
- appendResource(entry.getKey(), dataSourceProps, result);
+ appendResource(entry.getKey(), dataSourceProps, stringBuilder);
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA);
+ stringBuilder.append(DistSQLScriptConstants.COMMA);
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
- private void appendResource(final String resourceName, final DataSourceProperties dataSourceProps, final StringBuilder result) {
+ private void appendResource(final String resourceName, final DataSourceProperties dataSourceProps, final StringBuilder stringBuilder) {
Map<String, Object> connectionProps = dataSourceProps.getConnectionPropertySynonyms().getStandardProperties();
String url = (String) connectionProps.get(DistSQLScriptConstants.KEY_URL);
String username = (String) connectionProps.get(DistSQLScriptConstants.KEY_USERNAME);
String password = (String) connectionProps.get(DistSQLScriptConstants.KEY_PASSWORD);
String props = getResourceProperties(dataSourceProps.getPoolPropertySynonyms(), dataSourceProps.getCustomDataSourceProperties());
if (Strings.isNullOrEmpty(password)) {
- result.append(String.format(DistSQLScriptConstants.RESOURCE_DEFINITION_WITHOUT_PASSWORD, resourceName, url, username, props));
+ stringBuilder.append(String.format(DistSQLScriptConstants.RESOURCE_DEFINITION_WITHOUT_PASSWORD, resourceName, url, username, props));
} else {
- result.append(String.format(DistSQLScriptConstants.RESOURCE_DEFINITION, resourceName, url, username, password, props));
+ stringBuilder.append(String.format(DistSQLScriptConstants.RESOURCE_DEFINITION, resourceName, url, username, password, props));
}
}
@@ -197,38 +197,38 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
return result.toString();
}
- private void appendProperties(final Map<String, Object> props, final StringBuilder result) {
+ private void appendProperties(final Map<String, Object> props, final StringBuilder stringBuilder) {
Iterator<Entry<String, Object>> iterator = props.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, Object> entry = iterator.next();
if (null == entry.getValue()) {
continue;
}
- result.append(String.format(DistSQLScriptConstants.PROPERTY, entry.getKey(), entry.getValue()));
+ stringBuilder.append(String.format(DistSQLScriptConstants.PROPERTY, entry.getKey(), entry.getValue()));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA).append(" ");
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(' ');
}
}
}
- private void appendShardingDistSQL(final ShardingRuleConfiguration ruleConfig, final StringBuilder result) {
- appendShardingTableRules(ruleConfig, result);
- appendShardingBindingTableRules(ruleConfig, result);
- appendShardingBroadcastTableRules(ruleConfig, result);
- appendDefaultShardingStrategy(ruleConfig, result);
+ private void appendShardingDistSQL(final ShardingRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
+ appendShardingTableRules(ruleConfig, stringBuilder);
+ appendShardingBindingTableRules(ruleConfig, stringBuilder);
+ appendShardingBroadcastTableRules(ruleConfig, stringBuilder);
+ appendDefaultShardingStrategy(ruleConfig, stringBuilder);
}
- private void appendShardingTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendShardingTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getTables().isEmpty() && ruleConfig.getAutoTables().isEmpty()) {
return;
}
String tableRules = getTableRules(ruleConfig);
String autoTableRules = getAutoTableRules(ruleConfig);
- result.append(DistSQLScriptConstants.CREATE_SHARDING_TABLE).append(tableRules);
+ stringBuilder.append(DistSQLScriptConstants.CREATE_SHARDING_TABLE).append(tableRules);
if (!Strings.isNullOrEmpty(tableRules) && !Strings.isNullOrEmpty(autoTableRules)) {
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
}
- result.append(autoTableRules).append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(autoTableRules).append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private String getAutoTableRules(final ShardingRuleConfiguration ruleConfig) {
@@ -273,10 +273,10 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
return result.toString();
}
- private void appendAuditStrategy(final Map<String, AlgorithmConfiguration> auditors, final ShardingAuditStrategyConfiguration auditStrategy, final StringBuilder result) {
+ private void appendAuditStrategy(final Map<String, AlgorithmConfiguration> auditors, final ShardingAuditStrategyConfiguration auditStrategy, final StringBuilder stringBuilder) {
if (null != auditStrategy) {
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
- result.append(String.format(DistSQLScriptConstants.AUDIT_STRATEGY, getAlgorithmTypes(auditors, auditStrategy.getAuditorNames()), auditStrategy.isAllowHintDisable()));
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(String.format(DistSQLScriptConstants.AUDIT_STRATEGY, getAlgorithmTypes(auditors, auditStrategy.getAuditorNames()), auditStrategy.isAllowHintDisable()));
}
}
@@ -303,67 +303,68 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
return result.toString();
}
- private void appendKeyGenerateStrategy(final Map<String, AlgorithmConfiguration> keyGenerators, final KeyGenerateStrategyConfiguration keyGenerateStrategyConfig, final StringBuilder result) {
+ private void appendKeyGenerateStrategy(final Map<String, AlgorithmConfiguration> keyGenerators,
+ final KeyGenerateStrategyConfiguration keyGenerateStrategyConfig, final StringBuilder stringBuilder) {
if (null == keyGenerateStrategyConfig) {
return;
}
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
String algorithmDefinition = getAlgorithmType(keyGenerators.get(keyGenerateStrategyConfig.getKeyGeneratorName()));
- result.append(String.format(DistSQLScriptConstants.KEY_GENERATOR_STRATEGY, keyGenerateStrategyConfig.getColumn(), algorithmDefinition));
+ stringBuilder.append(String.format(DistSQLScriptConstants.KEY_GENERATOR_STRATEGY, keyGenerateStrategyConfig.getColumn(), algorithmDefinition));
}
private void appendStrategy(final ShardingStrategyConfiguration strategyConfig, final String strategyType,
- final StringBuilder result, final Map<String, AlgorithmConfiguration> shardingAlgorithms) {
+ final StringBuilder stringBuilder, final Map<String, AlgorithmConfiguration> shardingAlgorithms) {
if (null == strategyConfig) {
return;
}
if (Objects.equals(strategyType, DistSQLScriptConstants.DATABASE_STRATEGY) || Objects.equals(strategyType, DistSQLScriptConstants.TABLE_STRATEGY)) {
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
}
String type = strategyConfig.getType().toLowerCase();
String algorithmDefinition = getAlgorithmType(shardingAlgorithms.get(strategyConfig.getShardingAlgorithmName()));
switch (type) {
case DistSQLScriptConstants.STANDARD:
StandardShardingStrategyConfiguration standardShardingStrategyConfig = (StandardShardingStrategyConfiguration) strategyConfig;
- result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_STANDARD, strategyType, type, standardShardingStrategyConfig.getShardingColumn(), algorithmDefinition));
+ stringBuilder.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_STANDARD, strategyType, type, standardShardingStrategyConfig.getShardingColumn(), algorithmDefinition));
break;
case DistSQLScriptConstants.COMPLEX:
ComplexShardingStrategyConfiguration complexShardingStrategyConfig = (ComplexShardingStrategyConfiguration) strategyConfig;
- result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_COMPLEX, strategyType, type, complexShardingStrategyConfig.getShardingColumns(), algorithmDefinition));
+ stringBuilder.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_COMPLEX, strategyType, type, complexShardingStrategyConfig.getShardingColumns(), algorithmDefinition));
break;
case DistSQLScriptConstants.HINT:
- result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_HINT, strategyType, type, algorithmDefinition));
+ stringBuilder.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_HINT, strategyType, type, algorithmDefinition));
break;
case DistSQLScriptConstants.NONE:
- result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_NONE, strategyType, "none"));
+ stringBuilder.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_NONE, strategyType, "none"));
break;
default:
break;
}
}
- private void appendShardingBindingTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendShardingBindingTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getBindingTableGroups().isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.SHARDING_BINDING_TABLE_RULES);
+ stringBuilder.append(DistSQLScriptConstants.SHARDING_BINDING_TABLE_RULES);
Iterator<ShardingTableReferenceRuleConfiguration> iterator = ruleConfig.getBindingTableGroups().iterator();
while (iterator.hasNext()) {
ShardingTableReferenceRuleConfiguration referenceRuleConfig = iterator.next();
- result.append(String.format(DistSQLScriptConstants.BINDING_TABLES, referenceRuleConfig.getName(), referenceRuleConfig.getReference()));
+ stringBuilder.append(String.format(DistSQLScriptConstants.BINDING_TABLES, referenceRuleConfig.getName(), referenceRuleConfig.getReference()));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA);
+ stringBuilder.append(DistSQLScriptConstants.COMMA);
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
- private void appendShardingBroadcastTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendShardingBroadcastTableRules(final ShardingRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getBroadcastTables().isEmpty()) {
return;
}
- result.append(String.format(DistSQLScriptConstants.BROADCAST_TABLE_RULE, String.join(",", ruleConfig.getBroadcastTables())));
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(String.format(DistSQLScriptConstants.BROADCAST_TABLE_RULE, String.join(",", ruleConfig.getBroadcastTables())))
+ .append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private void appendDefaultShardingStrategy(final ShardingRuleConfiguration ruleConfig, final StringBuilder result) {
@@ -380,27 +381,27 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
}
}
- private void appendReadWriteSplittingDistSQL(final ReadwriteSplittingRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendReadWriteSplittingDistSQL(final ReadwriteSplittingRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getDataSources().isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.CREATE_READWRITE_SPLITTING_RULE);
+ stringBuilder.append(DistSQLScriptConstants.CREATE_READWRITE_SPLITTING_RULE);
Iterator<ReadwriteSplittingDataSourceRuleConfiguration> iterator = ruleConfig.getDataSources().iterator();
while (iterator.hasNext()) {
ReadwriteSplittingDataSourceRuleConfiguration dataSourceRuleConfig = iterator.next();
- appendStaticReadWriteSplittingRule(ruleConfig.getLoadBalancers(), dataSourceRuleConfig, result);
+ appendStaticReadWriteSplittingRule(ruleConfig.getLoadBalancers(), dataSourceRuleConfig, stringBuilder);
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA);
+ stringBuilder.append(DistSQLScriptConstants.COMMA);
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private void appendStaticReadWriteSplittingRule(final Map<String, AlgorithmConfiguration> loadBalancers,
- final ReadwriteSplittingDataSourceRuleConfiguration dataSourceRuleConfig, final StringBuilder result) {
+ final ReadwriteSplittingDataSourceRuleConfiguration dataSourceRuleConfig, final StringBuilder stringBuilder) {
String readDataSourceNames = getReadDataSourceNames(dataSourceRuleConfig.getReadDataSourceNames());
String loadBalancerType = getLoadBalancerType(loadBalancers.get(dataSourceRuleConfig.getLoadBalancerName()));
- result.append(String.format(DistSQLScriptConstants.READWRITE_SPLITTING_FOR_STATIC,
+ stringBuilder.append(String.format(DistSQLScriptConstants.READWRITE_SPLITTING_FOR_STATIC,
dataSourceRuleConfig.getName(), dataSourceRuleConfig.getWriteDataSourceName(), readDataSourceNames, loadBalancerType));
}
@@ -425,22 +426,22 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
return result.toString();
}
- private void appendEncryptDistSQL(final EncryptRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendEncryptDistSQL(final EncryptRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getTables().isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.CREATE_ENCRYPT);
+ stringBuilder.append(DistSQLScriptConstants.CREATE_ENCRYPT);
Iterator<EncryptTableRuleConfiguration> iterator = ruleConfig.getTables().iterator();
while (iterator.hasNext()) {
EncryptTableRuleConfiguration tableRuleConfig = iterator.next();
boolean queryWithCipher = null == tableRuleConfig.getQueryWithCipherColumn() || tableRuleConfig.getQueryWithCipherColumn();
- result.append(String.format(DistSQLScriptConstants.ENCRYPT, tableRuleConfig.getName(),
+ stringBuilder.append(String.format(DistSQLScriptConstants.ENCRYPT, tableRuleConfig.getName(),
getEncryptColumns(tableRuleConfig.getColumns(), ruleConfig.getEncryptors(), ruleConfig.getLikeEncryptors()), queryWithCipher));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private String getEncryptColumns(final Collection<EncryptColumnRuleConfiguration> ruleConfigs,
@@ -467,15 +468,15 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
}
if (null != cipherColumnName) {
if (null != plainColumnName) {
- result.append(DistSQLScriptConstants.COMMA).append(" ");
+ result.append(DistSQLScriptConstants.COMMA).append(' ');
}
result.append(String.format(DistSQLScriptConstants.CIPHER, cipherColumnName));
}
if (null != ruleConfig.getAssistedQueryColumn()) {
- result.append(DistSQLScriptConstants.COMMA).append(" ").append(String.format(DistSQLScriptConstants.ASSISTED_QUERY_COLUMN, ruleConfig.getAssistedQueryColumn()));
+ result.append(DistSQLScriptConstants.COMMA).append(' ').append(String.format(DistSQLScriptConstants.ASSISTED_QUERY_COLUMN, ruleConfig.getAssistedQueryColumn()));
}
if (null != ruleConfig.getLikeQueryColumn()) {
- result.append(DistSQLScriptConstants.COMMA).append(" ").append(String.format(DistSQLScriptConstants.LIKE_QUERY_COLUMN, ruleConfig.getLikeQueryColumn()));
+ result.append(DistSQLScriptConstants.COMMA).append(' ').append(String.format(DistSQLScriptConstants.LIKE_QUERY_COLUMN, ruleConfig.getLikeQueryColumn()));
}
return result.toString();
}
@@ -490,32 +491,33 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
result.append(String.format(DistSQLScriptConstants.ENCRYPT_ALGORITHM, getAlgorithmType(encryptors.get(cipherEncryptorName))));
}
if (null != assistedQueryEncryptorName) {
- result.append(DistSQLScriptConstants.COMMA).append(" ")
+ result.append(DistSQLScriptConstants.COMMA).append(' ')
.append(String.format(DistSQLScriptConstants.ASSISTED_QUERY_ALGORITHM, getAlgorithmType(encryptors.get(assistedQueryEncryptorName))));
}
if (null != likeQueryEncryptorName) {
- result.append(DistSQLScriptConstants.COMMA).append(" ")
+ result.append(DistSQLScriptConstants.COMMA).append(' ')
.append(String.format(DistSQLScriptConstants.LIKE_QUERY_ALGORITHM, getAlgorithmType(likeEncryptors.get(likeQueryEncryptorName))));
}
return result.toString();
}
- private void appendShadowDistSQL(final ShadowRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendShadowDistSQL(final ShadowRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getDataSources().isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.CREATE_SHADOW);
+ stringBuilder.append(DistSQLScriptConstants.CREATE_SHADOW);
Iterator<ShadowDataSourceConfiguration> iterator = ruleConfig.getDataSources().iterator();
while (iterator.hasNext()) {
ShadowDataSourceConfiguration dataSourceConfig = iterator.next();
String shadowRuleName = dataSourceConfig.getName();
String shadowTables = getShadowTables(shadowRuleName, ruleConfig.getTables(), ruleConfig.getShadowAlgorithms());
- result.append(String.format(DistSQLScriptConstants.SHADOW, shadowRuleName, dataSourceConfig.getProductionDataSourceName(), dataSourceConfig.getShadowDataSourceName(), shadowTables));
+ stringBuilder.append(
+ String.format(DistSQLScriptConstants.SHADOW, shadowRuleName, dataSourceConfig.getProductionDataSourceName(), dataSourceConfig.getShadowDataSourceName(), shadowTables));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA);
+ stringBuilder.append(DistSQLScriptConstants.COMMA);
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private String getShadowTables(final String shadowRuleName, final Map<String, ShadowTableConfiguration> ruleConfig, final Map<String, AlgorithmConfiguration> algorithmConfigs) {
@@ -540,26 +542,26 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
while (iterator.hasNext()) {
result.append(getAlgorithmType(algorithmConfigs.get(iterator.next())));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA).append(" ");
+ result.append(DistSQLScriptConstants.COMMA).append(' ');
}
}
return result.toString();
}
- private void appendMaskDistSQL(final MaskRuleConfiguration ruleConfig, final StringBuilder result) {
+ private void appendMaskDistSQL(final MaskRuleConfiguration ruleConfig, final StringBuilder stringBuilder) {
if (ruleConfig.getTables().isEmpty()) {
return;
}
- result.append(DistSQLScriptConstants.CREATE_MASK);
+ stringBuilder.append(DistSQLScriptConstants.CREATE_MASK);
Iterator<MaskTableRuleConfiguration> iterator = ruleConfig.getTables().iterator();
while (iterator.hasNext()) {
MaskTableRuleConfiguration tableRuleConfig = iterator.next();
- result.append(String.format(DistSQLScriptConstants.MASK, tableRuleConfig.getName(), getMaskColumns(tableRuleConfig.getColumns(), ruleConfig.getMaskAlgorithms())));
+ stringBuilder.append(String.format(DistSQLScriptConstants.MASK, tableRuleConfig.getName(), getMaskColumns(tableRuleConfig.getColumns(), ruleConfig.getMaskAlgorithms())));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
}
}
- result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
+ stringBuilder.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
}
private String getMaskColumns(final Collection<MaskColumnRuleConfiguration> columnRuleConfig, final Map<String, AlgorithmConfiguration> maskAlgorithms) {
@@ -604,7 +606,7 @@ public final class ConvertYamlConfigurationExecutor implements QueryableRALExecu
}
result.append(String.format(DistSQLScriptConstants.PROPERTY, key, value));
if (iterator.hasNext()) {
- result.append(DistSQLScriptConstants.COMMA).append(" ");
+ result.append(DistSQLScriptConstants.COMMA).append(' ');
}
}
return result.toString();
diff --git a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ExportUtils.java b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ExportUtils.java
index afdd7a8a6e4..654d8ba8c1e 100644
--- a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ExportUtils.java
+++ b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/util/ExportUtils.java
@@ -36,8 +36,10 @@ import org.apache.shardingsphere.single.api.config.SingleRuleConfiguration;
import javax.sql.DataSource;
import java.io.File;
-import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Collection;
import java.util.Collections;
import java.util.Map.Entry;
@@ -61,7 +63,7 @@ public final class ExportUtils {
if (!file.exists()) {
file.getParentFile().mkdirs();
}
- try (FileOutputStream output = new FileOutputStream(file)) {
+ try (OutputStream output = Files.newOutputStream(Paths.get(file.toURI()))) {
output.write(exportedData.getBytes());
output.flush();
} catch (final IOException ex) {
@@ -98,7 +100,7 @@ public final class ExportUtils {
}
private static void appendDataSourceConfiguration(final String name, final DataSource dataSource, final StringBuilder stringBuilder) {
- stringBuilder.append(" ").append(name).append(":").append(System.lineSeparator());
+ stringBuilder.append(" ").append(name).append(':').append(System.lineSeparator());
DataSourceProperties dataSourceProps = DataSourcePropertiesCreator.create(dataSource);
dataSourceProps.getConnectionPropertySynonyms().getStandardProperties()
.forEach((key, value) -> stringBuilder.append(" ").append(key).append(": ").append(value).append(System.lineSeparator()));
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
index 9354600d7ba..4fc2334e6c2 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
@@ -38,7 +38,6 @@ import javax.sql.DataSource;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
-import java.sql.SQLException;
import java.util.Collection;
import java.util.Collections;
import java.util.LinkedHashMap;
@@ -64,7 +63,7 @@ class ExportDatabaseConfigurationExecutorTest {
}
@Test
- void assertExecute() throws SQLException {
+ void assertExecute() {
when(database.getName()).thenReturn("normal_db");
when(database.getResourceMetaData().getDataSources()).thenReturn(createDataSourceMap());
when(database.getRuleMetaData().getConfigurations()).thenReturn(Collections.singleton(createShardingRuleConfiguration()));
diff --git a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
index 408b2d6f55d..dcae7187ab5 100644
--- a/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
+++ b/sql-parser/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
@@ -77,7 +77,7 @@ import java.util.Properties;
*/
public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String> implements SQLFormatVisitor {
- private final StringBuilder formattedSQL = new StringBuilder();
+ private final StringBuilder formattedSQL = new StringBuilder(256);
private boolean upperCase = true;
@@ -103,11 +103,11 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
} else {
visit(ctx.queryExpression());
if (null != ctx.lockClauseList()) {
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
visit(ctx.lockClauseList());
}
}
- formatPrint(";");
+ formatPrint(';');
return formattedSQL.toString();
}
@@ -115,15 +115,15 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
public String visitQueryExpression(final QueryExpressionContext ctx) {
if (null != ctx.withClause()) {
visit(ctx.withClause());
- formatPrint(" ");
+ formatPrint(' ');
}
visit(null == ctx.queryExpressionBody() ? ctx.queryExpressionParens() : ctx.queryExpressionBody());
if (null != ctx.orderByClause()) {
- formatPrint(" ");
+ formatPrint(' ');
visit(ctx.orderByClause());
}
if (null != ctx.limitClause()) {
- formatPrint(" ");
+ formatPrint(' ');
visit(ctx.limitClause());
}
return formattedSQL.toString();
@@ -133,12 +133,12 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
public String visitQueryExpressionParens(final QueryExpressionParensContext ctx) {
formatPrintln();
indentCount++;
- formatPrint("(");
+ formatPrint('(');
formatPrintln();
if (null == ctx.queryExpressionParens()) {
visit(ctx.queryExpression());
if (null != ctx.lockClauseList()) {
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
visit(ctx.lockClauseList());
}
} else {
@@ -146,7 +146,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
}
indentCount--;
formatPrintln();
- formatPrint(")");
+ formatPrint(')');
return formattedSQL.toString();
}
@@ -169,7 +169,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
formattedSQL.append("\nUNION\n");
if (null != ctx.combineOption()) {
visit(ctx.combineOption());
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
}
visit(null == ctx.queryPrimary() ? ctx.queryExpressionParens() : ctx.queryPrimary());
return formattedSQL.toString();
@@ -181,7 +181,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
int selectSpecCount = ctx.selectSpecification().size();
for (int i = 0; i < selectSpecCount; i++) {
visit(ctx.selectSpecification(i));
- formatPrint(" ");
+ formatPrint(' ');
}
visit(ctx.projections());
if (null != ctx.fromClause()) {
@@ -217,15 +217,15 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
@Override
public String visitInsert(final InsertContext ctx) {
visit(ctx.INSERT());
- formatPrint(" ");
+ formatPrint(' ');
visit(ctx.insertSpecification());
- formatPrint(" ");
+ formatPrint(' ');
if (null != ctx.INTO()) {
visit(ctx.INTO());
- formatPrint(" ");
+ formatPrint(' ');
}
visit(ctx.tableName());
- formatPrint(" ");
+ formatPrint(' ');
if (null != ctx.partitionNames()) {
formatPrintln();
visit(ctx.partitionNames());
@@ -255,18 +255,18 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
}
visit(ctx.identifier(i));
}
- formatPrint(")");
+ formatPrint(')');
return formattedSQL.toString();
}
@Override
public String visitInsertValuesClause(final InsertValuesClauseContext ctx) {
if (null != ctx.LP_()) {
- formatPrint("(");
+ formatPrint('(');
if (null != ctx.fields()) {
visit(ctx.fields());
}
- formatPrint(")");
+ formatPrint(')');
}
formatPrintln();
visit(null == ctx.VALUE() ? ctx.VALUES() : ctx.VALUE());
@@ -276,7 +276,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
int valueCount = ctx.assignmentValues().size();
for (int i = 0; i < valueCount; i++) {
if (0 != i) {
- formatPrint(",");
+ formatPrint(',');
formatPrintln();
}
visit(ctx.assignmentValues(i));
@@ -299,10 +299,10 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
public String visitInsertSelectClause(final InsertSelectClauseContext ctx) {
if (null != ctx.valueReference()) {
visit(ctx.valueReference());
- formatPrint(" ");
+ formatPrint(' ');
}
if (null != ctx.LP_()) {
- formatPrint("(");
+ formatPrint('(');
if (null != ctx.fields()) {
visit(ctx.fields());
}
@@ -317,11 +317,11 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
public String visitSetAssignmentsClause(final SetAssignmentsClauseContext ctx) {
if (null != ctx.valueReference()) {
visit(ctx.valueReference());
- formatPrint(" ");
+ formatPrint(' ');
}
indentCount++;
visit(ctx.SET());
- formatPrint(" ");
+ formatPrint(' ');
int assignmentCount = ctx.assignment().size();
for (int i = 0; i < assignmentCount; i++) {
if (0 != i) {
@@ -550,7 +550,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
indentCount++;
if (null != ctx.unqualifiedShorthand()) {
visit(ctx.unqualifiedShorthand());
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
}
int projectionCount = ctx.projection().size();
int lineItemCount = 0;
@@ -754,7 +754,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
formatPrint("WITH ");
if (null != ctx.RECURSIVE()) {
visit(ctx.RECURSIVE());
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
}
for (int i = 0; i < ctx.cteClause().size(); i++) {
if (i != 0 && i < ctx.cteClause().size() - 1) {
@@ -763,7 +763,7 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
visit(ctx.cteClause(i));
}
if (null != ctx.parent) {
- formattedSQL.append("\n");
+ formattedSQL.append('\n');
}
return formattedSQL.toString();
}
@@ -771,10 +771,10 @@ public final class MySQLFormatVisitor extends MySQLStatementBaseVisitor<String>
@Override
public String visitCteClause(final CteClauseContext ctx) {
visit(ctx.identifier());
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
if (null != ctx.columnNames()) {
visit(ctx.columnNames());
- formattedSQL.append(" ");
+ formattedSQL.append(' ');
}
formattedSQL.append("AS ");
visit(ctx.subquery());
diff --git a/src/resources/pmd.xml b/src/resources/pmd.xml
index 978db58336e..28be1d2147f 100644
--- a/src/resources/pmd.xml
+++ b/src/resources/pmd.xml
@@ -138,4 +138,25 @@
<rule ref="category/java/errorprone.xml/UnnecessaryCaseChange" />
<rule ref="category/java/errorprone.xml/UseCorrectExceptionLogging" />
<rule ref="category/java/errorprone.xml/UseProperClassLoader" />
+
+ <rule ref="category/java/performance.xml/AddEmptyString" />
+ <rule ref="category/java/performance.xml/AppendCharacterWithChar" />
+ <rule ref="category/java/performance.xml/AvoidArrayLoops" />
+ <rule ref="category/java/performance.xml/AvoidCalendarDateCreation" />
+ <rule ref="category/java/performance.xml/AvoidFileStream" />
+ <rule ref="category/java/performance.xml/ConsecutiveAppendsShouldReuse" />
+ <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends" />
+ <rule ref="category/java/performance.xml/InefficientEmptyStringCheck" />
+ <rule ref="category/java/performance.xml/InefficientStringBuffering" />
+ <rule ref="category/java/performance.xml/RedundantFieldInitializer" />
+ <rule ref="category/java/performance.xml/StringInstantiation" />
+ <rule ref="category/java/performance.xml/StringToString" />
+ <rule ref="category/java/performance.xml/TooFewBranchesForASwitchStatement" />
+ <rule ref="category/java/performance.xml/UseArrayListInsteadOfVector" />
+ <rule ref="category/java/performance.xml/UseArraysAsList" />
+ <rule ref="category/java/performance.xml/UseIndexOfChar" />
+ <rule ref="category/java/performance.xml/UseIOStreamsWithApacheCommonsFileItem" />
+ <rule ref="category/java/performance.xml/UselessStringValueOf" />
+ <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" />
+ <rule ref="category/java/performance.xml/UseStringBufferLength" />
</ruleset>
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/result/type/csv/CsvSQLParseResultReporter.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/result/type/csv/CsvSQLParseResultReporter.java
index 22617274341..9c7cc608760 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/result/type/csv/CsvSQLParseResultReporter.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/external/result/type/csv/CsvSQLParseResultReporter.java
@@ -24,8 +24,10 @@ import org.apache.shardingsphere.test.it.sql.parser.external.env.SQLParserExtern
import org.apache.shardingsphere.test.it.sql.parser.external.result.SQLParseResultReporter;
import java.io.File;
-import java.io.FileWriter;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.nio.file.StandardOpenOption;
/**
* SQL parse result reporter for CSV.
@@ -38,7 +40,7 @@ public final class CsvSQLParseResultReporter implements SQLParseResultReporter {
public CsvSQLParseResultReporter(final String databaseType) {
File csvFile = new File(SQLParserExternalITEnvironment.getInstance().getResultPath() + databaseType + "-result.csv");
printHeader(csvFile);
- printer = new CSVPrinter(new FileWriter(csvFile, true), CSVFormat.DEFAULT.builder().setSkipHeaderRecord(true).build());
+ printer = new CSVPrinter(Files.newBufferedWriter(Paths.get(csvFile.toURI()), StandardOpenOption.APPEND), CSVFormat.DEFAULT.builder().setSkipHeaderRecord(true).build());
}
@SneakyThrows(IOException.class)
@@ -47,8 +49,7 @@ public final class CsvSQLParseResultReporter implements SQLParseResultReporter {
return;
}
try (
- FileWriter fileWriter = new FileWriter(csvFile);
- CSVPrinter csvHeaderPrinter = new CSVPrinter(fileWriter, CSVFormat.DEFAULT.builder().setSkipHeaderRecord(false).build())) {
+ CSVPrinter csvHeaderPrinter = new CSVPrinter(Files.newBufferedWriter(Paths.get(csvFile.toURI())), CSVFormat.DEFAULT.builder().setSkipHeaderRecord(false).build())) {
csvHeaderPrinter.printRecord("SQLCaseId", "DatabaseType", "Result", "SQL");
csvHeaderPrinter.flush();
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
index e94003373e8..ef6e1b02953 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/asserts/SQLCaseAssertContext.java
@@ -53,27 +53,19 @@ public final class SQLCaseAssertContext {
}
private void appendSQLCaseId(final StringBuilder builder) {
- builder.append("SQL Case ID : ");
- builder.append(caseId);
- builder.append(System.lineSeparator());
+ builder.append("SQL Case ID : ").append(caseId).append(System.lineSeparator());
}
private void appendSQL(final StringBuilder builder) {
builder.append("SQL : ");
if (SQLCaseType.PLACEHOLDER == caseType) {
- builder.append(sql);
- builder.append(System.lineSeparator());
- builder.append("SQL Params : ");
- builder.append(params);
- builder.append(System.lineSeparator());
+ builder.append(sql).append(System.lineSeparator()).append("SQL Params : ").append(params).append(System.lineSeparator());
} else {
builder.append(sql);
}
}
private void appendFailureMessage(final String failureMessage, final StringBuilder builder) {
- builder.append(System.lineSeparator());
- builder.append(failureMessage);
- builder.append(System.lineSeparator());
+ builder.append(System.lineSeparator()).append(failureMessage).append(System.lineSeparator());
}
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/loader/SQLParserTestCaseLoaderCallback.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/loader/SQLParserTestCaseLoaderCallback.java
index 615fe20a772..ec761816f01 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/loader/SQLParserTestCaseLoaderCallback.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/cases/parser/loader/SQLParserTestCaseLoaderCallback.java
@@ -26,9 +26,10 @@ import org.apache.shardingsphere.test.it.sql.parser.internal.loader.CaseLoaderCa
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
@@ -54,7 +55,7 @@ public final class SQLParserTestCaseLoaderCallback implements CaseLoaderCallback
public Map<String, SQLParserTestCase> loadFromDirectory(final String rootDirectory) throws IOException, JAXBException {
Map<String, SQLParserTestCase> result = new HashMap<>(Short.MAX_VALUE, 1);
for (File each : CaseFileLoader.loadFilesFromDirectory(rootDirectory)) {
- try (FileInputStream inputStream = new FileInputStream(each)) {
+ try (InputStream inputStream = Files.newInputStream(Paths.get(each.toURI()))) {
Map<String, SQLParserTestCase> testCases = createTestCases(inputStream);
checkDuplicatedTestCases(testCases, result);
result.putAll(testCases);
diff --git a/test/it/yaml/src/main/java/org/apache/shardingsphere/test/it/yaml/YamlRuleConfigurationIT.java b/test/it/yaml/src/main/java/org/apache/shardingsphere/test/it/yaml/YamlRuleConfigurationIT.java
index db5e2c27fc0..8e4c57554e0 100644
--- a/test/it/yaml/src/main/java/org/apache/shardingsphere/test/it/yaml/YamlRuleConfigurationIT.java
+++ b/test/it/yaml/src/main/java/org/apache/shardingsphere/test/it/yaml/YamlRuleConfigurationIT.java
@@ -24,9 +24,11 @@ import org.junit.jupiter.api.Test;
import java.io.BufferedReader;
import java.io.File;
-import java.io.FileReader;
import java.io.IOException;
+import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -47,13 +49,11 @@ public abstract class YamlRuleConfigurationIT {
}
@Test
- void assertUnmarshalWithYamlBytes() throws IOException {
+ void assertUnmarshalWithYamlBytes() throws IOException, URISyntaxException {
URL url = Thread.currentThread().getContextClassLoader().getResource(yamlFile);
assertNotNull(url);
StringBuilder yamlContent = new StringBuilder();
- try (
- FileReader fileReader = new FileReader(url.getFile());
- BufferedReader reader = new BufferedReader(fileReader)) {
+ try (BufferedReader reader = Files.newBufferedReader(Paths.get(url.toURI()))) {
String line;
while (null != (line = reader.readLine())) {
yamlContent.append(line).append(System.lineSeparator());