Class LockHelper


  • public class LockHelper
    extends Object
    Since:
    10.3
    • Field Detail

      • isWOPIRequest

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

      • 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.
      • 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.
      • openLockDirectorySession

        protected static Session openLockDirectorySession()