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) {

Reply via email to