This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang 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 3418890930b Remove ScheduleContextFactory.get(final String instanceId)
optional (#19666)
3418890930b is described below
commit 3418890930bf3127611d3dc327336d343054ff45
Author: zhaojinchao <[email protected]>
AuthorDate: Fri Jul 29 11:45:14 2022 +0800
Remove ScheduleContextFactory.get(final String instanceId) optional (#19666)
* Remove ScheduleContextFactory.get(final String instanceId) optional
* Fix CI
* Fix unit test
---
.../dbdiscovery/rule/DatabaseDiscoveryRule.java | 30 ++++++++++------------
.../route/DatabaseDiscoverySQLRouterTest.java | 4 +++
...hmProvidedDatabaseDiscoveryRuleBuilderTest.java | 4 +++
.../builder/DatabaseDiscoveryRuleBuilderTest.java | 4 +++
.../type/DynamicDataSourceContainedRule.java | 4 +--
.../schedule/core/ScheduleContextFactory.java | 5 ++--
.../ClusterContextManagerCoordinator.java | 2 +-
.../ClusterContextManagerCoordinatorTest.java | 2 +-
8 files changed, 30 insertions(+), 25 deletions(-)
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
index c1490e48522..96c15c1aced 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/main/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRule.java
@@ -156,7 +156,7 @@ public final class DatabaseDiscoveryRule implements
DatabaseRule, DataSourceCont
}
@Override
- public void restartHeartBeatJob(final DataSourceStatusChangedEvent event,
final InstanceContext instanceContext) {
+ public void restartHeartBeatJob(final DataSourceStatusChangedEvent event) {
PrimaryDataSourceChangedEvent dataSourceEvent =
(PrimaryDataSourceChangedEvent) event;
QualifiedDatabase qualifiedDatabase =
dataSourceEvent.getQualifiedDatabase();
DatabaseDiscoveryDataSourceRule dataSourceRule =
dataSourceRules.get(qualifiedDatabase.getGroupName());
@@ -167,26 +167,22 @@ public final class DatabaseDiscoveryRule implements
DatabaseRule, DataSourceCont
@Override
public void closeHeartBeatJob() {
- Optional<ScheduleStrategy> scheduleStrategy =
ScheduleContextFactory.getInstance().get(instanceContext.getInstance().getCurrentInstanceId());
- if (scheduleStrategy.isPresent()) {
- for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
- DatabaseDiscoveryDataSourceRule rule = entry.getValue();
-
scheduleStrategy.get().closeSchedule(rule.getDatabaseDiscoveryProviderAlgorithm().getType()
+ "-" + databaseName + "-" + rule.getGroupName());
- }
+ ScheduleStrategy scheduleStrategy =
ScheduleContextFactory.getInstance().get(instanceContext.getInstance().getCurrentInstanceId());
+ for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
+ DatabaseDiscoveryDataSourceRule rule = entry.getValue();
+
scheduleStrategy.closeSchedule(rule.getDatabaseDiscoveryProviderAlgorithm().getType()
+ "-" + databaseName + "-" + rule.getGroupName());
}
}
private void initHeartBeatJobs(final String instanceId) {
- Optional<ScheduleStrategy> scheduleStrategy =
ScheduleContextFactory.getInstance().get(instanceId);
- if (scheduleStrategy.isPresent()) {
- for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
- DatabaseDiscoveryDataSourceRule rule = entry.getValue();
- String jobName =
rule.getDatabaseDiscoveryProviderAlgorithm().getType() + "-" + databaseName +
"-" + rule.getGroupName();
- CronJob job = new CronJob(jobName, each -> new
HeartbeatJob(databaseName, rule.getGroupName(),
rule.getPrimaryDataSourceName(), rule.getDataSourceGroup(dataSourceMap),
- rule.getDatabaseDiscoveryProviderAlgorithm(),
rule.getDisabledDataSourceNames(),
instanceContext.getEventBusContext()).execute(null),
-
rule.getHeartbeatProps().getProperty("keep-alive-cron"));
- scheduleStrategy.get().startSchedule(job);
- }
+ ScheduleStrategy scheduleStrategy =
ScheduleContextFactory.getInstance().get(instanceId);
+ for (Entry<String, DatabaseDiscoveryDataSourceRule> entry :
dataSourceRules.entrySet()) {
+ DatabaseDiscoveryDataSourceRule rule = entry.getValue();
+ String jobName =
rule.getDatabaseDiscoveryProviderAlgorithm().getType() + "-" + databaseName +
"-" + rule.getGroupName();
+ CronJob job = new CronJob(jobName, each -> new
HeartbeatJob(databaseName, rule.getGroupName(),
rule.getPrimaryDataSourceName(), rule.getDataSourceGroup(dataSourceMap),
+ rule.getDatabaseDiscoveryProviderAlgorithm(),
rule.getDisabledDataSourceNames(),
instanceContext.getEventBusContext()).execute(null),
+ rule.getHeartbeatProps().getProperty("keep-alive-cron"));
+ scheduleStrategy.startSchedule(job);
}
}
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
index e8504006c78..96d8d2754f5 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
@@ -24,6 +24,8 @@ import
org.apache.shardingsphere.dbdiscovery.rule.DatabaseDiscoveryRule;
import org.apache.shardingsphere.infra.binder.LogicSQL;
import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
+import
org.apache.shardingsphere.infra.config.mode.PersistRepositoryConfiguration;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
import org.apache.shardingsphere.infra.database.DefaultDatabase;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
@@ -35,6 +37,7 @@ import org.apache.shardingsphere.infra.route.SQLRouterFactory;
import org.apache.shardingsphere.infra.route.context.RouteContext;
import org.apache.shardingsphere.infra.route.context.RouteMapper;
import org.apache.shardingsphere.infra.route.context.RouteUnit;
+import org.apache.shardingsphere.schedule.core.ScheduleContextFactory;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Before;
@@ -71,6 +74,7 @@ public final class DatabaseDiscoverySQLRouterTest {
@Before
public void setUp() {
+ ScheduleContextFactory.getInstance().init("foo_id", new
ModeConfiguration("Cluster", mock(PersistRepositoryConfiguration.class),
false));
DatabaseDiscoveryDataSourceRuleConfiguration dataSourceConfig = new
DatabaseDiscoveryDataSourceRuleConfiguration(
DATA_SOURCE_NAME,
Collections.singletonList(PRIMARY_DATA_SOURCE), "", "CORE.FIXTURE");
ShardingSphereAlgorithmConfiguration algorithmConfig = new
ShardingSphereAlgorithmConfiguration("CORE.FIXTURE", new Properties());
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
index 61e22e4fd6c..ffbe725612e 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
@@ -22,9 +22,12 @@ import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDa
import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
import
org.apache.shardingsphere.dbdiscovery.fixture.CoreDatabaseDiscoveryProviderAlgorithmFixture;
import org.apache.shardingsphere.dbdiscovery.rule.DatabaseDiscoveryRule;
+import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
+import
org.apache.shardingsphere.infra.config.mode.PersistRepositoryConfiguration;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.rule.builder.database.DatabaseRuleBuilder;
import
org.apache.shardingsphere.infra.rule.builder.database.DatabaseRuleBuilderFactory;
+import org.apache.shardingsphere.schedule.core.ScheduleContextFactory;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Test;
@@ -42,6 +45,7 @@ public final class
AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest {
@SuppressWarnings({"rawtypes", "unchecked"})
@Test
public void assertBuild() {
+ ScheduleContextFactory.getInstance().init("foo_id", new
ModeConfiguration("Cluster", mock(PersistRepositoryConfiguration.class),
false));
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration
algorithmProvidedRuleConfig = new
AlgorithmProvidedDatabaseDiscoveryRuleConfiguration(
Collections.singletonList(new
DatabaseDiscoveryDataSourceRuleConfiguration("name",
Collections.singletonList("name"), "", "discoveryTypeName")),
Collections.singletonMap("ha_heartbeat", new
DatabaseDiscoveryHeartBeatConfiguration(new Properties())),
diff --git
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
index 106314becc5..c76ab569fff 100644
---
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
+++
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
@@ -22,9 +22,12 @@ import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDa
import
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
import org.apache.shardingsphere.dbdiscovery.rule.DatabaseDiscoveryRule;
import
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
+import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
+import
org.apache.shardingsphere.infra.config.mode.PersistRepositoryConfiguration;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import
org.apache.shardingsphere.infra.rule.builder.database.DatabaseRuleBuilder;
import
org.apache.shardingsphere.infra.rule.builder.database.DatabaseRuleBuilderFactory;
+import org.apache.shardingsphere.schedule.core.ScheduleContextFactory;
import org.apache.shardingsphere.test.mock.MockedDataSource;
import org.junit.Test;
@@ -42,6 +45,7 @@ public final class DatabaseDiscoveryRuleBuilderTest {
@SuppressWarnings({"rawtypes", "unchecked"})
@Test
public void assertBuild() {
+ ScheduleContextFactory.getInstance().init("foo_id", new
ModeConfiguration("Cluster", mock(PersistRepositoryConfiguration.class),
false));
DatabaseDiscoveryRuleConfiguration config = new
DatabaseDiscoveryRuleConfiguration(
Collections.singleton(new
DatabaseDiscoveryDataSourceRuleConfiguration("name",
Collections.singletonList("name"), "", "CORE.FIXTURE")),
Collections.singletonMap("ha_heartbeat", new
DatabaseDiscoveryHeartBeatConfiguration(new Properties())),
diff --git
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/DynamicDataSourceContainedRule.java
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/DynamicDataSourceContainedRule.java
index 497c0411680..c30efdc001f 100644
---
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/DynamicDataSourceContainedRule.java
+++
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/rule/identifier/type/DynamicDataSourceContainedRule.java
@@ -17,7 +17,6 @@
package org.apache.shardingsphere.infra.rule.identifier.type;
-import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.event.DataSourceStatusChangedEvent;
@@ -55,9 +54,8 @@ public interface DynamicDataSourceContainedRule extends
ShardingSphereRule {
* Restart heart beat job.
*
* @param event data source status changed event
- * @param instanceContext instance context
*/
- void restartHeartBeatJob(DataSourceStatusChangedEvent event,
InstanceContext instanceContext);
+ void restartHeartBeatJob(DataSourceStatusChangedEvent event);
/**
* Close heart beat.
diff --git
a/shardingsphere-kernel/shardingsphere-schedule/shardingsphere-schedule-core/src/main/java/org/apache/shardingsphere/schedule/core/ScheduleContextFactory.java
b/shardingsphere-kernel/shardingsphere-schedule/shardingsphere-schedule-core/src/main/java/org/apache/shardingsphere/schedule/core/ScheduleContextFactory.java
index 18742bf9252..1855f19cfb6 100644
---
a/shardingsphere-kernel/shardingsphere-schedule/shardingsphere-schedule-core/src/main/java/org/apache/shardingsphere/schedule/core/ScheduleContextFactory.java
+++
b/shardingsphere-kernel/shardingsphere-schedule/shardingsphere-schedule-core/src/main/java/org/apache/shardingsphere/schedule/core/ScheduleContextFactory.java
@@ -26,7 +26,6 @@ import
org.apache.shardingsphere.schedule.core.strategy.type.ClusterScheduleStra
import
org.apache.shardingsphere.schedule.core.strategy.type.StandaloneScheduleStrategy;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
/**
@@ -67,7 +66,7 @@ public final class ScheduleContextFactory {
* @param instanceId instance id
* @return get schedule strategy
*/
- public Optional<ScheduleStrategy> get(final String instanceId) {
- return Optional.ofNullable(scheduleStrategy.get(instanceId));
+ public ScheduleStrategy get(final String instanceId) {
+ return scheduleStrategy.get(instanceId);
}
}
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
index 855acc8c144..4093104cce8 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinator.java
@@ -200,7 +200,7 @@ public final class ClusterContextManagerCoordinator {
.stream()
.filter(each -> each instanceof DynamicDataSourceContainedRule)
.forEach(each -> ((DynamicDataSourceContainedRule) each)
- .restartHeartBeatJob(new
PrimaryDataSourceChangedEvent(qualifiedDatabase),
contextManager.getInstanceContext()));
+ .restartHeartBeatJob(new
PrimaryDataSourceChangedEvent(qualifiedDatabase)));
}
/**
diff --git
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
index 7774ac27242..4b554c731c2 100644
---
a/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
+++
b/shardingsphere-mode/shardingsphere-mode-type/shardingsphere-cluster-mode/shardingsphere-cluster-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterContextManagerCoordinatorTest.java
@@ -284,7 +284,7 @@ public final class ClusterContextManagerCoordinatorTest {
contextManager.getMetaDataContexts().getMetaData().getDatabases().put("db",
database);
PrimaryStateChangedEvent mockPrimaryStateChangedEvent = new
PrimaryStateChangedEvent(new QualifiedDatabase("db.readwrite_ds.test_ds"));
coordinator.renew(mockPrimaryStateChangedEvent);
- verify(dynamicDataSourceRule).restartHeartBeatJob(any(), any());
+ verify(dynamicDataSourceRule).restartHeartBeatJob(any());
}
@Test