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

zhangliang 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 352d80b2816 Refactor TransactionHook (#35047)
352d80b2816 is described below

commit 352d80b2816983ab6b5bb7bd1094af42a34a0c06
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Thu Mar 20 18:39:26 2025 +0800

    Refactor TransactionHook (#35047)
    
    * Refactor TransactionHook
    
    * Refactor TransactionHook
---
 .../globalclock/executor/GlobalClockTransactionHook.java         | 8 +++-----
 .../globalclock/executor/GlobalClockTransactionHookTest.java     | 9 ++++-----
 .../apache/shardingsphere/transaction/spi/TransactionHook.java   | 7 ++-----
 .../connector/jdbc/transaction/BackendTransactionManager.java    | 4 ++--
 4 files changed, 11 insertions(+), 17 deletions(-)

diff --git 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
index 4d563fda00d..c578566ebc1 100644
--- 
a/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
+++ 
b/kernel/global-clock/core/src/main/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHook.java
@@ -23,7 +23,6 @@ import 
org.apache.shardingsphere.globalclock.rule.GlobalClockRule;
 import org.apache.shardingsphere.globalclock.rule.constant.GlobalClockOrder;
 import 
org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import 
org.apache.shardingsphere.infra.session.connection.transaction.TransactionConnectionContext;
 import 
org.apache.shardingsphere.sql.parser.statement.core.enums.TransactionIsolationLevel;
 import org.apache.shardingsphere.transaction.spi.TransactionHook;
@@ -75,8 +74,8 @@ public final class GlobalClockTransactionHook implements 
TransactionHook<GlobalC
     }
     
     @Override
-    public void beforeCommit(final GlobalClockRule rule, final DatabaseType 
databaseType, final Collection<Connection> connections, final 
TransactionConnectionContext transactionContext,
-                             final LockContext lockContext) throws 
SQLException {
+    public void beforeCommit(final GlobalClockRule rule, final DatabaseType 
databaseType, final Collection<Connection> connections,
+                             final TransactionConnectionContext 
transactionContext) throws SQLException {
         if (!rule.getConfiguration().isEnabled()) {
             return;
         }
@@ -88,8 +87,7 @@ public final class GlobalClockTransactionHook implements 
TransactionHook<GlobalC
     }
     
     @Override
-    public void afterCommit(final GlobalClockRule rule, final DatabaseType 
databaseType, final Collection<Connection> connections, final 
TransactionConnectionContext transactionContext,
-                            final LockContext lockContext) {
+    public void afterCommit(final GlobalClockRule rule, final DatabaseType 
databaseType, final Collection<Connection> connections, final 
TransactionConnectionContext transactionContext) {
         if (!rule.getConfiguration().isEnabled()) {
             return;
         }
diff --git 
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHookTest.java
 
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHookTest.java
index f3b9ee69d4f..7d27961ec58 100644
--- 
a/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHookTest.java
+++ 
b/kernel/global-clock/core/src/test/java/org/apache/shardingsphere/globalclock/executor/GlobalClockTransactionHookTest.java
@@ -148,7 +148,7 @@ class GlobalClockTransactionHookTest {
     @Test
     void assertBeforeCommitWhenDisabledGlobalClockRule() throws SQLException {
         LockContext lockContext = mock(LockContext.class);
-        transactionHook.beforeCommit(rule, databaseType, 
Collections.emptyList(), transactionContext, lockContext);
+        transactionHook.beforeCommit(rule, databaseType, 
Collections.emptyList(), transactionContext);
         verify(lockContext, times(0)).tryLock(any(), anyLong());
     }
     
@@ -157,15 +157,14 @@ class GlobalClockTransactionHookTest {
         when(rule.getConfiguration().isEnabled()).thenReturn(true);
         
when(rule.getGlobalClockProvider()).thenReturn(Optional.of(globalClockProvider));
         when(globalClockProvider.getCurrentTimestamp()).thenReturn(10L);
-        LockContext lockContext = mock(LockContext.class);
         
when(DatabaseTypedSPILoader.findService(GlobalClockTransactionExecutor.class, 
databaseType)).thenReturn(Optional.of(globalClockTransactionExecutor));
-        transactionHook.beforeCommit(rule, databaseType, 
Collections.emptyList(), transactionContext, lockContext);
+        transactionHook.beforeCommit(rule, databaseType, 
Collections.emptyList(), transactionContext);
         
verify(globalClockTransactionExecutor).sendCommitTimestamp(Collections.emptyList(),
 10L);
     }
     
     @Test
     void assertAfterCommitWhenGlobalClockProviderAbsent() {
-        transactionHook.afterCommit(rule, databaseType, 
Collections.emptyList(), transactionContext, mock(LockContext.class));
+        transactionHook.afterCommit(rule, databaseType, 
Collections.emptyList(), transactionContext);
         verify(globalClockProvider, times(0)).getNextTimestamp();
     }
     
@@ -173,7 +172,7 @@ class GlobalClockTransactionHookTest {
     void assertAfterCommitWhenGlobalClockProviderPresent() {
         when(rule.getConfiguration().isEnabled()).thenReturn(true);
         
when(rule.getGlobalClockProvider()).thenReturn(Optional.of(globalClockProvider));
-        transactionHook.afterCommit(rule, databaseType, 
Collections.emptyList(), transactionContext, mock(LockContext.class));
+        transactionHook.afterCommit(rule, databaseType, 
Collections.emptyList(), transactionContext);
         verify(globalClockProvider).getNextTimestamp();
     }
     
diff --git 
a/kernel/transaction/api/src/main/java/org/apache/shardingsphere/transaction/spi/TransactionHook.java
 
b/kernel/transaction/api/src/main/java/org/apache/shardingsphere/transaction/spi/TransactionHook.java
index 1eeee79a3c7..fd054da921d 100644
--- 
a/kernel/transaction/api/src/main/java/org/apache/shardingsphere/transaction/spi/TransactionHook.java
+++ 
b/kernel/transaction/api/src/main/java/org/apache/shardingsphere/transaction/spi/TransactionHook.java
@@ -18,7 +18,6 @@
 package org.apache.shardingsphere.transaction.spi;
 
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
-import org.apache.shardingsphere.infra.lock.LockContext;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import 
org.apache.shardingsphere.infra.session.connection.transaction.TransactionConnectionContext;
 import org.apache.shardingsphere.infra.spi.annotation.SingletonSPI;
@@ -86,10 +85,9 @@ public interface TransactionHook<T extends 
ShardingSphereRule> extends OrderedSP
      * @param databaseType database type
      * @param connections connections
      * @param transactionContext transaction context
-     * @param lockContext lock context
      * @throws SQLException SQL exception
      */
-    void beforeCommit(T rule, DatabaseType databaseType, 
Collection<Connection> connections, TransactionConnectionContext 
transactionContext, LockContext lockContext) throws SQLException;
+    void beforeCommit(T rule, DatabaseType databaseType, 
Collection<Connection> connections, TransactionConnectionContext 
transactionContext) throws SQLException;
     
     /**
      * Process after committing the transaction.
@@ -98,10 +96,9 @@ public interface TransactionHook<T extends 
ShardingSphereRule> extends OrderedSP
      * @param databaseType database type
      * @param connections connections
      * @param transactionContext transaction context
-     * @param lockContext lock context
      * @throws SQLException SQL exception
      */
-    void afterCommit(T rule, DatabaseType databaseType, Collection<Connection> 
connections, TransactionConnectionContext transactionContext, LockContext 
lockContext) throws SQLException;
+    void afterCommit(T rule, DatabaseType databaseType, Collection<Connection> 
connections, TransactionConnectionContext transactionContext) throws 
SQLException;
     
     /**
      * Whether to need lock when transaction committed.
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
index b83446e15e8..15d79a1c858 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/jdbc/transaction/BackendTransactionManager.java
@@ -112,7 +112,7 @@ public final class BackendTransactionManager implements 
TransactionManager {
                 return;
             }
             for (Entry<ShardingSphereRule, TransactionHook> entry : 
transactionHooks.entrySet()) {
-                entry.getValue().beforeCommit(entry.getKey(), databaseType, 
connection.getCachedConnections().values(), getTransactionContext(), 
lockContext);
+                entry.getValue().beforeCommit(entry.getKey(), databaseType, 
connection.getCachedConnections().values(), getTransactionContext());
             }
             if (TransactionType.LOCAL == 
TransactionUtils.getTransactionType(getTransactionContext()) || null == 
distributedTransactionManager) {
                 localTransactionManager.commit();
@@ -121,7 +121,7 @@ public final class BackendTransactionManager implements 
TransactionManager {
             }
         } finally {
             for (Entry<ShardingSphereRule, TransactionHook> entry : 
transactionHooks.entrySet()) {
-                entry.getValue().afterCommit(entry.getKey(), databaseType, 
connection.getCachedConnections().values(), getTransactionContext(), 
lockContext);
+                entry.getValue().afterCommit(entry.getKey(), databaseType, 
connection.getCachedConnections().values(), getTransactionContext());
             }
             if (isNeedLock) {
                 lockContext.unlock(lockDefinition);

Reply via email to