Class LockHelper

java.lang.Object
org.nuxeo.wopi.lock.LockHelper

public class LockHelper extends Object
Since:
10.3
  • Field Details

    • isWOPIRequest

      protected static ThreadLocal<Boolean> isWOPIRequest
      Flag to know if the request originated from a WOPI client.
  • Method Details

    • addLock

      public static void addLock(String fileId, String lock)
      Stores the given WOPI lock for the given file id with a timestamp for expiration purpose.
    • addLock

      public static void addLock(String fileId, String repository, String docId, String lock)
      See Also:
    • getLock

      public static String getLock(String fileId)
      Gets the WOPI lock stored for the given file id if it exists, returns null otherwise.
    • isLocked

      public static boolean isLocked(String repository, String docId)
      Checks if a WOPI lock is stored for the given repository and doc id, no matter the xpath.
    • isLocked

      public static boolean isLocked(String fileId)
      Checks if a WOPI lock is stored for the given file id.
    • updateLock

      public static void updateLock(String fileId, String lock)
      Updates the WOPI lock stored for the given file id with the given lock and a fresh timestamp.
    • refreshLock

      public static void refreshLock(String fileId)
      Updates the WOPI lock stored for the given file id with a fresh timestamp.
    • removeLock

      public static void removeLock(String fileId)
      Removes the WOPI lock stored for the given file id.
    • removeLocks

      public static void removeLocks(String repository, String docId)
      Removes all the WOPI locks stored for the given repository and doc id.
    • doPrivilegedOnLockDirectory

      public static void doPrivilegedOnLockDirectory(Consumer<Session> consumer)
      Performs the given consumer with a privileged session on the lock directory.
    • doPrivilegedOnLockDirectory

      public static <R> R doPrivilegedOnLockDirectory(Function<Session,R> function)
      Applies the given function with a privileged session on the lock directory.
    • getExpiredLocksByRepository

      public static Map<String,List<DocumentModel>> getExpiredLocksByRepository(Session session)
      Returns the list of expired stored WOPI locks according to the Constants.LOCK_TTL for each repository.

      The given session must be privileged.

    • isWOPIRequest

      public static boolean isWOPIRequest()
      Returns true if the request originated from a WOPI client.
    • flagWOPIRequest

      public static void flagWOPIRequest()
      Flags the request as originating from a WOPI client.
    • unflagWOPIRequest

      public static void unflagWOPIRequest()
      Unflags the request as originating from a WOPI client.
    • getExpiredLocks

      protected static Map<String,List<DocumentModel>> getExpiredLocks(Session session, String repository)
    • openLockDirectorySession

      protected static Session openLockDirectorySession()