This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 a593aaf3a7b Refactor mode judgment and move the method to 
ModeConfiguration (#32472)
a593aaf3a7b is described below

commit a593aaf3a7bd10471d70c2db1acdeb54d4a4578c
Author: Haoran Meng <[email protected]>
AuthorDate: Mon Aug 12 15:31:39 2024 +0800

    Refactor mode judgment and move the method to ModeConfiguration (#32472)
---
 .../infra/config/mode/ModeConfiguration.java       |  9 +++++++++
 .../infra/instance/ComputeNodeInstanceContext.java |  9 ---------
 .../infra/config/mode/ModeConfigurationTest.java}  | 23 +++++++++++-----------
 .../instance/ComputeNodeInstanceContextTest.java   | 12 -----------
 .../required/DistSQLExecutorRequiredChecker.java   |  2 +-
 .../PipelineContextManagerLifecycleListener.java   |  2 +-
 .../handler/update/MigrateTableExecutor.java       |  2 +-
 ...RegisterMigrationSourceStorageUnitExecutor.java |  2 +-
 ...ticsCollectContextManagerLifecycleListener.java |  3 ++-
 .../mode/metadata/MetaDataContextsFactory.java     |  4 ++--
 .../RuleConfigurationPersistDecorateEngine.java    |  4 ++--
 .../dispatch/ListenerAssistedSubscriber.java       |  3 ++-
 .../ResourceMetaDataChangedSubscriber.java         |  3 ++-
 13 files changed, 35 insertions(+), 43 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
index 4d985f6aef9..ed78c8a888c 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
@@ -30,4 +30,13 @@ public final class ModeConfiguration {
     private final String type;
     
     private final PersistRepositoryConfiguration repository;
+    
+    /**
+     * Is cluster mode or not.
+     *
+     * @return true if is cluster, else false
+     */
+    public boolean isCluster() {
+        return type.contains("Cluster");
+    }
 }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
index 96936f6d861..e569be71d87 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContext.java
@@ -210,15 +210,6 @@ public final class ComputeNodeInstanceContext {
         return allClusterInstances.stream().filter(each -> 
instanceId.equals(each.getMetaData().getId())).findFirst();
     }
     
-    /**
-     * Is cluster instance or not.
-     *
-     * @return true if is cluster, else false
-     */
-    public boolean isCluster() {
-        return "Cluster".equals(modeConfiguration.getType());
-    }
-    
     /**
      *  Get lock context.
      *
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/mode/ModeConfigurationTest.java
similarity index 61%
copy from 
infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
copy to 
infra/common/src/test/java/org/apache/shardingsphere/infra/config/mode/ModeConfigurationTest.java
index 4d985f6aef9..f936d2c5e17 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/config/mode/ModeConfiguration.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/config/mode/ModeConfigurationTest.java
@@ -17,17 +17,18 @@
 
 package org.apache.shardingsphere.infra.config.mode;
 
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
+import org.junit.jupiter.api.Test;
 
-/**
- * Mode configuration.
- */
-@RequiredArgsConstructor
-@Getter
-public final class ModeConfiguration {
-    
-    private final String type;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+class ModeConfigurationTest {
     
-    private final PersistRepositoryConfiguration repository;
+    @Test
+    void assertIsCluster() {
+        ModeConfiguration standaloneModeConfiguration = new 
ModeConfiguration("Standalone", null);
+        assertFalse(standaloneModeConfiguration.isCluster());
+        ModeConfiguration clusterModeConfiguration = new 
ModeConfiguration("Cluster", null);
+        assertTrue(clusterModeConfiguration.isCluster());
+    }
 }
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
index 70353a59fd2..ce2eadeffd8 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/instance/ComputeNodeInstanceContextTest.java
@@ -31,9 +31,7 @@ import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -109,14 +107,4 @@ class ComputeNodeInstanceContextTest {
                 new ComputeNodeInstance(mock(InstanceMetaData.class)), 
mock(WorkerIdGenerator.class), modeConfig, lockContext, eventBusContext);
         assertThat(context.getModeConfiguration(), is(modeConfig));
     }
-    
-    @Test
-    void assertIsCluster() {
-        ComputeNodeInstanceContext context = new ComputeNodeInstanceContext(
-                new ComputeNodeInstance(mock(InstanceMetaData.class)), 
mock(WorkerIdGenerator.class), modeConfig, lockContext, eventBusContext);
-        assertFalse(context.isCluster());
-        ComputeNodeInstanceContext clusterContext = new 
ComputeNodeInstanceContext(new 
ComputeNodeInstance(mock(InstanceMetaData.class)), 
mock(WorkerIdGenerator.class),
-                new ModeConfiguration("Cluster", null), lockContext, 
eventBusContext);
-        assertTrue(clusterContext.isCluster());
-    }
 }
diff --git 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/required/DistSQLExecutorRequiredChecker.java
 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/required/DistSQLExecutorRequiredChecker.java
index c43444f8d4c..7216712379f 100644
--- 
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/required/DistSQLExecutorRequiredChecker.java
+++ 
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/required/DistSQLExecutorRequiredChecker.java
@@ -50,7 +50,7 @@ public final class DistSQLExecutorRequiredChecker {
     }
     
     private void checkClusterMode(final ContextManager contextManager) {
-        
ShardingSpherePreconditions.checkState(contextManager.getComputeNodeInstanceContext().isCluster(),
 NotClusterModeException::new);
+        
ShardingSpherePreconditions.checkState(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster(),
 NotClusterModeException::new);
     }
     
     private void checkCurrentRule(final SQLStatement sqlStatement, final 
ContextManager contextManager, final ShardingSphereDatabase database,
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/PipelineContextManagerLifecycleListener.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/PipelineContextManagerLifecycleListener.java
index d00fe587070..e51dea597b0 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/PipelineContextManagerLifecycleListener.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/listener/PipelineContextManagerLifecycleListener.java
@@ -49,7 +49,7 @@ public final class PipelineContextManagerLifecycleListener 
implements ContextMan
     @Override
     public void onInitialized(final ContextManager contextManager) {
         ModeConfiguration modeConfig = 
contextManager.getComputeNodeInstanceContext().getModeConfiguration();
-        if (!contextManager.getComputeNodeInstanceContext().isCluster()) {
+        if 
(!contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster())
 {
             log.info("mode type is not Cluster, mode type='{}', ignore", 
modeConfig.getType());
             return;
         }
diff --git 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/MigrateTableExecutor.java
 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/MigrateTableExecutor.java
index 94b7f9eef84..e7ca624bf41 100644
--- 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/MigrateTableExecutor.java
+++ 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/MigrateTableExecutor.java
@@ -44,7 +44,7 @@ public final class MigrateTableExecutor implements 
DistSQLUpdateExecutor<Migrate
     @Override
     public void executeUpdate(final MigrateTableStatement sqlStatement, final 
ContextManager contextManager) {
         ComputeNodeInstanceContext computeNodeInstanceContext = 
contextManager.getComputeNodeInstanceContext();
-        
ShardingSpherePreconditions.checkState(computeNodeInstanceContext.isCluster(), 
() -> new PipelineInvalidParameterException(
+        
ShardingSpherePreconditions.checkState(computeNodeInstanceContext.getModeConfiguration().isCluster(),
 () -> new PipelineInvalidParameterException(
                 String.format("Only `Cluster` is supported now, but current 
mode type is `%s`", 
computeNodeInstanceContext.getModeConfiguration().getType())));
         String targetDatabaseName = null == 
sqlStatement.getTargetDatabaseName() ? database.getName() : 
sqlStatement.getTargetDatabaseName();
         
ShardingSpherePreconditions.checkState(contextManager.getMetaDataContexts().getMetaData().containsDatabase(targetDatabaseName),
diff --git 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/RegisterMigrationSourceStorageUnitExecutor.java
 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/RegisterMigrationSourceStorageUnitExecutor.java
index 3edad503ce6..fe6b4ce1b46 100644
--- 
a/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/RegisterMigrationSourceStorageUnitExecutor.java
+++ 
b/kernel/data-pipeline/distsql/handler/src/main/java/org/apache/shardingsphere/data/pipeline/migration/distsql/handler/update/RegisterMigrationSourceStorageUnitExecutor.java
@@ -54,7 +54,7 @@ public final class RegisterMigrationSourceStorageUnitExecutor 
implements DistSQL
     @Override
     public void executeUpdate(final 
RegisterMigrationSourceStorageUnitStatement sqlStatement, final ContextManager 
contextManager) {
         ComputeNodeInstanceContext computeNodeInstanceContext = 
contextManager.getComputeNodeInstanceContext();
-        
ShardingSpherePreconditions.checkState(computeNodeInstanceContext.isCluster(), 
() -> new PipelineInvalidParameterException(
+        
ShardingSpherePreconditions.checkState(computeNodeInstanceContext.getModeConfiguration().isCluster(),
 () -> new PipelineInvalidParameterException(
                 String.format("Only `Cluster` is supported now, but current 
mode type is `%s`", 
computeNodeInstanceContext.getModeConfiguration().getType())));
         checkDataSource(sqlStatement);
         List<DataSourceSegment> dataSources = new 
ArrayList<>(sqlStatement.getDataSources());
diff --git 
a/kernel/schedule/core/src/main/java/org/apache/shardingsphere/schedule/core/job/statistics/collect/StatisticsCollectContextManagerLifecycleListener.java
 
b/kernel/schedule/core/src/main/java/org/apache/shardingsphere/schedule/core/job/statistics/collect/StatisticsCollectContextManagerLifecycleListener.java
index 271996343e9..694bcde7873 100644
--- 
a/kernel/schedule/core/src/main/java/org/apache/shardingsphere/schedule/core/job/statistics/collect/StatisticsCollectContextManagerLifecycleListener.java
+++ 
b/kernel/schedule/core/src/main/java/org/apache/shardingsphere/schedule/core/job/statistics/collect/StatisticsCollectContextManagerLifecycleListener.java
@@ -28,7 +28,8 @@ public final class 
StatisticsCollectContextManagerLifecycleListener implements C
     
     @Override
     public void onInitialized(final ContextManager contextManager) {
-        if (contextManager.getComputeNodeInstanceContext().isCluster() && 
InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
+        if 
(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster()
+                && InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
             new StatisticsCollectJobWorker(contextManager).initialize();
         }
     }
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
index 50e69e095e5..90551bd97d7 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/MetaDataContextsFactory.java
@@ -92,7 +92,7 @@ public final class MetaDataContextsFactory {
         Collection<RuleConfiguration> globalRuleConfigs;
         if (isDatabaseMetaDataExisted) {
             globalRuleConfigs = persistService.getGlobalRuleService().load();
-        } else if (computeNodeInstanceContext.isCluster()) {
+        } else if 
(computeNodeInstanceContext.getModeConfiguration().isCluster()) {
             globalRuleConfigs = new 
RuleConfigurationPersistDecorateEngine(computeNodeInstanceContext).tryRestore(param.getGlobalRuleConfigs());
             param.getGlobalRuleConfigs().clear();
             param.getGlobalRuleConfigs().addAll(globalRuleConfigs);
@@ -196,7 +196,7 @@ public final class MetaDataContextsFactory {
     
     @SuppressWarnings({"unchecked", "rawtypes"})
     private static void restoreRules(final MetaDataContexts metaDataContexts, 
final ComputeNodeInstanceContext computeNodeInstanceContext) {
-        if (!computeNodeInstanceContext.isCluster()) {
+        if (!computeNodeInstanceContext.getModeConfiguration().isCluster()) {
             return;
         }
         for (RuleConfigurationPersistDecorator each : 
ShardingSphereServiceLoader.getServiceInstances(RuleConfigurationPersistDecorator.class))
 {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/decorator/RuleConfigurationPersistDecorateEngine.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/decorator/RuleConfigurationPersistDecorateEngine.java
index 3249ed35291..af1a4dbade5 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/decorator/RuleConfigurationPersistDecorateEngine.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/decorator/RuleConfigurationPersistDecorateEngine.java
@@ -42,7 +42,7 @@ public final class RuleConfigurationPersistDecorateEngine {
      */
     @SuppressWarnings("unchecked")
     public Collection<RuleConfiguration> decorate(final 
Collection<RuleConfiguration> ruleConfigs) {
-        if (!computeNodeInstanceContext.isCluster()) {
+        if (!computeNodeInstanceContext.getModeConfiguration().isCluster()) {
             return ruleConfigs;
         }
         return ruleConfigs.stream()
@@ -57,7 +57,7 @@ public final class RuleConfigurationPersistDecorateEngine {
      */
     @SuppressWarnings("unchecked")
     public Collection<RuleConfiguration> restore(final 
Collection<RuleConfiguration> ruleConfigs) {
-        if (!computeNodeInstanceContext.isCluster()) {
+        if (!computeNodeInstanceContext.getModeConfiguration().isCluster()) {
             return ruleConfigs;
         }
         return ruleConfigs.stream()
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ListenerAssistedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ListenerAssistedSubscriber.java
index cf3a625d5ec..d9f2bb1e9a4 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ListenerAssistedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ListenerAssistedSubscriber.java
@@ -75,7 +75,8 @@ public final class ListenerAssistedSubscriber implements 
EventSubscriber {
     }
     
     private void refreshShardingSphereStatisticsData() {
-        if (contextManager.getComputeNodeInstanceContext().isCluster() && 
InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
+        if 
(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster()
+                && InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
             new ShardingSphereStatisticsRefreshEngine(contextManager,
                     new GlobalLockContext(new 
GlobalLockPersistService((ClusterPersistRepository) 
contextManager.getPersistServiceFacade().getRepository()))).asyncRefresh();
         }
diff --git 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ResourceMetaDataChangedSubscriber.java
 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ResourceMetaDataChangedSubscriber.java
index 0d68a2d71a7..7cd83c8da10 100644
--- 
a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ResourceMetaDataChangedSubscriber.java
+++ 
b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/event/subscriber/dispatch/ResourceMetaDataChangedSubscriber.java
@@ -127,7 +127,8 @@ public final class ResourceMetaDataChangedSubscriber 
implements EventSubscriber
     }
     
     private void refreshShardingSphereStatisticsData() {
-        if (contextManager.getComputeNodeInstanceContext().isCluster() && 
InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
+        if 
(contextManager.getComputeNodeInstanceContext().getModeConfiguration().isCluster()
+                && InstanceType.PROXY == 
contextManager.getComputeNodeInstanceContext().getInstance().getMetaData().getType())
 {
             new ShardingSphereStatisticsRefreshEngine(contextManager,
                     new GlobalLockContext(new 
GlobalLockPersistService((ClusterPersistRepository) 
contextManager.getPersistServiceFacade().getRepository()))).asyncRefresh();
         }

Reply via email to