Class NioFileLocker

All Implemented Interfaces:
FileLocker, FileListFilter<File>

public class NioFileLocker extends AbstractFileLockerFilter
File locking strategy that uses java.nio. The locks taken by FileChannel are shared with all the threads in a single JVM, so this locking strategy does not prevent files being picked up multiple times within the same JVM. FileReadingMessageSources sharing a Locker will not pick up the same files.

This implementation will acquire or create a FileLock for the given file. Caching locks might be expensive, so this locking strategy is not recommended for scenarios where many files are accessed in parallel.

Iwein Fuld, Mark Fisher, Gary Russell
  • Constructor Details

    • NioFileLocker

      public NioFileLocker()
  • Method Details

    • lock

      public boolean lock(File fileToLock)
      Description copied from interface: FileLocker
      Tries to lock the given file and returns true if it was successful, false otherwise.
      fileToLock - the file that should be locked according to this locker
      true if successful.
    • isLockable

      public boolean isLockable(File file)
      Description copied from interface: FileLocker
      Checks whether the file passed in can be locked by this locker. This method never changes the locked state.
      file - The file.
      true if the file was locked by another locker than this locker
    • unlock

      public void unlock(File fileToUnlock)
      Description copied from interface: FileLocker
      Unlocks the given file.
      fileToUnlock - the file that should be unlocked according to this locker