org.springframework.integration.file.locking
Class NioFileLocker

java.lang.Object
  extended by org.springframework.integration.file.filters.AbstractFileListFilter<java.io.File>
      extended by org.springframework.integration.file.locking.AbstractFileLockerFilter
          extended by org.springframework.integration.file.locking.NioFileLocker
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
NioFileLocker()
           
 
Method Summary
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NioFileLocker

public NioFileLocker()
Method Detail

lock

public boolean lock(java.io.File fileToLock)
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

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.

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