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();
}