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) {