Class NioFileLocker

java.lang.Object
All Implemented Interfaces:
FileLocker, FileListFilter<java.io.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
  • Constructor Summary

    Constructors 
    Constructor Description
    NioFileLocker()  
  • Method Summary

    Modifier and Type Method Description
    boolean isLockable​(java.io.File file)
    Checks whether the file passed in can be locked by this locker.
    boolean lock​(java.io.File fileToLock)
    Tries to lock the given file and returns true if it was successful, false otherwise.
    void unlock​(java.io.File fileToUnlock)
    Unlocks the given file.

    Methods inherited from class org.springframework.integration.file.locking.AbstractFileLockerFilter

    accept

    Methods inherited from class org.springframework.integration.file.filters.AbstractFileListFilter

    filterFiles, supportsSingleFileFiltering

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.springframework.integration.file.filters.FileListFilter

    isForRecursion
  • Constructor Details

  • Method Details

    • lock

      public boolean lock​(java.io.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​(java.io.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​(java.io.File fileToUnlock)
      Description copied from interface: FileLocker
      Unlocks the given file.
      Parameters:
      fileToUnlock - the file that should be unlocked according to this locker