This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 f48fc9a44fc Refactor to return void for operate of
DatabaseRuleOperator (#32320)
f48fc9a44fc is described below
commit f48fc9a44fce8fb3577b85069191c56654bc3307
Author: Haoran Meng <[email protected]>
AuthorDate: Mon Jul 29 18:37:13 2024 +0800
Refactor to return void for operate of DatabaseRuleOperator (#32320)
* Refactor to return void for operate of DatabaseRuleOperator
* Fix checkstyle
---
.../database/DatabaseRuleDefinitionExecuteEngine.java | 3 +--
.../rdl/rule/engine/database/DatabaseRuleOperator.java | 5 +----
.../engine/database/type/AlterDatabaseRuleOperator.java | 7 ++-----
.../engine/database/type/CreateDatabaseRuleOperator.java | 7 ++-----
.../engine/database/type/DropDatabaseRuleOperator.java | 16 ++++++----------
.../persist/service/MetaDataManagerPersistService.java | 4 +---
.../persist/ClusterMetaDataManagerPersistService.java | 7 +++----
.../persist/StandaloneMetaDataManagerPersistService.java | 3 +--
8 files changed, 17 insertions(+), 35 deletions(-)
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
index 17beb3bb25a..a5acc4d2905 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleDefinitionExecuteEngine.java
@@ -57,8 +57,7 @@ public final class DatabaseRuleDefinitionExecuteEngine {
checkBeforeUpdate();
RuleConfiguration currentRuleConfig =
rule.map(ShardingSphereRule::getConfiguration).orElse(null);
if (getRefreshStatus(rule.isPresent())) {
-
contextManager.getPersistServiceFacade().getMetaDataPersistService().getMetaDataVersionPersistService()
-
.switchActiveVersion(DatabaseRuleOperatorFactory.newInstance(contextManager,
executor).operate(sqlStatement, database, currentRuleConfig));
+ DatabaseRuleOperatorFactory.newInstance(contextManager,
executor).operate(sqlStatement, database, currentRuleConfig);
}
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
index 5af9541b3a5..2d4459940ea 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/DatabaseRuleOperator.java
@@ -20,10 +20,8 @@ package
org.apache.shardingsphere.distsql.handler.engine.update.rdl.rule.engine.
import
org.apache.shardingsphere.distsql.statement.rdl.rule.database.DatabaseRuleDefinitionStatement;
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import java.sql.SQLException;
-import java.util.Collection;
/**
* Database rule operator.
@@ -36,8 +34,7 @@ public interface DatabaseRuleOperator {
* @param sqlStatement SQL statement
* @param database database
* @param currentRuleConfig current rule configuration
- * @return meta data versions
* @throws SQLException SQL Exception
*/
- Collection<MetaDataVersion> operate(DatabaseRuleDefinitionStatement
sqlStatement, ShardingSphereDatabase database, RuleConfiguration
currentRuleConfig) throws SQLException;
+ void operate(DatabaseRuleDefinitionStatement sqlStatement,
ShardingSphereDatabase database, RuleConfiguration currentRuleConfig) throws
SQLException;
}
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
index dfde8eff9ae..9dc5e4a2fe2 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/AlterDatabaseRuleOperator.java
@@ -24,13 +24,11 @@ import
org.apache.shardingsphere.distsql.statement.rdl.rule.database.DatabaseRul
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.rule.decorator.RuleConfigurationDecorator;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import java.sql.SQLException;
-import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.stream.Collectors;
@@ -48,13 +46,12 @@ public final class AlterDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
- final RuleConfiguration
currentRuleConfig) throws SQLException {
+ public void operate(final DatabaseRuleDefinitionStatement sqlStatement,
final ShardingSphereDatabase database, final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeAlteredRuleConfig =
executor.buildToBeAlteredRuleConfiguration(sqlStatement);
MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
RuleConfiguration toBeDroppedRuleConfig =
executor.buildToBeDroppedRuleConfiguration(toBeAlteredRuleConfig);
metaDataManagerPersistService.removeRuleConfigurationItem(database.getName(),
toBeDroppedRuleConfig);
- return
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
decorateRuleConfiguration(database, toBeAlteredRuleConfig));
+
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
decorateRuleConfiguration(database, toBeAlteredRuleConfig));
}
@SuppressWarnings("unchecked")
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
index bc839c326b7..8645350a27c 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/CreateDatabaseRuleOperator.java
@@ -24,13 +24,11 @@ import
org.apache.shardingsphere.distsql.statement.rdl.rule.database.DatabaseRul
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.rule.decorator.RuleConfigurationDecorator;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
import java.sql.SQLException;
-import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.stream.Collectors;
@@ -48,11 +46,10 @@ public final class CreateDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
- final RuleConfiguration
currentRuleConfig) throws SQLException {
+ public void operate(final DatabaseRuleDefinitionStatement sqlStatement,
final ShardingSphereDatabase database, final RuleConfiguration
currentRuleConfig) throws SQLException {
RuleConfiguration toBeCreatedRuleConfig =
executor.buildToBeCreatedRuleConfiguration(sqlStatement);
MetaDataManagerPersistService metaDataManagerPersistService =
contextManager.getPersistServiceFacade().getMetaDataManagerPersistService();
- return
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
decorateRuleConfiguration(database, toBeCreatedRuleConfig));
+
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
decorateRuleConfiguration(database, toBeCreatedRuleConfig));
}
@SuppressWarnings("unchecked")
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
index 4429541f70e..9cc5e5df5fb 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/engine/update/rdl/rule/engine/database/type/DropDatabaseRuleOperator.java
@@ -25,17 +25,14 @@ import
org.apache.shardingsphere.distsql.statement.rdl.rule.database.DatabaseRul
import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.config.rule.scope.DatabaseRuleConfiguration;
import
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import
org.apache.shardingsphere.infra.rule.attribute.datasource.StaticDataSourceRuleAttribute;
import
org.apache.shardingsphere.infra.yaml.config.pojo.rule.YamlRuleConfiguration;
-import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
-import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
import
org.apache.shardingsphere.infra.yaml.config.swapper.rule.YamlRuleConfigurationSwapperEngine;
import org.apache.shardingsphere.mode.manager.ContextManager;
+import
org.apache.shardingsphere.mode.persist.service.MetaDataManagerPersistService;
+import org.apache.shardingsphere.mode.tuple.annotation.RepositoryTupleEntity;
import java.sql.SQLException;
-import java.util.Collection;
-import java.util.Collections;
import java.util.Objects;
/**
@@ -51,10 +48,9 @@ public final class DropDatabaseRuleOperator implements
DatabaseRuleOperator {
@Override
@SuppressWarnings("unchecked")
- public Collection<MetaDataVersion> operate(final
DatabaseRuleDefinitionStatement sqlStatement, final ShardingSphereDatabase
database,
- final RuleConfiguration
currentRuleConfig) throws SQLException {
+ public void operate(final DatabaseRuleDefinitionStatement sqlStatement,
final ShardingSphereDatabase database, final RuleConfiguration
currentRuleConfig) throws SQLException {
if (!executor.hasAnyOneToBeDropped(sqlStatement)) {
- return Collections.emptyList();
+ return;
}
if (sqlStatement instanceof
StaticDataSourceContainedRuleAwareStatement) {
for (StaticDataSourceRuleAttribute each :
database.getRuleMetaData().getAttributes(StaticDataSourceRuleAttribute.class)) {
@@ -69,8 +65,8 @@ public final class DropDatabaseRuleOperator implements
DatabaseRuleOperator {
if (null != toBeAlteredRuleConfig && ((DatabaseRuleConfiguration)
toBeAlteredRuleConfig).isEmpty()) {
YamlRuleConfiguration yamlRuleConfig = new
YamlRuleConfigurationSwapperEngine().swapToYamlRuleConfiguration(currentRuleConfig);
metaDataManagerPersistService.removeRuleConfiguration(database.getName(),
Objects.requireNonNull(yamlRuleConfig.getClass().getAnnotation(RepositoryTupleEntity.class)).value());
- return Collections.emptyList();
+ } else {
+
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
toBeAlteredRuleConfig);
}
- return
metaDataManagerPersistService.alterRuleConfiguration(database.getName(),
toBeAlteredRuleConfig);
}
}
diff --git
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
index bc90f8e9a4d..c6b153192b4 100644
---
a/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
+++
b/mode/core/src/main/java/org/apache/shardingsphere/mode/persist/service/MetaDataManagerPersistService.java
@@ -21,7 +21,6 @@ import
org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaMetaDataPOJO;
import
org.apache.shardingsphere.infra.metadata.database.schema.pojo.AlterSchemaPOJO;
-import org.apache.shardingsphere.infra.metadata.version.MetaDataVersion;
import java.sql.SQLException;
import java.util.Collection;
@@ -117,10 +116,9 @@ public interface MetaDataManagerPersistService {
*
* @param databaseName database name
* @param toBeAlteredRuleConfig to be altered rule config
- * @return meta data versions
* @throws SQLException SQL exception
*/
- Collection<MetaDataVersion> alterRuleConfiguration(String databaseName,
RuleConfiguration toBeAlteredRuleConfig) throws SQLException;
+ void alterRuleConfiguration(String databaseName, RuleConfiguration
toBeAlteredRuleConfig) throws SQLException;
/**
* Remove rule configuration item.
diff --git
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
index 6ab399681c1..fa3943d11d1 100644
---
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
+++
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/persist/ClusterMetaDataManagerPersistService.java
@@ -168,15 +168,14 @@ public final class ClusterMetaDataManagerPersistService
implements MetaDataManag
}
@Override
- public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) {
+ public void alterRuleConfiguration(final String databaseName, final
RuleConfiguration toBeAlteredRuleConfig) {
MetaDataContexts originalMetaDataContexts =
metaDataContextManager.getMetaDataContexts().get();
if (null != toBeAlteredRuleConfig) {
- Collection<MetaDataVersion> result =
metaDataPersistService.getDatabaseRulePersistService()
+ Collection<MetaDataVersion> metaDataVersions =
metaDataPersistService.getDatabaseRulePersistService()
.persistConfigurations(databaseName,
Collections.singleton(toBeAlteredRuleConfig));
+
metaDataPersistService.getMetaDataVersionPersistService().switchActiveVersion(metaDataVersions);
afterRuleConfigurationAltered(databaseName,
originalMetaDataContexts);
- return result;
}
- return Collections.emptyList();
}
@Override
diff --git
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
index 6f1248356ef..7d6c1ff4205 100644
---
a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
+++
b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/persist/StandaloneMetaDataManagerPersistService.java
@@ -289,7 +289,7 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
@Override
- public Collection<MetaDataVersion> alterRuleConfiguration(final String
databaseName, final RuleConfiguration toBeAlteredRuleConfig) throws
SQLException {
+ public void alterRuleConfiguration(final String databaseName, final
RuleConfiguration toBeAlteredRuleConfig) throws SQLException {
if (null != toBeAlteredRuleConfig) {
Collection<MetaDataVersion> metaDataVersions =
metaDataPersistService.getDatabaseRulePersistService()
.persistConfigurations(metaDataContextManager.getMetaDataContexts().get().getMetaData().getDatabase(databaseName).getName(),
Collections.singletonList(toBeAlteredRuleConfig));
@@ -302,7 +302,6 @@ public final class StandaloneMetaDataManagerPersistService
implements MetaDataMa
}
clearServiceCache();
}
- return Collections.emptyList();
}
private Optional<DispatchEvent> buildAlterRuleItemEvent(final String
databaseName, final MetaDataVersion metaDataVersion, final Type type) {