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 <[email protected]>
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;
}
}