Package org.infinispan.lock.api
Interface ClusteredLockManager
-
public interface ClusteredLockManagerProvides the API to define, create and remove ClusteredLocks.- Since:
- 9.2
- Author:
- Katia Aresti, karesti@redhat.com
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description booleandefineLock(String name)Defines a lock with the specific name and the defaultClusteredLockConfiguration.booleandefineLock(String name, ClusteredLockConfiguration configuration)Defines a lock with the specific name andClusteredLockConfiguration.CompletableFuture<Boolean>forceRelease(String name)Releases - or unlocks - aClusteredLockif such exists.ClusteredLockget(String name)Get’s aClusteredLockby it’s name.ClusteredLockConfigurationgetConfiguration(String name)Returns the configuration of aClusteredLock, if such exists.This method throwsClusteredLockExceptionif the lock is not not defined.booleanisDefined(String name)Checks if a lock is already defined.CompletableFuture<Boolean>remove(String name)Removes aClusteredLockif such exists.
-
-
-
Method Detail
-
defineLock
boolean defineLock(String name)
Defines a lock with the specific name and the defaultClusteredLockConfiguration. It does not overwrite existing configurations. Returns true if successfully defined or false if the lock is already defined or any other failure.- Parameters:
name- , the name of the lock- Returns:
- true if the lock was successfully defined
-
defineLock
boolean defineLock(String name, ClusteredLockConfiguration configuration)
Defines a lock with the specific name andClusteredLockConfiguration. It does not overwrite existing configurations. Returns true if successfully defined or false if the lock is already defined or any other failure.- Parameters:
name- , the name of the lockconfiguration- , aClusteredLockConfigurationobject with the configuration of the lock- Returns:
- true if the lock was successfully defined
-
get
ClusteredLock get(String name)
Get’s aClusteredLockby it’s name. This method throwsClusteredLockExceptionif the lock is not not defined. A call ofdefineLock(java.lang.String)must be done at least once in the cluster. This method will return the same lock object depending on theOwnershipLevel. If theOwnershipLevelisOwnershipLevel.NODE, it wll return the same instance perClusteredLockManagerIf theOwnershipLevelisOwnershipLevel.INSTANCE, it wll return a new instance per call.- Parameters:
name- , the name of the lock- Returns:
ClusteredLockinstance
-
getConfiguration
ClusteredLockConfiguration getConfiguration(String name)
Returns the configuration of aClusteredLock, if such exists.This method throwsClusteredLockExceptionif the lock is not not defined. A call ofdefineLock(java.lang.String)must be done at least once in the cluster.- Parameters:
name- , the name of the lock- Returns:
ClusteredLockConfigurationfor this lock
-
isDefined
boolean isDefined(String name)
Checks if a lock is already defined.- Parameters:
name- , the lock name- Returns:
trueif this lock is defined
-
remove
CompletableFuture<Boolean> remove(String name)
Removes aClusteredLockif such exists.- Parameters:
name- , the name of the lock- Returns:
trueif the lock is removed
-
forceRelease
CompletableFuture<Boolean> forceRelease(String name)
Releases - or unlocks - aClusteredLockif such exists. This method is used when we just want to force the release the lock no matter who is holding it at a given time. Calling this method may cause concurrency issues and has to be used in exceptional situations.- Parameters:
name- , the name of the lock- Returns:
trueif the lock has been released
-
-