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

menghaoran 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 e3297c0  Add same order check for OrderedSPIRegistry (#10712)
e3297c0 is described below

commit e3297c01a4987a220040ba0356d1c09113e01a72
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jun 8 14:09:17 2021 +0800

    Add same order check for OrderedSPIRegistry (#10712)
---
 .../apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistry.java  | 2 ++
 .../shardingsphere/infra/spi/ordered/OrderedSPIRegistryTest.java     | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistry.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistry.java
index bcada99..5d547b8 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistry.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistry.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.infra.spi.ordered;
 
+import com.google.common.base.Preconditions;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
@@ -86,6 +87,7 @@ public final class OrderedSPIRegistry {
     public static <T extends OrderedSPI<?>> Collection<T> 
getRegisteredServices(final Class<T> orderedSPIClass) {
         Map<Integer, T> result = new TreeMap<>();
         for (T each : 
ShardingSphereServiceLoader.getSingletonServiceInstances(orderedSPIClass)) {
+            Preconditions.checkArgument(!result.containsKey(each.getOrder()), 
"Found same order `%s` with `%s` and `%s`", each.getOrder(), 
result.get(each.getOrder()), each);
             result.put(each.getOrder(), each);
         }
         return result.values();
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistryTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistryTest.java
index bfd8607d..1c461c3 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistryTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/spi/ordered/OrderedSPIRegistryTest.java
@@ -18,6 +18,7 @@
 package org.apache.shardingsphere.infra.spi.ordered;
 
 import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
+import org.apache.shardingsphere.infra.spi.fixture.FixtureCustomInterface;
 import org.apache.shardingsphere.infra.spi.fixture.FixtureCustomInterfaceImpl;
 import org.apache.shardingsphere.infra.spi.fixture.ordered.OrderedSPIFixture;
 import 
org.apache.shardingsphere.infra.spi.fixture.ordered.OrderedSPIFixtureImpl;
@@ -51,6 +52,7 @@ public final class OrderedSPIRegistryTest {
         field.set(null, new ConcurrentHashMap<>());
     }
     
+    @SuppressWarnings("rawtypes")
     @Test
     public void assertGetRegisteredServicesByClass() {
         Map<Class<?>, OrderedSPIFixture> actual = 
OrderedSPIRegistry.getRegisteredServicesByClass(Collections.singleton(FixtureCustomInterfaceImpl.class),
 OrderedSPIFixture.class);
@@ -58,6 +60,7 @@ public final class OrderedSPIRegistryTest {
         assertThat(actual.get(FixtureCustomInterfaceImpl.class), 
instanceOf(OrderedSPIFixtureImpl.class));
     }
     
+    @SuppressWarnings("rawtypes")
     @Test
     public void assertGetRegisteredServices() {
         FixtureCustomInterfaceImpl key = new FixtureCustomInterfaceImpl();
@@ -68,7 +71,7 @@ public final class OrderedSPIRegistryTest {
 
     @Test
     public void assertGetRegisteredServicesFromCache() {
-        FixtureCustomInterfaceImpl key = new FixtureCustomInterfaceImpl();
+        FixtureCustomInterface key = new FixtureCustomInterfaceImpl();
         
assertThat(OrderedSPIRegistry.getRegisteredServices(Collections.singleton(key), 
OrderedSPIFixture.class), 
                 
is(OrderedSPIRegistry.getRegisteredServices(Collections.singleton(key), 
OrderedSPIFixture.class)));
     }

Reply via email to