You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by xi...@apache.org on 2020/12/22 08:48:56 UTC

[shardingsphere] branch master updated: Move LockStrategy spi load to LockContext (#8720)

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

xiaoyu 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 226a9e2  Move LockStrategy spi load to LockContext (#8720)
226a9e2 is described below

commit 226a9e28b1f431d4e868696bd14a14f423d9149d
Author: Haoran Meng <me...@gmail.com>
AuthorDate: Tue Dec 22 16:48:31 2020 +0800

    Move LockStrategy spi load to LockContext (#8720)
---
 .../org/apache/shardingsphere/infra/lock/LockContext.java   | 13 ++++++++++---
 .../apache/shardingsphere/infra/lock/LockContextTest.java   |  9 +--------
 .../initializer/impl/AbstractBootstrapInitializer.java      | 13 -------------
 .../initializer/impl/GovernanceBootstrapInitializer.java    |  5 ++---
 .../initializer/impl/StandardBootstrapInitializer.java      |  2 +-
 5 files changed, 14 insertions(+), 28 deletions(-)

diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/LockContext.java b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/LockContext.java
index 1846c2b..16a0f9b 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/LockContext.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/lock/LockContext.java
@@ -19,7 +19,10 @@ package org.apache.shardingsphere.infra.lock;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
+import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
+import org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
 
+import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.concurrent.locks.Condition;
@@ -38,13 +41,17 @@ public final class LockContext {
     
     private static final Condition CONDITION = LOCK.newCondition();
     
+    static {
+        ShardingSphereServiceLoader.register(LockStrategy.class);
+    }
+    
     /**
      * Init lock strategy.
      *
-     * @param lockStrategy lock strategy
+     * @param lockStrategyType lock strategy type
      */
-    public static void init(final LockStrategy lockStrategy) {
-        LOCK_STRATEGY.set(lockStrategy);
+    public static void init(final LockStrategyType lockStrategyType) {
+        LOCK_STRATEGY.set(TypedSPIRegistry.getRegisteredService(LockStrategy.class, lockStrategyType.name(), new Properties()));
     }
     
     /**
diff --git a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/lock/LockContextTest.java b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/lock/LockContextTest.java
index fce1e2c..8b9f871 100644
--- a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/lock/LockContextTest.java
+++ b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/lock/LockContextTest.java
@@ -17,12 +17,9 @@
 
 package org.apache.shardingsphere.infra.lock;
 
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 import static org.junit.Assert.assertNotNull;
@@ -30,13 +27,9 @@ import static org.junit.Assert.assertTrue;
 
 public final class LockContextTest {
     
-    static {
-        ShardingSphereServiceLoader.register(LockStrategy.class);
-    }
-    
     @Before
     public void init() {
-        LockContext.init(TypedSPIRegistry.getRegisteredService(LockStrategy.class, LockStrategyType.STANDARD.name(), new Properties()));
+        LockContext.init(LockStrategyType.STANDARD);
     }
     
     @Test
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
index f41e040..622e9bb 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/AbstractBootstrapInitializer.java
@@ -23,11 +23,7 @@ import org.apache.shardingsphere.infra.config.datasource.DataSourceParameter;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContexts;
 import org.apache.shardingsphere.infra.context.metadata.MetaDataContextsBuilder;
-import org.apache.shardingsphere.infra.lock.LockStrategy;
-import org.apache.shardingsphere.infra.lock.LockStrategyType;
 import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
-import org.apache.shardingsphere.infra.spi.ShardingSphereServiceLoader;
-import org.apache.shardingsphere.infra.spi.typed.TypedSPIRegistry;
 import org.apache.shardingsphere.proxy.backend.communication.jdbc.datasource.factory.JDBCRawBackendDataSourceFactory;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.apache.shardingsphere.proxy.config.ProxyConfiguration;
@@ -47,7 +43,6 @@ import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Optional;
-import java.util.Properties;
 import java.util.stream.Collectors;
 
 /**
@@ -58,10 +53,6 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
     
     private final ShardingSphereProxy shardingSphereProxy = new ShardingSphereProxy();
     
-    static {
-        ShardingSphereServiceLoader.register(LockStrategy.class);
-    }
-    
     @Override
     public final void init(final YamlProxyConfiguration yamlConfig, final int port) throws SQLException {
         ProxyConfiguration proxyConfig = getProxyConfiguration(yamlConfig);
@@ -127,8 +118,4 @@ public abstract class AbstractBootstrapInitializer implements BootstrapInitializ
     protected abstract TransactionContexts decorateTransactionContexts(TransactionContexts transactionContexts, String xaTransactionMangerType);
     
     protected abstract void initLockContext();
-    
-    protected LockStrategy loadLockStrategy(final LockStrategyType lockStrategyType) {
-        return TypedSPIRegistry.getRegisteredService(LockStrategy.class, lockStrategyType.name(), new Properties());
-    }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
index 85eba9e..ec7b75a 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/GovernanceBootstrapInitializer.java
@@ -127,8 +127,7 @@ public final class GovernanceBootstrapInitializer extends AbstractBootstrapIniti
     
     @Override
     protected void initLockContext() {
-        GovernanceLockStrategy governanceLockStrategy = (GovernanceLockStrategy) loadLockStrategy(LockStrategyType.GOVERNANCE);
-        governanceLockStrategy.init(governanceFacade.getRegistryCenter());
-        LockContext.init(governanceLockStrategy);
+        LockContext.init(LockStrategyType.GOVERNANCE);
+        ((GovernanceLockStrategy) LockContext.getLockStrategy()).init(governanceFacade.getRegistryCenter());
     }
 }
diff --git a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
index d9fda32..6ecc167 100644
--- a/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
+++ b/shardingsphere-proxy/shardingsphere-proxy-bootstrap/src/main/java/org/apache/shardingsphere/proxy/initializer/impl/StandardBootstrapInitializer.java
@@ -47,6 +47,6 @@ public final class StandardBootstrapInitializer extends AbstractBootstrapInitial
     
     @Override
     protected void initLockContext() {
-        LockContext.init(loadLockStrategy(LockStrategyType.STANDARD));
+        LockContext.init(LockStrategyType.STANDARD);
     }
 }