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 472b9bd5320 Add generic type on StorageUnitDefinitionProcessor (#30034)
472b9bd5320 is described below
commit 472b9bd5320a4ca519d3395cd3dfc33e88b0cd81
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Feb 7 10:59:35 2024 +0800
Add generic type on StorageUnitDefinitionProcessor (#30034)
---
.../handler/update/StorageUnitBroadcastDefinitionProcessor.java | 2 +-
.../type/update/rdl/resource/StorageUnitDefinitionProcessor.java | 6 ++++--
.../handler/update/StorageUnitSingleDefinitionProcessor.java | 2 +-
.../handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java | 1 +
.../rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java | 5 ++---
5 files changed, 9 insertions(+), 7 deletions(-)
diff --git
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
index 3c0f04ad040..41f4c46a0b2 100644
---
a/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
+++
b/features/broadcast/distsql/handler/src/main/java/org/apache/shardingsphere/broadcast/distsql/handler/update/StorageUnitBroadcastDefinitionProcessor.java
@@ -24,7 +24,7 @@ import
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.Unregi
/**
* Storage unit definition processor for broadcast rule.
*/
-public final class StorageUnitBroadcastDefinitionProcessor implements
StorageUnitDefinitionProcessor {
+public final class StorageUnitBroadcastDefinitionProcessor implements
StorageUnitDefinitionProcessor<BroadcastRule> {
@Override
public boolean ignoreUsageCheckOnUnregister(final
UnregisterStorageUnitStatement sqlStatement) {
diff --git
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
index 2f8447b0e49..8266e3c37e8 100644
---
a/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
+++
b/infra/distsql-handler/src/main/java/org/apache/shardingsphere/distsql/handler/type/update/rdl/resource/StorageUnitDefinitionProcessor.java
@@ -23,9 +23,11 @@ import
org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
/**
* Storage unit definition processor.
+ *
+ * @param <T> type of rule
*/
@SingletonSPI
-public interface StorageUnitDefinitionProcessor {
+public interface StorageUnitDefinitionProcessor<T extends ShardingSphereRule> {
/**
* Whether to ignore rule usage checking when unregister storage unit.
@@ -40,5 +42,5 @@ public interface StorageUnitDefinitionProcessor {
*
* @return rule
*/
- Class<? extends ShardingSphereRule> getRule();
+ Class<T> getRule();
}
diff --git
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
index 73a7631821f..ff336704176 100644
---
a/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
+++
b/kernel/single/distsql/handler/src/main/java/org/apache/shardingsphere/single/distsql/handler/update/StorageUnitSingleDefinitionProcessor.java
@@ -24,7 +24,7 @@ import org.apache.shardingsphere.single.rule.SingleRule;
/**
* Storage unit definition processor for single rule.
*/
-public final class StorageUnitSingleDefinitionProcessor implements
StorageUnitDefinitionProcessor {
+public final class StorageUnitSingleDefinitionProcessor implements
StorageUnitDefinitionProcessor<SingleRule> {
@Override
public boolean ignoreUsageCheckOnUnregister(final
UnregisterStorageUnitStatement sqlStatement) {
diff --git
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
index 395cad481b5..dec03eeb9e8 100644
---
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
+++
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/UnregisterStorageUnitExecutor.java
@@ -83,6 +83,7 @@ public final class UnregisterStorageUnitExecutor implements
DistSQLUpdateExecuto
checkInUsedIgnoreTables(new HashSet<>(inUsedStorageUnitNames),
inUsedStorageUnits, ignoreShardingSphereRules);
}
+ @SuppressWarnings("unchecked")
private Collection<Class<? extends ShardingSphereRule>>
getIgnoreShardingSphereRules(final UnregisterStorageUnitStatement sqlStatement)
{
return
ShardingSphereServiceLoader.getServiceInstances(StorageUnitDefinitionProcessor.class).stream()
.filter(each ->
each.ignoreUsageCheckOnUnregister(sqlStatement)).map(StorageUnitDefinitionProcessor::getRule).collect(Collectors.toList());
diff --git
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
index d081afe99f9..cf144586573 100644
---
a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
+++
b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/rdl/resource/fixture/FixtureStorageUnitDefinitionProcessor.java
@@ -19,9 +19,8 @@ package
org.apache.shardingsphere.proxy.backend.handler.distsql.rdl.resource.fix
import
org.apache.shardingsphere.distsql.handler.type.update.rdl.resource.StorageUnitDefinitionProcessor;
import
org.apache.shardingsphere.distsql.statement.rdl.resource.unit.type.UnregisterStorageUnitStatement;
-import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
-public final class FixtureStorageUnitDefinitionProcessor implements
StorageUnitDefinitionProcessor {
+public final class FixtureStorageUnitDefinitionProcessor implements
StorageUnitDefinitionProcessor<FixtureUnregisterStorageUnitRule> {
@Override
public boolean ignoreUsageCheckOnUnregister(final
UnregisterStorageUnitStatement sqlStatement) {
@@ -29,7 +28,7 @@ public final class FixtureStorageUnitDefinitionProcessor
implements StorageUnitD
}
@Override
- public Class<? extends ShardingSphereRule> getRule() {
+ public Class<FixtureUnregisterStorageUnitRule> getRule() {
return FixtureUnregisterStorageUnitRule.class;
}
}