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.

Since:
2.0
Author:
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.
      Parameters:
      fileToLock - the file that should be locked according to this locker
      Returns:
      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.
      Parameters:
      file - The file.
      Returns:
      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.
      Parameters:
      fileToUnlock - the file that should be unlocked according to this locker