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