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

panjuan 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 803493e2766 Remove ShardingSphereAlgorithm interface (#23963)
803493e2766 is described below

commit 803493e2766e7f42bdcb3c1707fcdd83fe865ebc
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Feb 3 18:29:01 2023 +0800

    Remove ShardingSphereAlgorithm interface (#23963)
---
 .../spi/DatabaseDiscoveryProviderAlgorithm.java    |  4 +--
 .../encrypt/spi/EncryptAlgorithm.java              |  4 +--
 .../shardingsphere/mask/spi/MaskAlgorithm.java     |  4 +--
 .../spi/ReadQueryLoadBalanceAlgorithm.java         |  4 +--
 .../shardingsphere/shadow/spi/ShadowAlgorithm.java |  4 +--
 .../sharding/spi/KeyGenerateAlgorithm.java         |  4 +--
 .../sharding/spi/ShardingAlgorithm.java            |  4 +--
 .../sharding/spi/ShardingAuditAlgorithm.java       |  4 +--
 .../infra/algorithm/ShardingSphereAlgorithm.java   | 26 --------------
 ...gsphere.infra.algorithm.ShardingSphereAlgorithm | 18 ----------
 .../authority/spi/AuthorityProviderAlgorithm.java  |  4 +--
 .../DataConsistencyCalculateAlgorithm.java         |  4 +--
 .../spi/ingest/channel/PipelineChannelCreator.java |  4 +--
 .../spi/ratelimit/JobRateLimitAlgorithm.java       |  4 +--
 .../traffic/spi/TrafficAlgorithm.java              |  4 +--
 .../traffic/spi/TrafficLoadBalanceAlgorithm.java   |  4 +--
 .../ShardingRuleConfigurationImportChecker.java    | 42 +++++++---------------
 17 files changed, 41 insertions(+), 101 deletions(-)

diff --git 
a/features/db-discovery/api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryProviderAlgorithm.java
 
b/features/db-discovery/api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryProviderAlgorithm.java
index 4ba87734a69..489f7c897a4 100644
--- 
a/features/db-discovery/api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryProviderAlgorithm.java
+++ 
b/features/db-discovery/api/src/main/java/org/apache/shardingsphere/dbdiscovery/spi/DatabaseDiscoveryProviderAlgorithm.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.dbdiscovery.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import javax.sql.DataSource;
 import java.sql.SQLException;
@@ -27,7 +27,7 @@ import java.util.Optional;
 /**
  * Database discovery provider algorithm.
  */
-public interface DatabaseDiscoveryProviderAlgorithm extends 
ShardingSphereAlgorithm {
+public interface DatabaseDiscoveryProviderAlgorithm extends TypedSPI {
     
     /**
      * Check environment.
diff --git 
a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/spi/EncryptAlgorithm.java
 
b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/spi/EncryptAlgorithm.java
index fb6de3c6b65..df035bfe336 100644
--- 
a/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/spi/EncryptAlgorithm.java
+++ 
b/features/encrypt/api/src/main/java/org/apache/shardingsphere/encrypt/spi/EncryptAlgorithm.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.encrypt.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Encrypt algorithm.
  */
-public interface EncryptAlgorithm extends ShardingSphereAlgorithm {
+public interface EncryptAlgorithm extends TypedSPI {
 }
diff --git 
a/features/mask/api/src/main/java/org/apache/shardingsphere/mask/spi/MaskAlgorithm.java
 
b/features/mask/api/src/main/java/org/apache/shardingsphere/mask/spi/MaskAlgorithm.java
index 30406bd0d38..f9265be0eed 100644
--- 
a/features/mask/api/src/main/java/org/apache/shardingsphere/mask/spi/MaskAlgorithm.java
+++ 
b/features/mask/api/src/main/java/org/apache/shardingsphere/mask/spi/MaskAlgorithm.java
@@ -17,7 +17,7 @@
 
 package org.apache.shardingsphere.mask.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Mask algorithm.
@@ -25,7 +25,7 @@ import 
org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
  * @param <I> type of plain value
  * @param <O> type of masked value
  */
-public interface MaskAlgorithm<I, O> extends ShardingSphereAlgorithm {
+public interface MaskAlgorithm<I, O> extends TypedSPI {
     
     /**
      * Mask.
diff --git 
a/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/spi/ReadQueryLoadBalanceAlgorithm.java
 
b/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/spi/ReadQueryLoadBalanceAlgorithm.java
index 666e730ef4e..6ef4e1d1867 100644
--- 
a/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/spi/ReadQueryLoadBalanceAlgorithm.java
+++ 
b/features/readwrite-splitting/api/src/main/java/org/apache/shardingsphere/readwritesplitting/spi/ReadQueryLoadBalanceAlgorithm.java
@@ -17,15 +17,15 @@
 
 package org.apache.shardingsphere.readwritesplitting.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
 import 
org.apache.shardingsphere.infra.context.transaction.TransactionConnectionContext;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.List;
 
 /**
  * Read query load-balance algorithm.
  */
-public interface ReadQueryLoadBalanceAlgorithm extends ShardingSphereAlgorithm 
{
+public interface ReadQueryLoadBalanceAlgorithm extends TypedSPI {
     
     /**
      * Get data source.
diff --git 
a/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/spi/ShadowAlgorithm.java
 
b/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/spi/ShadowAlgorithm.java
index 76fb791933b..d0d59bd89a0 100644
--- 
a/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/spi/ShadowAlgorithm.java
+++ 
b/features/shadow/api/src/main/java/org/apache/shardingsphere/shadow/spi/ShadowAlgorithm.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.shadow.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Shadow algorithm.
  */
-public interface ShadowAlgorithm extends ShardingSphereAlgorithm {
+public interface ShadowAlgorithm extends TypedSPI {
 }
diff --git 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/KeyGenerateAlgorithm.java
 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/KeyGenerateAlgorithm.java
index 8b147fa5c35..c44daa14afa 100644
--- 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/KeyGenerateAlgorithm.java
+++ 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/KeyGenerateAlgorithm.java
@@ -17,12 +17,12 @@
 
 package org.apache.shardingsphere.sharding.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Key generate algorithm.
  */
-public interface KeyGenerateAlgorithm extends ShardingSphereAlgorithm {
+public interface KeyGenerateAlgorithm extends TypedSPI {
     
     /**
      * Generate key.
diff --git 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAlgorithm.java
 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAlgorithm.java
index 31146ab95b3..8cbbea330da 100644
--- 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAlgorithm.java
+++ 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAlgorithm.java
@@ -17,14 +17,14 @@
 
 package org.apache.shardingsphere.sharding.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.Optional;
 
 /**
  * Sharding algorithm.
  */
-public interface ShardingAlgorithm extends ShardingSphereAlgorithm {
+public interface ShardingAlgorithm extends TypedSPI {
     
     /**
      * Get algorithm structure.
diff --git 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
index ae8c9b189eb..3705688a39b 100644
--- 
a/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
+++ 
b/features/sharding/api/src/main/java/org/apache/shardingsphere/sharding/spi/ShardingAuditAlgorithm.java
@@ -17,18 +17,18 @@
 
 package org.apache.shardingsphere.sharding.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.user.Grantee;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.List;
 
 /**
  * Sharding audit algorithm.
  */
-public interface ShardingAuditAlgorithm extends ShardingSphereAlgorithm {
+public interface ShardingAuditAlgorithm extends TypedSPI {
     
     /**
      * Sharding audit algorithm SQL check.
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/algorithm/ShardingSphereAlgorithm.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/algorithm/ShardingSphereAlgorithm.java
deleted file mode 100644
index 21926d0e118..00000000000
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/algorithm/ShardingSphereAlgorithm.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.infra.algorithm;
-
-import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
-
-/**
- * ShardingSphere algorithm.
- */
-public interface ShardingSphereAlgorithm extends TypedSPI {
-}
diff --git 
a/infra/common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm
 
b/infra/common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm
deleted file mode 100644
index 4d7ffc503fa..00000000000
--- 
a/infra/common/src/test/resources/META-INF/services/org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-org.apache.shardingsphere.infra.algorithm.fixture.ShardingSphereAlgorithmFixture
diff --git 
a/kernel/authority/api/src/main/java/org/apache/shardingsphere/authority/spi/AuthorityProviderAlgorithm.java
 
b/kernel/authority/api/src/main/java/org/apache/shardingsphere/authority/spi/AuthorityProviderAlgorithm.java
index 543f630a3c2..5c84f0a177b 100644
--- 
a/kernel/authority/api/src/main/java/org/apache/shardingsphere/authority/spi/AuthorityProviderAlgorithm.java
+++ 
b/kernel/authority/api/src/main/java/org/apache/shardingsphere/authority/spi/AuthorityProviderAlgorithm.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.authority.spi;
 
 import org.apache.shardingsphere.authority.model.AuthorityRegistry;
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.user.ShardingSphereUser;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.Collection;
 import java.util.Map;
@@ -28,7 +28,7 @@ import java.util.Map;
 /**
  * Authority provider algorithm.
  */
-public interface AuthorityProviderAlgorithm extends ShardingSphereAlgorithm {
+public interface AuthorityProviderAlgorithm extends TypedSPI {
     
     /**
      * Build authority registry.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/consistency/DataConsistencyCalculateAlgorithm.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/consistency/DataConsistencyCalculateAlgorithm.java
index eb06cddb53c..db4c9a2b7aa 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/consistency/DataConsistencyCalculateAlgorithm.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/check/consistency/DataConsistencyCalculateAlgorithm.java
@@ -19,7 +19,7 @@ package 
org.apache.shardingsphere.data.pipeline.spi.check.consistency;
 
 import 
org.apache.shardingsphere.data.pipeline.api.check.consistency.DataConsistencyCalculateParameter;
 import 
org.apache.shardingsphere.data.pipeline.api.check.consistency.DataConsistencyCalculatedResult;
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.sql.SQLException;
 import java.util.Collection;
@@ -27,7 +27,7 @@ import java.util.Collection;
 /**
  * Data consistency calculate algorithm.
  */
-public interface DataConsistencyCalculateAlgorithm extends 
ShardingSphereAlgorithm {
+public interface DataConsistencyCalculateAlgorithm extends TypedSPI {
     
     /**
      * Calculate data for consistency check.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/channel/PipelineChannelCreator.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/channel/PipelineChannelCreator.java
index f1ba3007a92..d9ac1de2854 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/channel/PipelineChannelCreator.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ingest/channel/PipelineChannelCreator.java
@@ -19,12 +19,12 @@ package 
org.apache.shardingsphere.data.pipeline.spi.ingest.channel;
 
 import org.apache.shardingsphere.data.pipeline.api.ingest.channel.AckCallback;
 import 
org.apache.shardingsphere.data.pipeline.api.ingest.channel.PipelineChannel;
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Pipeline channel creator.
  */
-public interface PipelineChannelCreator extends ShardingSphereAlgorithm {
+public interface PipelineChannelCreator extends TypedSPI {
     
     /**
      * Create pipeline channel.
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ratelimit/JobRateLimitAlgorithm.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ratelimit/JobRateLimitAlgorithm.java
index 779c80fcaee..484ede02369 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ratelimit/JobRateLimitAlgorithm.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/spi/ratelimit/JobRateLimitAlgorithm.java
@@ -18,12 +18,12 @@
 package org.apache.shardingsphere.data.pipeline.spi.ratelimit;
 
 import org.apache.shardingsphere.data.pipeline.api.job.JobOperationType;
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Job rate limit algorithm.
  */
-public interface JobRateLimitAlgorithm extends ShardingSphereAlgorithm {
+public interface JobRateLimitAlgorithm extends TypedSPI {
     
     /**
      * Intercept.
diff --git 
a/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficAlgorithm.java
 
b/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficAlgorithm.java
index 4b68fe6c80c..9fd2760e272 100644
--- 
a/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficAlgorithm.java
+++ 
b/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficAlgorithm.java
@@ -17,10 +17,10 @@
 
 package org.apache.shardingsphere.traffic.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 /**
  * Traffic algorithm.
  */
-public interface TrafficAlgorithm extends ShardingSphereAlgorithm {
+public interface TrafficAlgorithm extends TypedSPI {
 }
diff --git 
a/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficLoadBalanceAlgorithm.java
 
b/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficLoadBalanceAlgorithm.java
index 01e9c4c0965..93a91edccb4 100644
--- 
a/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficLoadBalanceAlgorithm.java
+++ 
b/kernel/traffic/api/src/main/java/org/apache/shardingsphere/traffic/spi/TrafficLoadBalanceAlgorithm.java
@@ -17,15 +17,15 @@
 
 package org.apache.shardingsphere.traffic.spi;
 
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
 import org.apache.shardingsphere.infra.instance.metadata.InstanceMetaData;
+import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPI;
 
 import java.util.List;
 
 /**
  * Traffic load balance algorithm.
  */
-public interface TrafficLoadBalanceAlgorithm extends ShardingSphereAlgorithm {
+public interface TrafficLoadBalanceAlgorithm extends TypedSPI {
     
     /**
      * Get instance definition.
diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
index 91caee426e4..c7520c622b8 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/common/checker/ShardingRuleConfigurationImportChecker.java
@@ -17,12 +17,11 @@
 
 package 
org.apache.shardingsphere.proxy.backend.handler.distsql.ral.common.checker;
 
+import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
+import 
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
+import 
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
 import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
-import org.apache.shardingsphere.infra.algorithm.ShardingSphereAlgorithm;
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import 
org.apache.shardingsphere.distsql.handler.exception.storageunit.MissingRequiredStorageUnitsException;
-import 
org.apache.shardingsphere.distsql.handler.exception.rule.DuplicateRuleException;
-import 
org.apache.shardingsphere.distsql.handler.exception.algorithm.InvalidAlgorithmConfigurationException;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.rule.identifier.type.DataSourceContainedRule;
 import 
org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
@@ -35,7 +34,6 @@ import 
org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
 import org.apache.shardingsphere.sharding.spi.ShardingAlgorithm;
 
 import java.util.Collection;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
@@ -48,17 +46,6 @@ import java.util.stream.Collectors;
  */
 public final class ShardingRuleConfigurationImportChecker {
     
-    private static final String SHARDING = "sharding";
-    
-    private static final String KEY_GENERATOR = "key generator";
-    
-    private static final Map<String, Class<? extends ShardingSphereAlgorithm>> 
ALGORITHM_TYPE_MAP = new HashMap<>(2, 1);
-    
-    static {
-        ALGORITHM_TYPE_MAP.put(SHARDING, ShardingAlgorithm.class);
-        ALGORITHM_TYPE_MAP.put(KEY_GENERATOR, KeyGenerateAlgorithm.class);
-    }
-    
     /**
      * Check sharding rule configuration.
      *
@@ -72,8 +59,8 @@ public final class ShardingRuleConfigurationImportChecker {
         String databaseName = database.getName();
         checkLogicTables(databaseName, currentRuleConfig);
         checkResources(databaseName, database, currentRuleConfig);
-        checkKeyGenerators(currentRuleConfig);
-        checkShardingAlgorithms(currentRuleConfig);
+        
checkInvalidKeyGeneratorAlgorithms(currentRuleConfig.getKeyGenerators().values());
+        
checkInvalidShardingAlgorithms(currentRuleConfig.getShardingAlgorithms().values());
     }
     
     private void checkLogicTables(final String databaseName, final 
ShardingRuleConfiguration currentRuleConfig) {
@@ -84,22 +71,19 @@ public final class ShardingRuleConfigurationImportChecker {
         allLogicTables.addAll(autoTablesLogicTables);
         Set<String> duplicatedLogicTables = 
allLogicTables.stream().collect(Collectors.groupingBy(each -> each, 
Collectors.counting())).entrySet().stream()
                 .filter(each -> each.getValue() > 
1).map(Map.Entry::getKey).collect(Collectors.toSet());
-        
ShardingSpherePreconditions.checkState(duplicatedLogicTables.isEmpty(), () -> 
new DuplicateRuleException(SHARDING, databaseName, duplicatedLogicTables));
+        
ShardingSpherePreconditions.checkState(duplicatedLogicTables.isEmpty(), () -> 
new DuplicateRuleException("sharding", databaseName, duplicatedLogicTables));
     }
     
-    private void checkShardingAlgorithms(final ShardingRuleConfiguration 
currentRuleConfig) {
-        checkInvalidAlgorithms(SHARDING, 
currentRuleConfig.getShardingAlgorithms().values());
-    }
-    
-    private void checkKeyGenerators(final ShardingRuleConfiguration 
currentRuleConfig) {
-        checkInvalidAlgorithms(KEY_GENERATOR, 
currentRuleConfig.getKeyGenerators().values());
+    private void checkInvalidShardingAlgorithms(final 
Collection<AlgorithmConfiguration> algorithmConfigs) {
+        Collection<String> invalidAlgorithms = algorithmConfigs.stream()
+                .map(AlgorithmConfiguration::getType).filter(each -> 
!TypedSPILoader.contains(ShardingAlgorithm.class, 
each)).collect(Collectors.toList());
+        ShardingSpherePreconditions.checkState(invalidAlgorithms.isEmpty(), () 
-> new InvalidAlgorithmConfigurationException("sharding", invalidAlgorithms));
     }
     
-    private void checkInvalidAlgorithms(final String algorithmType, final 
Collection<AlgorithmConfiguration> algorithmConfigs) {
+    private void checkInvalidKeyGeneratorAlgorithms(final 
Collection<AlgorithmConfiguration> algorithmConfigs) {
         Collection<String> invalidAlgorithms = algorithmConfigs.stream()
-                .map(AlgorithmConfiguration::getType)
-                .filter(each -> 
!TypedSPILoader.contains(ALGORITHM_TYPE_MAP.get(algorithmType), 
each)).collect(Collectors.toList());
-        ShardingSpherePreconditions.checkState(invalidAlgorithms.isEmpty(), () 
-> new InvalidAlgorithmConfigurationException(algorithmType, 
invalidAlgorithms));
+                .map(AlgorithmConfiguration::getType).filter(each -> 
!TypedSPILoader.contains(KeyGenerateAlgorithm.class, 
each)).collect(Collectors.toList());
+        ShardingSpherePreconditions.checkState(invalidAlgorithms.isEmpty(), () 
-> new InvalidAlgorithmConfigurationException("key generator", 
invalidAlgorithms));
     }
     
     private Collection<String> getRequiredResources(final 
ShardingRuleConfiguration currentRuleConfig) {

Reply via email to