You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2023/01/24 10:35:25 UTC
[shardingsphere] branch master updated: Remove useless invoke for RequiredSPIRegistry (#23713)
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 f7021ec45d2 Remove useless invoke for RequiredSPIRegistry (#23713)
f7021ec45d2 is described below
commit f7021ec45d20251cdd398883fec47de64dff239c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Tue Jan 24 18:35:04 2023 +0800
Remove useless invoke for RequiredSPIRegistry (#23713)
* Refactor ReadwriteSplittingRuleStatementChecker
* Add default type logic in TypedSPIRegistry
* Add default type logic in TypedSPIRegistry
* Remove useless invoke for RequiredSPIRegistry
---
.../infra/datasource/pool/destroyer/DataSourcePoolDestroyer.java | 4 +---
.../impl/driver/jdbc/type/memory/JDBCMemoryQueryResult.java | 5 ++---
.../driver/jdbc/core/datasource/ShardingSphereDataSource.java | 6 +-----
.../algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java | 4 +---
.../algorithm/DataMatchDataConsistencyCalculateAlgorithm.java | 7 ++-----
.../core/check/datasource/AbstractDataSourceChecker.java | 4 +---
.../data/pipeline/core/importer/DataSourceImporter.java | 4 +---
.../data/pipeline/core/ingest/dumper/InventoryDumper.java | 7 ++-----
.../yaml/YamlJobItemIncrementalTasksProgressSwapper.java | 4 +---
.../data/pipeline/core/prepare/InventoryTaskSplitter.java | 7 ++-----
.../data/pipeline/core/prepare/PipelineJobPreparerUtils.java | 7 ++-----
.../core/prepare/datasource/AbstractDataSourcePreparer.java | 4 +---
.../pipeline/scenario/migration/api/impl/MigrationJobAPI.java | 3 +--
.../shardingsphere/sqlfederation/rule/SQLFederationRule.java | 7 ++-----
.../optimizer/context/parser/OptimizerParserContextFactory.java | 5 +----
.../shardingsphere/sqltranslator/rule/SQLTranslatorRule.java | 3 +--
.../transaction/xa/XAShardingSphereTransactionManager.java | 5 +----
.../transaction/xa/jta/datasource/swapper/DataSourceSwapper.java | 4 +---
.../mode/manager/standalone/StandaloneContextManagerBuilder.java | 7 +++----
.../mode/repository/standalone/jdbc/JDBCRepository.java | 4 +---
.../backend/response/header/query/QueryHeaderBuilderEngine.java | 9 ++-------
.../communication/jdbc/DatabaseCommunicationEngineTest.java | 6 ++++--
.../shardingsphere/proxy/initializer/BootstrapInitializer.java | 6 +-----
.../test/it/optimize/SQLNodeConverterEngineIT.java | 5 +----
24 files changed, 36 insertions(+), 91 deletions(-)
diff --git a/infra/common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/DataSourcePoolDestroyer.java b/infra/common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/DataSourcePoolDestroyer.java
index 217e2b8a24e..660224893ae 100644
--- a/infra/common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/DataSourcePoolDestroyer.java
+++ b/infra/common/src/main/java/org/apache/shardingsphere/infra/datasource/pool/destroyer/DataSourcePoolDestroyer.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.infra.datasource.pool.destroyer;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.datasource.pool.destroyer.detector.DataSourcePoolActiveDetector;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -54,8 +53,7 @@ public final class DataSourcePoolDestroyer {
}
private void waitUntilActiveConnectionComplete() {
- DataSourcePoolActiveDetector dataSourcePoolActiveDetector = TypedSPIRegistry.findService(DataSourcePoolActiveDetector.class, dataSource.getClass().getName())
- .orElseGet(() -> RequiredSPIRegistry.getService(DataSourcePoolActiveDetector.class));
+ DataSourcePoolActiveDetector dataSourcePoolActiveDetector = TypedSPIRegistry.getService(DataSourcePoolActiveDetector.class, dataSource.getClass().getName());
while (dataSourcePoolActiveDetector.containsActiveConnection(dataSource)) {
try {
Thread.sleep(10L);
diff --git a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/memory/JDBCMemoryQueryResult.java b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/memory/JDBCMemoryQueryResult.java
index a7b4e4fa2cf..fc048147adf 100644
--- a/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/memory/JDBCMemoryQueryResult.java
+++ b/infra/executor/src/main/java/org/apache/shardingsphere/infra/executor/sql/execute/result/query/impl/driver/jdbc/type/memory/JDBCMemoryQueryResult.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.metadata.JDBCQueryResultMetaData;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.impl.driver.jdbc.type.memory.loader.DialectQueryResultDataRowLoader;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.type.memory.AbstractMemoryQueryResult;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import java.sql.ResultSet;
@@ -33,7 +32,7 @@ import java.sql.SQLException;
public final class JDBCMemoryQueryResult extends AbstractMemoryQueryResult {
public JDBCMemoryQueryResult(final ResultSet resultSet, final DatabaseType databaseType) throws SQLException {
- super(new JDBCQueryResultMetaData(resultSet.getMetaData()), TypedSPIRegistry.findService(DialectQueryResultDataRowLoader.class, databaseType.getType())
- .orElseGet(() -> RequiredSPIRegistry.getService(DialectQueryResultDataRowLoader.class)).load(resultSet.getMetaData().getColumnCount(), resultSet));
+ super(new JDBCQueryResultMetaData(resultSet.getMetaData()),
+ TypedSPIRegistry.getService(DialectQueryResultDataRowLoader.class, databaseType.getType()).load(resultSet.getMetaData().getColumnCount(), resultSet));
}
}
diff --git a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
index 5855697b17a..d1e0b78073f 100644
--- a/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
+++ b/jdbc/core/src/main/java/org/apache/shardingsphere/driver/jdbc/core/datasource/ShardingSphereDataSource.java
@@ -26,7 +26,6 @@ import org.apache.shardingsphere.infra.config.rule.RuleConfiguration;
import org.apache.shardingsphere.infra.config.rule.scope.GlobalRuleConfiguration;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaDataBuilder;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.manager.ContextManagerBuilder;
@@ -75,10 +74,7 @@ public final class ShardingSphereDataSource extends AbstractDataSourceAdapter im
databaseRuleConfigs.removeAll(globalRuleConfigs);
ContextManagerBuilderParameter param = new ContextManagerBuilderParameter(modeConfig, Collections.singletonMap(databaseName,
new DataSourceProvidedDatabaseConfiguration(dataSourceMap, databaseRuleConfigs)), globalRuleConfigs, props, Collections.emptyList(), instanceMetaData, false);
- ContextManagerBuilder contextManagerBuilder = null == modeConfig
- ? RequiredSPIRegistry.getService(ContextManagerBuilder.class)
- : TypedSPIRegistry.getService(ContextManagerBuilder.class, modeConfig.getType());
- return contextManagerBuilder.build(param);
+ return TypedSPIRegistry.getService(ContextManagerBuilder.class, null == modeConfig ? null : modeConfig.getType()).build(param);
}
@Override
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
index 91f94c3b18a..36860e88bfe 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/CRC32MatchDataConsistencyCalculateAlgorithm.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder
import org.apache.shardingsphere.infra.algorithm.AlgorithmDescription;
import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import java.sql.Connection;
@@ -61,8 +60,7 @@ public final class CRC32MatchDataConsistencyCalculateAlgorithm extends AbstractD
@Override
public Iterable<DataConsistencyCalculatedResult> calculate(final DataConsistencyCalculateParameter param) {
- PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, param.getDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
+ PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType(), null);
List<CalculatedItem> calculatedItems = param.getColumnNames().stream().map(each -> calculateCRC32(sqlBuilder, param, each)).collect(Collectors.toList());
return Collections.singletonList(new CalculatedResult(calculatedItems.get(0).getRecordsCount(), calculatedItems.stream().map(CalculatedItem::getCrc32).collect(Collectors.toList())));
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index cbfa995cbeb..8949ddc70ac 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -33,7 +33,6 @@ import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder
import org.apache.shardingsphere.infra.algorithm.AlgorithmDescription;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import java.math.BigDecimal;
@@ -114,8 +113,7 @@ public final class DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
Collection<Collection<Object>> records = new LinkedList<>();
Object maxUniqueKeyValue = null;
try (ResultSet resultSet = preparedStatement.executeQuery()) {
- ColumnValueReader columnValueReader = TypedSPIRegistry.findService(ColumnValueReader.class, param.getDatabaseType())
- .orElseGet(() -> RequiredSPIRegistry.getService(ColumnValueReader.class));
+ ColumnValueReader columnValueReader = TypedSPIRegistry.getService(ColumnValueReader.class, param.getDatabaseType());
while (resultSet.next()) {
if (isCanceling()) {
throw new PipelineTableDataConsistencyCheckLoadingFailedException(param.getSchemaName(), param.getLogicTableName());
@@ -137,8 +135,7 @@ public final class DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
}
private String getQuerySQL(final DataConsistencyCalculateParameter param) {
- PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, param.getDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
+ PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, param.getDatabaseType(), null);
String logicTableName = param.getLogicTableName();
String schemaName = param.getSchemaName();
String uniqueKey = param.getUniqueKey().getName();
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
index 18592d0f6e3..d8ddadae9dd 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/datasource/AbstractDataSourceChecker.java
@@ -23,7 +23,6 @@ import org.apache.shardingsphere.data.pipeline.core.exception.job.PrepareJobWith
import org.apache.shardingsphere.data.pipeline.core.exception.job.PrepareJobWithTargetTableNotEmptyException;
import org.apache.shardingsphere.data.pipeline.spi.check.datasource.DataSourceChecker;
import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -66,8 +65,7 @@ public abstract class AbstractDataSourceChecker implements DataSourceChecker {
}
private boolean checkEmpty(final DataSource dataSource, final String schemaName, final String tableName) throws SQLException {
- String sql = TypedSPIRegistry.findService(PipelineSQLBuilder.class, getDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class)).buildCheckEmptySQL(schemaName, tableName);
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class, getDatabaseType(), null).buildCheckEmptySQL(schemaName, tableName);
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql);
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
index 50af7aa0d78..234981f576a 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/importer/DataSourceImporter.java
@@ -42,7 +42,6 @@ import org.apache.shardingsphere.data.pipeline.spi.importer.connector.ImporterCo
import org.apache.shardingsphere.data.pipeline.spi.ratelimit.JobRateLimitAlgorithm;
import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -87,8 +86,7 @@ public final class DataSourceImporter extends AbstractLifecycleExecutor implemen
rateLimitAlgorithm = importerConfig.getRateLimitAlgorithm();
this.dataSourceManager = (PipelineDataSourceManager) importerConnector.getConnector();
this.channel = channel;
- pipelineSqlBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, importerConfig.getDataSourceConfig().getDatabaseType().getType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
+ pipelineSqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, importerConfig.getDataSourceConfig().getDatabaseType().getType(), null);
this.jobProgressListener = jobProgressListener;
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
index 16ea76833c3..8f9bcab169b 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/ingest/dumper/InventoryDumper.java
@@ -45,7 +45,6 @@ import org.apache.shardingsphere.data.pipeline.spi.ingest.dumper.ColumnValueRead
import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
import org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -84,10 +83,8 @@ public final class InventoryDumper extends AbstractLifecycleExecutor implements
this.dumperConfig = dumperConfig;
this.channel = channel;
this.dataSource = dataSource;
- sqlBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, dumperConfig.getDataSourceConfig().getDatabaseType().getType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
- columnValueReader = TypedSPIRegistry.findService(ColumnValueReader.class, dumperConfig.getDataSourceConfig().getDatabaseType().getType())
- .orElseGet(() -> RequiredSPIRegistry.getService(ColumnValueReader.class));
+ sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, dumperConfig.getDataSourceConfig().getDatabaseType().getType(), null);
+ columnValueReader = TypedSPIRegistry.getService(ColumnValueReader.class, dumperConfig.getDataSourceConfig().getDatabaseType().getType());
this.metaDataLoader = metaDataLoader;
}
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/progress/yaml/YamlJobItemIncrementalTasksProgressSwapper.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/progress/yaml/YamlJobItemIncrementalTasksProgressSwapper.java
index 21440aec293..05aa801f996 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/progress/yaml/YamlJobItemIncrementalTasksProgressSwapper.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/progress/yaml/YamlJobItemIncrementalTasksProgressSwapper.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.data.pipeline.core.job.progress.yaml;
import org.apache.shardingsphere.data.pipeline.api.job.progress.JobItemIncrementalTasksProgress;
import org.apache.shardingsphere.data.pipeline.api.task.progress.IncrementalTaskProgress;
import org.apache.shardingsphere.data.pipeline.spi.ingest.position.PositionInitializer;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
/**
@@ -61,8 +60,7 @@ public final class YamlJobItemIncrementalTasksProgressSwapper {
}
IncrementalTaskProgress taskProgress = new IncrementalTaskProgress();
// TODO databaseType
- PositionInitializer positionInitializer = TypedSPIRegistry.findService(
- PositionInitializer.class, databaseType).orElseGet(() -> RequiredSPIRegistry.getService(PositionInitializer.class));
+ PositionInitializer positionInitializer = TypedSPIRegistry.getService(PositionInitializer.class, databaseType);
taskProgress.setPosition(positionInitializer.init(yamlProgress.getPosition()));
taskProgress.setIncrementalTaskDelay(yamlProgress.getDelay());
return new JobItemIncrementalTasksProgress(taskProgress);
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
index 660020cd6c6..aa2c502722f 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/InventoryTaskSplitter.java
@@ -42,7 +42,6 @@ import org.apache.shardingsphere.data.pipeline.core.util.PipelineJdbcUtils;
import org.apache.shardingsphere.data.pipeline.spi.ingest.channel.PipelineChannelCreator;
import org.apache.shardingsphere.data.pipeline.spi.ratelimit.JobRateLimitAlgorithm;
import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -160,8 +159,7 @@ public final class InventoryTaskSplitter {
final InventoryDumperConfiguration dumperConfig) {
Collection<IngestPosition<?>> result = new LinkedList<>();
PipelineJobConfiguration jobConfig = jobItemContext.getJobConfig();
- String sql = TypedSPIRegistry.findService(PipelineSQLBuilder.class, jobConfig.getSourceDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class))
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class, jobConfig.getSourceDatabaseType(), null)
.buildSplitByPrimaryKeyRangeSQL(dumperConfig.getSchemaName(new LogicTableName(dumperConfig.getLogicTableName())), dumperConfig.getActualTableName(), dumperConfig.getUniqueKey());
int shardingSize = jobItemContext.getJobProcessContext().getPipelineProcessConfig().getRead().getShardingSize();
try (
@@ -202,8 +200,7 @@ public final class InventoryTaskSplitter {
PipelineJobConfiguration jobConfig = jobItemContext.getJobConfig();
String schemaName = dumperConfig.getSchemaName(new LogicTableName(dumperConfig.getLogicTableName()));
String actualTableName = dumperConfig.getActualTableName();
- String sql = TypedSPIRegistry.findService(PipelineSQLBuilder.class, jobConfig.getSourceDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class)).buildCountSQL(schemaName, actualTableName);
+ String sql = TypedSPIRegistry.getService(PipelineSQLBuilder.class, jobConfig.getSourceDatabaseType(), null).buildCountSQL(schemaName, actualTableName);
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
index 528cc28451c..669c31659ef 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/PipelineJobPreparerUtils.java
@@ -41,7 +41,6 @@ import org.apache.shardingsphere.infra.datasource.props.DataSourceProperties;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.infra.yaml.config.swapper.resource.YamlDataSourceConfigurationSwapper;
import org.apache.shardingsphere.parser.rule.SQLParserRule;
@@ -132,8 +131,7 @@ public final class PipelineJobPreparerUtils {
}
String databaseType = dumperConfig.getDataSourceConfig().getDatabaseType().getType();
DataSource dataSource = dataSourceManager.getDataSource(dumperConfig.getDataSourceConfig());
- return TypedSPIRegistry.findService(PositionInitializer.class, databaseType)
- .orElseGet(() -> RequiredSPIRegistry.getService(PositionInitializer.class)).init(dataSource, dumperConfig.getJobId());
+ return TypedSPIRegistry.getService(PositionInitializer.class, databaseType).init(dataSource, dumperConfig.getJobId());
}
/**
@@ -178,8 +176,7 @@ public final class PipelineJobPreparerUtils {
*/
public static void destroyPosition(final String jobId, final PipelineDataSourceConfiguration pipelineDataSourceConfig) throws SQLException {
DatabaseType databaseType = pipelineDataSourceConfig.getDatabaseType();
- PositionInitializer positionInitializer = TypedSPIRegistry.findService(PositionInitializer.class, databaseType.getType())
- .orElseGet(() -> RequiredSPIRegistry.getService(PositionInitializer.class));
+ PositionInitializer positionInitializer = TypedSPIRegistry.getService(PositionInitializer.class, databaseType.getType());
final long startTimeMillis = System.currentTimeMillis();
log.info("Cleanup database type:{}, data source type:{}", databaseType.getType(), pipelineDataSourceConfig.getType());
if (pipelineDataSourceConfig instanceof ShardingSpherePipelineDataSourceConfiguration) {
diff --git a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
index 29a6076a267..5cd0044e2cc 100644
--- a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
+++ b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/prepare/datasource/AbstractDataSourcePreparer.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.data.pipeline.spi.sqlbuilder.PipelineSQLBuilder
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.parser.ShardingSphereSQLParserEngine;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import javax.sql.DataSource;
@@ -61,8 +60,7 @@ public abstract class AbstractDataSourcePreparer implements DataSourcePreparer {
}
CreateTableConfiguration createTableConfig = param.getCreateTableConfig();
String defaultSchema = DatabaseTypeEngine.getDefaultSchemaName(targetDatabaseType).orElse(null);
- PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, targetDatabaseType.getType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
+ PipelineSQLBuilder sqlBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, targetDatabaseType.getType(), null);
Collection<String> createdSchemaNames = new HashSet<>();
for (CreateTableEntry each : createTableConfig.getCreateTableEntries()) {
String targetSchemaName = each.getTargetName().getSchemaName().getOriginal();
diff --git a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
index a442048e666..3a49262abba 100644
--- a/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
+++ b/kernel/data-pipeline/scenario/migration/src/main/java/org/apache/shardingsphere/data/pipeline/scenario/migration/api/impl/MigrationJobAPI.java
@@ -312,8 +312,7 @@ public final class MigrationJobAPI extends AbstractInventoryIncrementalJobAPIImp
String targetTableName = jobConfig.getTargetTableName();
// TODO use jobConfig.targetSchemaName
String targetSchemaName = jobConfig.getSourceSchemaName();
- PipelineSQLBuilder pipelineSQLBuilder = TypedSPIRegistry.findService(PipelineSQLBuilder.class, jobConfig.getTargetDatabaseType(), null)
- .orElseGet(() -> RequiredSPIRegistry.getService(PipelineSQLBuilder.class));
+ PipelineSQLBuilder pipelineSQLBuilder = TypedSPIRegistry.getService(PipelineSQLBuilder.class, jobConfig.getTargetDatabaseType(), null);
try (
PipelineDataSourceWrapper dataSource = PipelineDataSourceFactory.newInstance(jobConfig.getTarget());
Connection connection = dataSource.getConnection()) {
diff --git a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
index 3cfcce8eeb1..f1552bda757 100644
--- a/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
+++ b/kernel/sql-federation/core/src/main/java/org/apache/shardingsphere/sqlfederation/rule/SQLFederationRule.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.data.ShardingSphereData;
import org.apache.shardingsphere.infra.rule.identifier.scope.GlobalRule;
import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.sqlfederation.api.config.SQLFederationRuleConfiguration;
import org.apache.shardingsphere.sqlfederation.enums.SQLFederationTypeEnum;
@@ -43,8 +42,7 @@ public final class SQLFederationRule implements GlobalRule {
public SQLFederationRule(final SQLFederationRuleConfiguration ruleConfig) {
configuration = ruleConfig;
- sqlFederationExecutor = TypedSPIRegistry.findService(SQLFederationExecutor.class, configuration.getSqlFederationType())
- .orElse(RequiredSPIRegistry.getService(SQLFederationExecutor.class));
+ sqlFederationExecutor = TypedSPIRegistry.getService(SQLFederationExecutor.class, configuration.getSqlFederationType());
}
/**
@@ -64,8 +62,7 @@ public final class SQLFederationRule implements GlobalRule {
Preconditions.checkArgument(SQLFederationTypeEnum.isValidSQLFederationType(sqlFederationType), "%s is not a valid sqlFederationType.", sqlFederationType);
if (!configuration.getSqlFederationType().equals(sqlFederationType)) {
configuration.setSqlFederationType(sqlFederationType);
- sqlFederationExecutor = TypedSPIRegistry.findService(SQLFederationExecutor.class, configuration.getSqlFederationType())
- .orElse(RequiredSPIRegistry.getService(SQLFederationExecutor.class));
+ sqlFederationExecutor = TypedSPIRegistry.getService(SQLFederationExecutor.class, configuration.getSqlFederationType());
}
sqlFederationExecutor.init(databaseName, schemaName, metaData, shardingSphereData, jdbcExecutor, eventBusContext);
return sqlFederationExecutor;
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
index 94ddc5dde8b..03744d9b7ca 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/context/parser/OptimizerParserContextFactory.java
@@ -23,7 +23,6 @@ import org.apache.calcite.config.CalciteConnectionProperty;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.database.type.DatabaseTypeEngine;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.sqlfederation.optimizer.context.parser.dialect.OptimizerSQLDialectBuilder;
@@ -67,9 +66,7 @@ public final class OptimizerParserContextFactory {
private static Properties createSQLDialectProperties(final DatabaseType databaseType) {
Properties result = new Properties();
result.setProperty(CalciteConnectionProperty.TIME_ZONE.camelName(), "UTC");
- result.putAll((null == databaseType
- ? RequiredSPIRegistry.getService(OptimizerSQLDialectBuilder.class)
- : TypedSPIRegistry.getService(OptimizerSQLDialectBuilder.class, databaseType.getType())).build());
+ result.putAll(TypedSPIRegistry.getService(OptimizerSQLDialectBuilder.class, null == databaseType ? null : databaseType.getType()).build());
return result;
}
}
diff --git a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRule.java b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRule.java
index 7f315dc5c77..6fa77b35194 100644
--- a/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRule.java
+++ b/kernel/sql-translator/core/src/main/java/org/apache/shardingsphere/sqltranslator/rule/SQLTranslatorRule.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.sqltranslator.rule;
import lombok.Getter;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.rule.identifier.scope.GlobalRule;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
import org.apache.shardingsphere.sqltranslator.api.config.SQLTranslatorRuleConfiguration;
@@ -41,7 +40,7 @@ public final class SQLTranslatorRule implements GlobalRule {
public SQLTranslatorRule(final SQLTranslatorRuleConfiguration ruleConfig) {
configuration = ruleConfig;
- translator = TypedSPIRegistry.findService(SQLTranslator.class, ruleConfig.getType()).orElse(RequiredSPIRegistry.getService(SQLTranslator.class));
+ translator = TypedSPIRegistry.getService(SQLTranslator.class, ruleConfig.getType());
useOriginalSQLWhenTranslatingFailed = ruleConfig.isUseOriginalSQLWhenTranslatingFailed();
}
diff --git a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
index 1939a931f4d..1562fd2ed58 100644
--- a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
+++ b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/XAShardingSphereTransactionManager.java
@@ -20,7 +20,6 @@ package org.apache.shardingsphere.transaction.xa;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.transaction.api.TransactionType;
import org.apache.shardingsphere.transaction.core.ResourceDataSource;
@@ -56,9 +55,7 @@ public final class XAShardingSphereTransactionManager implements ShardingSphereT
@Override
public void init(final Map<String, DatabaseType> databaseTypes, final Map<String, DataSource> dataSources, final String providerType) {
- xaTransactionManagerProvider = null == providerType
- ? RequiredSPIRegistry.getService(XATransactionManagerProvider.class)
- : TypedSPIRegistry.getService(XATransactionManagerProvider.class, providerType, new Properties());
+ xaTransactionManagerProvider = TypedSPIRegistry.getService(XATransactionManagerProvider.class, providerType, new Properties());
xaTransactionManagerProvider.init();
Map<String, ResourceDataSource> resourceDataSources = getResourceDataSources(dataSources);
resourceDataSources.forEach((key, value) -> cachedDataSources.put(value.getOriginalName(), newXATransactionDataSource(databaseTypes.get(key), value)));
diff --git a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
index 224421e03e7..8174e84a5cf 100644
--- a/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
+++ b/kernel/transaction/type/xa/core/src/main/java/org/apache/shardingsphere/transaction/xa/jta/datasource/swapper/DataSourceSwapper.java
@@ -21,7 +21,6 @@ import com.google.common.base.CaseFormat;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.transaction.xa.jta.datasource.properties.XADataSourceDefinition;
import org.apache.shardingsphere.transaction.xa.jta.exception.XADataSourceInitializeException;
@@ -87,8 +86,7 @@ public final class DataSourceSwapper {
private Map<String, Object> getDatabaseAccessConfiguration(final DataSource dataSource) {
Map<String, Object> result = new HashMap<>(3, 1);
- DataSourcePropertyProvider provider = TypedSPIRegistry.findService(DataSourcePropertyProvider.class, dataSource.getClass().getName())
- .orElseGet(() -> RequiredSPIRegistry.getService(DataSourcePropertyProvider.class));
+ DataSourcePropertyProvider provider = TypedSPIRegistry.getService(DataSourcePropertyProvider.class, dataSource.getClass().getName());
try {
result.put("url", findGetterMethod(dataSource, provider.getURLPropertyName()).invoke(dataSource));
result.put("user", findGetterMethod(dataSource, provider.getUsernamePropertyName()).invoke(dataSource));
diff --git a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
index 1b0b5ca4fd1..5bc6e2ac4c7 100644
--- a/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
+++ b/mode/type/standalone/core/src/main/java/org/apache/shardingsphere/mode/manager/standalone/StandaloneContextManagerBuilder.java
@@ -21,7 +21,6 @@ import org.apache.shardingsphere.infra.config.mode.PersistRepositoryConfiguratio
import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.util.eventbus.EventBusContext;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.mode.lock.GlobalLockContext;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -35,6 +34,7 @@ import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepository;
import java.sql.SQLException;
+import java.util.Properties;
/**
* Standalone context manager builder.
@@ -44,9 +44,8 @@ public final class StandaloneContextManagerBuilder implements ContextManagerBuil
@Override
public ContextManager build(final ContextManagerBuilderParameter param) throws SQLException {
PersistRepositoryConfiguration repositoryConfig = param.getModeConfiguration().getRepository();
- StandalonePersistRepository repository = null == repositoryConfig
- ? RequiredSPIRegistry.getService(StandalonePersistRepository.class)
- : TypedSPIRegistry.getService(StandalonePersistRepository.class, repositoryConfig.getType(), repositoryConfig.getProps());
+ StandalonePersistRepository repository = TypedSPIRegistry.getService(
+ StandalonePersistRepository.class, null == repositoryConfig ? null : repositoryConfig.getType(), null == repositoryConfig ? new Properties() : repositoryConfig.getProps());
MetaDataPersistService persistService = new MetaDataPersistService(repository);
persistConfigurations(persistService, param);
InstanceContext instanceContext = buildInstanceContext(param);
diff --git a/mode/type/standalone/repository/provider/jdbc/core/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/JDBCRepository.java b/mode/type/standalone/repository/provider/jdbc/core/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/JDBCRepository.java
index d20818d7531..835b010de8f 100644
--- a/mode/type/standalone/repository/provider/jdbc/core/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/JDBCRepository.java
+++ b/mode/type/standalone/repository/provider/jdbc/core/src/main/java/org/apache/shardingsphere/mode/repository/standalone/jdbc/JDBCRepository.java
@@ -21,7 +21,6 @@ import com.google.common.base.Strings;
import com.zaxxer.hikari.HikariDataSource;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepository;
import org.apache.shardingsphere.mode.repository.standalone.jdbc.props.JDBCRepositoryProperties;
@@ -67,8 +66,7 @@ public final class JDBCRepository implements StandalonePersistRepository {
try (
Connection connection = hikariDataSource.getConnection();
Statement statement = connection.createStatement()) {
- String type = jdbcRepositoryProps.getValue(JDBCRepositoryPropertyKey.PROVIDER);
- provider = null == type ? RequiredSPIRegistry.getService(JDBCRepositoryProvider.class) : TypedSPIRegistry.getService(JDBCRepositoryProvider.class, type);
+ provider = TypedSPIRegistry.getService(JDBCRepositoryProvider.class, jdbcRepositoryProps.getValue(JDBCRepositoryPropertyKey.PROVIDER));
if (!jdbcUrl.contains(H2_FILE_MODE_KEY)) {
statement.execute(provider.dropTableSQL());
}
diff --git a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
index 2eb1505ca17..20c33a7d58d 100644
--- a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
+++ b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/response/header/query/QueryHeaderBuilderEngine.java
@@ -25,7 +25,6 @@ import org.apache.shardingsphere.infra.binder.segment.select.projection.impl.Col
import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryResultMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import java.sql.SQLException;
@@ -50,9 +49,7 @@ public final class QueryHeaderBuilderEngine {
public QueryHeader build(final QueryResultMetaData queryResultMetaData, final ShardingSphereDatabase database, final int columnIndex) throws SQLException {
String columnName = queryResultMetaData.getColumnName(columnIndex);
String columnLabel = queryResultMetaData.getColumnLabel(columnIndex);
- QueryHeaderBuilder queryHeaderBuilder = TypedSPIRegistry.findService(QueryHeaderBuilder.class, databaseType.getType())
- .orElseGet(() -> RequiredSPIRegistry.getService(QueryHeaderBuilder.class));
- return queryHeaderBuilder.build(queryResultMetaData, database, columnName, columnLabel, columnIndex);
+ return TypedSPIRegistry.getService(QueryHeaderBuilder.class, databaseType.getType()).build(queryResultMetaData, database, columnName, columnLabel, columnIndex);
}
/**
@@ -69,9 +66,7 @@ public final class QueryHeaderBuilderEngine {
final QueryResultMetaData queryResultMetaData, final ShardingSphereDatabase database, final int columnIndex) throws SQLException {
String columnName = getColumnName(projectionsContext, queryResultMetaData, columnIndex);
String columnLabel = getColumnLabel(projectionsContext, queryResultMetaData, columnIndex);
- QueryHeaderBuilder queryHeaderBuilder = TypedSPIRegistry.findService(QueryHeaderBuilder.class, databaseType.getType())
- .orElseGet(() -> RequiredSPIRegistry.getService(QueryHeaderBuilder.class));
- return queryHeaderBuilder.build(queryResultMetaData, database, columnName, columnLabel, columnIndex);
+ return TypedSPIRegistry.getService(QueryHeaderBuilder.class, databaseType.getType()).build(queryResultMetaData, database, columnName, columnLabel, columnIndex);
}
private String getColumnLabel(final ProjectionsContext projectionsContext, final QueryResultMetaData queryResultMetaData, final int columnIndex) throws SQLException {
diff --git a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
index 500532469bc..1b429bbb4bd 100644
--- a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
+++ b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/communication/jdbc/DatabaseCommunicationEngineTest.java
@@ -51,7 +51,9 @@ import org.apache.shardingsphere.proxy.backend.communication.jdbc.executor.callb
import org.apache.shardingsphere.proxy.backend.communication.jdbc.statement.JDBCBackendStatement;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.data.QueryResponseRow;
+import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilder;
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeaderBuilderEngine;
+import org.apache.shardingsphere.proxy.backend.response.header.query.impl.MySQLQueryHeaderBuilder;
import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.sharding.rule.ShardingRule;
import org.apache.shardingsphere.sqlfederation.api.config.SQLFederationRuleConfiguration;
@@ -78,7 +80,6 @@ import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
@@ -148,7 +149,8 @@ public final class DatabaseCommunicationEngineTest extends ProxyContextRestorer
when(resultSet.getMetaData().getColumnType(1)).thenReturn(Types.INTEGER);
when(resultSet.next()).thenReturn(true, false);
when(resultSet.getObject(1)).thenReturn(Integer.MAX_VALUE);
- typedSPIRegistry.when(() -> TypedSPIRegistry.findService(SQLFederationExecutor.class, "NONE")).thenReturn(Optional.of(federationExecutor));
+ typedSPIRegistry.when(() -> TypedSPIRegistry.getService(SQLFederationExecutor.class, "NONE")).thenReturn(federationExecutor);
+ typedSPIRegistry.when(() -> TypedSPIRegistry.getService(QueryHeaderBuilder.class, "H2")).thenReturn(new MySQLQueryHeaderBuilder());
systemSchemaUtil.when(() -> SystemSchemaUtil.containsSystemSchema(any(DatabaseType.class), any(), any(ShardingSphereDatabase.class))).thenReturn(true);
SQLFederationRule sqlFederationRule = new SQLFederationRule(new SQLFederationRuleConfiguration("ORIGINAL"));
when(globalRuleMetaData.getSingleRule(SQLFederationRule.class)).thenReturn(sqlFederationRule);
diff --git a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
index 41e946f8364..e013cda51b8 100644
--- a/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
+++ b/proxy/bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/BootstrapInitializer.java
@@ -24,7 +24,6 @@ import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaDataBuilder;
import org.apache.shardingsphere.infra.util.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.infra.yaml.config.swapper.mode.YamlModeConfigurationSwapper;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -67,10 +66,7 @@ public final class BootstrapInitializer {
ContextManagerBuilderParameter param = new ContextManagerBuilderParameter(modeConfig, proxyConfig.getDatabaseConfigurations(),
proxyConfig.getGlobalConfiguration().getRules(), proxyConfig.getGlobalConfiguration().getProperties(), proxyConfig.getGlobalConfiguration().getLabels(),
createInstanceMetaData(proxyConfig, port), force);
- ContextManagerBuilder contextManagerBuilder = null == modeConfig
- ? RequiredSPIRegistry.getService(ContextManagerBuilder.class)
- : TypedSPIRegistry.getService(ContextManagerBuilder.class, modeConfig.getType());
- return contextManagerBuilder.build(param);
+ return TypedSPIRegistry.getService(ContextManagerBuilder.class, null == modeConfig ? null : modeConfig.getType()).build(param);
}
private InstanceMetaData createInstanceMetaData(final ProxyConfiguration proxyConfig, final int port) {
diff --git a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
index aaeedeb7ba1..1936411afe7 100644
--- a/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
+++ b/test/it/optimizer/src/test/java/org/apache/shardingsphere/test/it/optimize/SQLNodeConverterEngineIT.java
@@ -28,7 +28,6 @@ import org.apache.calcite.sql.parser.SqlParser;
import org.apache.calcite.sql.parser.SqlParser.Config;
import org.apache.calcite.sql.parser.impl.SqlParserImpl;
import org.apache.calcite.util.Litmus;
-import org.apache.shardingsphere.infra.util.spi.type.required.RequiredSPIRegistry;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPIRegistry;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
@@ -222,9 +221,7 @@ public final class SQLNodeConverterEngineIT {
private Properties createSQLDialectProperties(final String databaseType) {
Properties result = new Properties();
result.setProperty(CalciteConnectionProperty.TIME_ZONE.camelName(), "UTC");
- result.putAll((null == databaseType
- ? RequiredSPIRegistry.getService(OptimizerSQLDialectBuilder.class)
- : TypedSPIRegistry.getService(OptimizerSQLDialectBuilder.class, databaseType)).build());
+ result.putAll(TypedSPIRegistry.getService(OptimizerSQLDialectBuilder.class, databaseType).build());
return result;
}
}