You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/11/04 07:59:34 UTC

[shardingsphere] branch master updated: Add generic for LockPersistService (#21956)

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

duanzhengqiang 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 6c72eed2154 Add generic for LockPersistService (#21956)
6c72eed2154 is described below

commit 6c72eed2154051485a1705626f07787a9159042d
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Nov 4 15:59:27 2022 +0800

    Add generic for LockPersistService (#21956)
---
 .../org/apache/shardingsphere/mode/lock/LockPersistService.java   | 8 +++++---
 .../manager/cluster/coordinator/ClusterLockPersistService.java    | 8 ++++----
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/LockPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/LockPersistService.java
index 7f8510388ee..181a4f611d7 100644
--- a/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/LockPersistService.java
+++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/lock/LockPersistService.java
@@ -21,8 +21,10 @@ import org.apache.shardingsphere.infra.lock.LockDefinition;
 
 /**
  * Lock persist service.
+ * 
+ * @param <T> type of lock definition
  */
-public interface LockPersistService {
+public interface LockPersistService<T extends LockDefinition> {
     
     /**
      * Try lock.
@@ -31,12 +33,12 @@ public interface LockPersistService {
      * @param timeoutMillis timeout millis
      * @return is locked or not
      */
-    boolean tryLock(LockDefinition lockDefinition, long timeoutMillis);
+    boolean tryLock(T lockDefinition, long timeoutMillis);
     
     /**
      * Unlock.
      *
      * @param lockDefinition lock definition
      */
-    void unlock(LockDefinition lockDefinition);
+    void unlock(T lockDefinition);
 }
diff --git a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterLockPersistService.java b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterLockPersistService.java
index eb9e28fc644..0bed9956378 100644
--- a/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterLockPersistService.java
+++ b/mode/type/cluster/core/src/main/java/org/apache/shardingsphere/mode/manager/cluster/coordinator/ClusterLockPersistService.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.mode.manager.cluster.coordinator;
 
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.infra.lock.LockDefinition;
+import org.apache.shardingsphere.mode.lock.GlobalLockDefinition;
 import org.apache.shardingsphere.mode.lock.LockPersistService;
 import org.apache.shardingsphere.mode.repository.cluster.lock.holder.DistributedLockHolder;
 
@@ -26,17 +26,17 @@ import org.apache.shardingsphere.mode.repository.cluster.lock.holder.Distributed
  * Cluster lock persist service.
  */
 @RequiredArgsConstructor
-public final class ClusterLockPersistService implements LockPersistService {
+public final class ClusterLockPersistService implements LockPersistService<GlobalLockDefinition> {
     
     private final DistributedLockHolder distributedLockHolder;
     
     @Override
-    public boolean tryLock(final LockDefinition lockDefinition, final long timeoutMillis) {
+    public boolean tryLock(final GlobalLockDefinition lockDefinition, final long timeoutMillis) {
         return distributedLockHolder.getDistributedLock(lockDefinition.getLockKey()).tryLock(timeoutMillis);
     }
     
     @Override
-    public void unlock(final LockDefinition lockDefinition) {
+    public void unlock(final GlobalLockDefinition lockDefinition) {
         distributedLockHolder.getDistributedLock(lockDefinition.getLockKey()).unlock();
     }
 }