Class LockManager


  • @FileSystemScoped
    public class LockManager
    extends Object
    Provides a path-based locking mechanism as described by Ritik Malhotra here.

    Usage Example 1:

         try (PathLock pathLock = lockManager.createPathLock("/foo/bar/baz").forReading(); // path is not manipulated, thus read-locking
              DataLock dataLock = pathLock.lockDataForWriting()) { // content is manipulated, thus write-locking
              // write to file
         }
     

    Usage Example 2:

         try (PathLock srcPathLock = lockManager.createPathLock("/foo/bar/original").forReading();
              DataLock srcDataLock = srcPathLock.lockDataForReading(); // content will only be read, thus read-locking
              PathLock dstPathLock = lockManager.createPathLock("/foo/bar/copy").forWriting(); // file will be created, thus write-locking
              DataLock dstDataLock = srcPathLock.lockDataForWriting()) {
              // copy from /foo/bar/original to /foo/bar/copy
         }
     
    • Constructor Detail

      • LockManager

        @Inject
        public LockManager()