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

zhaojinchao 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 46f93bf4347 Merge LockJudgeEngine.init and isLocked (#19330)
46f93bf4347 is described below

commit 46f93bf4347bfe92e727d2f88d87f30136b62b57
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Jul 18 19:26:17 2022 +0800

    Merge LockJudgeEngine.init and isLocked (#19330)
---
 .../mode/manager/lock/LockJudgeEngine.java               | 10 ++--------
 .../mode/manager/lock/LockJudgeEngineBuilder.java        |  8 ++------
 .../mode/manager/lock/ShardingSphereLockJudgeEngine.java | 16 +---------------
 .../communication/DatabaseCommunicationEngine.java       |  5 +++--
 4 files changed, 8 insertions(+), 31 deletions(-)

diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngine.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngine.java
index 36860d77089..b836f65e55d 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngine.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngine.java
@@ -28,19 +28,13 @@ import 
org.apache.shardingsphere.spi.type.required.RequiredSPI;
 @SingletonSPI
 public interface LockJudgeEngine extends RequiredSPI {
     
-    /**
-     * Init.
-     *
-     * @param lockContext lock context
-     */
-    void init(LockContext lockContext);
-    
     /**
      * Is locked.
      *
+     * @param lockContext lock context
      * @param databaseName database name
      * @param sqlStatementContext sql statement context
      * @return is locked or not
      */
-    boolean isLocked(String databaseName, SQLStatementContext<?> 
sqlStatementContext);
+    boolean isLocked(LockContext lockContext, String databaseName, 
SQLStatementContext<?> sqlStatementContext);
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngineBuilder.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngineBuilder.java
index 59e170712c6..8841a024478 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngineBuilder.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/LockJudgeEngineBuilder.java
@@ -19,7 +19,6 @@ package org.apache.shardingsphere.mode.manager.lock;
 
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
 import org.apache.shardingsphere.spi.type.required.RequiredSPIRegistry;
 
@@ -36,12 +35,9 @@ public final class LockJudgeEngineBuilder {
     /**
      * Build.
      *
-     * @param lockContext lock context
      * @return lock judge engine
      */
-    public static LockJudgeEngine build(final LockContext lockContext) {
-        LockJudgeEngine result = 
RequiredSPIRegistry.getRegisteredService(LockJudgeEngine.class);
-        result.init(lockContext);
-        return result;
+    public static LockJudgeEngine build() {
+        return RequiredSPIRegistry.getRegisteredService(LockJudgeEngine.class);
     }
 }
diff --git 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/ShardingSphereLockJudgeEngine.java
 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/ShardingSphereLockJudgeEngine.java
index b76c22ff1c9..dde7fa1d0a4 100644
--- 
a/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/ShardingSphereLockJudgeEngine.java
+++ 
b/shardingsphere-mode/shardingsphere-mode-core/src/main/java/org/apache/shardingsphere/mode/manager/lock/ShardingSphereLockJudgeEngine.java
@@ -27,22 +27,8 @@ import 
org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatementTyp
  */
 public final class ShardingSphereLockJudgeEngine implements LockJudgeEngine {
     
-    private LockContext lockContext;
-    
-    @Override
-    public void init(final LockContext lockContext) {
-        this.lockContext = lockContext;
-    }
-    
-    /**
-     * Is locked.
-     *
-     * @param databaseName database name
-     * @param sqlStatementContext sql statement context
-     * @return is locked or not
-     */
     @Override
-    public boolean isLocked(final String databaseName, final 
SQLStatementContext<?> sqlStatementContext) {
+    public boolean isLocked(final LockContext lockContext, final String 
databaseName, final SQLStatementContext<?> sqlStatementContext) {
         return 
SQLStatementType.involvesDataChanges(sqlStatementContext.getSqlStatement()) && 
lockContext.isLocked(LockDefinitionFactory.newDatabaseLockDefinition(databaseName));
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
index 0d2d22723a2..d8c79076162 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/main/java/org/apache/shardingsphere/proxy/backend/communication/DatabaseCommunicationEngine.java
@@ -90,7 +90,7 @@ public abstract class DatabaseCommunicationEngine<T> {
                 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getOptimizerContext().getFederationMetaData().getDatabases().get(databaseName),
                 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getOptimizerContext().getPlannerContexts(),
                 
ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getProps());
-        lockJudgeEngine = 
LockJudgeEngineBuilder.build(ProxyContext.getInstance().getContextManager().getInstanceContext().getLockContext());
+        lockJudgeEngine = LockJudgeEngineBuilder.build();
     }
     
     /**
@@ -197,7 +197,8 @@ public abstract class DatabaseCommunicationEngine<T> {
     }
     
     protected void checkLockedDatabase(final ExecutionContext 
executionContext) {
-        if 
(lockJudgeEngine.isLocked(backendConnection.getConnectionSession().getDatabaseName(),
 executionContext.getSqlStatementContext())) {
+        if 
(lockJudgeEngine.isLocked(ProxyContext.getInstance().getContextManager().getInstanceContext().getLockContext(),
+                backendConnection.getConnectionSession().getDatabaseName(), 
executionContext.getSqlStatementContext())) {
             throw new 
UnsupportedUpdateOperationException(backendConnection.getConnectionSession().getDatabaseName());
         }
     }

Reply via email to