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());
}
}