From 08e5be5ffdd66e822af4b9a261336d594c193f8a Mon Sep 17 00:00:00 2001 From: Philipp Heckel Date: Sat, 1 Dec 2012 14:59:37 +0100 Subject: [PATCH 001/765] Init --- .classpath | 9 + .../SyncanyCore build.xml [Builder].launch | 19 + .project | 27 + .settings/org.eclipse.jdt.core.prefs | 12 + .settings/org.eclipse.jdt.ui.prefs | 4 + Instructions.txt | 41 + build.xml | 132 +++ config.json | 16 + ivy.xml | 59 ++ ivysettings.xml | 22 + local/jpathwatch-libs-only-0.94.jar | Bin 0 -> 1253544 bytes .../nio/file/ClosedWatchServiceException.java | 38 + src/name/pachler/nio/file/FileSystem.java | 51 ++ src/name/pachler/nio/file/FileSystems.java | 57 ++ .../nio/file/NotDirectoryException.java | 33 + src/name/pachler/nio/file/Path.java | 60 ++ src/name/pachler/nio/file/Paths.java | 54 ++ .../nio/file/StandardWatchEventKind.java | 72 ++ src/name/pachler/nio/file/WatchEvent.java | 99 ++ src/name/pachler/nio/file/WatchKey.java | 85 ++ src/name/pachler/nio/file/WatchService.java | 69 ++ src/name/pachler/nio/file/Watchable.java | 84 ++ .../nio/file/contrib/BufferedWatcher.java | 747 ++++++++++++++++ .../nio/file/contrib/ExtendedWatchEvent.java | 57 ++ .../nio/file/contrib/RenamePathContext.java | 46 + .../nio/file/contrib/RenameWatchEvent.java | 54 ++ .../file/contrib/RenameWatchEventKind.java | 44 + .../nio/file/contrib/WatchListener.java | 35 + .../pachler/nio/file/ext/Bootstrapper.java | 164 ++++ .../nio/file/ext/ExtendedWatchEventKind.java | 85 ++ .../file/ext/ExtendedWatchEventModifier.java | 81 ++ src/name/pachler/nio/file/ext/package.html | 20 + src/name/pachler/nio/file/impl/BSD.java | 258 ++++++ .../nio/file/impl/BSDPathWatchService.java | 423 +++++++++ .../nio/file/impl/CloseableBlockingQueue.java | 173 ++++ src/name/pachler/nio/file/impl/Linux.java | 104 +++ .../file/impl/LinuxMovePathWatchEvent.java | 37 + .../nio/file/impl/LinuxPathWatchKey.java | 36 + .../nio/file/impl/LinuxPathWatchService.java | 504 +++++++++++ .../nio/file/impl/NativeLibLoader.java | 420 +++++++++ src/name/pachler/nio/file/impl/PathImpl.java | 111 +++ .../pachler/nio/file/impl/PathWatchEvent.java | 62 ++ .../nio/file/impl/PathWatchEventKind.java | 44 + .../nio/file/impl/PathWatchEventModifier.java | 42 + .../pachler/nio/file/impl/PathWatchKey.java | 114 +++ .../nio/file/impl/PathWatchService.java | 110 +++ .../nio/file/impl/PollingPathWatchKey.java | 263 ++++++ .../file/impl/PollingPathWatchService.java | 217 +++++ src/name/pachler/nio/file/impl/Solaris.java | 79 ++ src/name/pachler/nio/file/impl/Unix.java | 225 +++++ .../pachler/nio/file/impl/VoidWatchEvent.java | 56 ++ .../nio/file/impl/VoidWatchEventKind.java | 42 + src/name/pachler/nio/file/impl/Windows.java | 304 +++++++ .../file/impl/WindowsPathWatchService.java | 525 +++++++++++ src/name/pachler/nio/file/package.html | 48 + src/org/syncany/Application.java | 140 +++ src/org/syncany/Constants.java | 95 ++ src/org/syncany/Syncany.java | 140 +++ .../CommunicationController.java | 294 ++++++ .../communication/CommunicationSocket.java | 149 ++++ src/org/syncany/config/Cache.java | 116 +++ src/org/syncany/config/Encryption.java | 228 +++++ src/org/syncany/config/Profile.java | 100 +++ src/org/syncany/config/Repository.java | 120 +++ src/org/syncany/config/Settings.java | 121 +++ src/org/syncany/connection/Downloader.java | 57 ++ src/org/syncany/connection/Uploader.java | 322 +++++++ .../plugins/AbstractTransferManager.java | 66 ++ .../connection/plugins/Connection.java | 31 + .../connection/plugins/PluginInfo.java | 36 + .../syncany/connection/plugins/Plugins.java | 145 +++ .../connection/plugins/TransferManager.java | 140 +++ .../plugins/local/LocalConnection.java | 77 ++ .../plugins/local/LocalPluginInfo.java | 51 ++ .../plugins/local/LocalTransferManager.java | 185 ++++ src/org/syncany/db/ByteArray.java | 168 ++++ src/org/syncany/db/ChunkCache.java | 228 +++++ src/org/syncany/db/ChunkMapper.java | 69 ++ src/org/syncany/db/CloneChunk.java | 154 ++++ src/org/syncany/db/CloneClient.java | 138 +++ src/org/syncany/db/CloneFile.java | 483 ++++++++++ src/org/syncany/db/CloneFileFilter.java | 27 + src/org/syncany/db/CloneFileTree.java | 255 ++++++ src/org/syncany/db/CloneFileTreeItem.java | 129 +++ .../syncany/db/CloneFileTreeItemHashMap.java | 54 ++ src/org/syncany/db/Database.java | 543 +++++++++++ src/org/syncany/db/DatabaseIO.java | 125 +++ src/org/syncany/db/DeepSearchOperation.java | 28 + src/org/syncany/index/Indexer.java | 240 +++++ .../index/requests/CheckIndexRequest.java | 171 ++++ .../index/requests/DeleteIndexRequest.java | 133 +++ .../syncany/index/requests/IndexRequest.java | 35 + .../index/requests/MoveIndexRequest.java | 160 ++++ .../index/requests/NewIndexRequest.java | 363 ++++++++ src/org/syncany/testabc.java | 68 ++ .../util/AppendableObjectOutputStream.java | 17 + src/org/syncany/util/ArrayUtil.java | 45 + src/org/syncany/util/BitmapUtil.java | 196 ++++ src/org/syncany/util/ClasspathUtil.java | 209 +++++ src/org/syncany/util/DateUtil.java | 84 ++ src/org/syncany/util/FileLister.java | 205 +++++ src/org/syncany/util/FileUtil.java | 469 ++++++++++ src/org/syncany/util/ImageUtil.java | 134 +++ src/org/syncany/util/NumberUtil.java | 44 + src/org/syncany/util/StringUtil.java | 167 ++++ .../util/chunk/Adler32Fingerprinter.java | 178 ++++ src/org/syncany/util/chunk/Assembler.java | 111 +++ src/org/syncany/util/chunk/Chunk.java | 52 ++ src/org/syncany/util/chunk/Chunker.java | 75 ++ .../syncany/util/chunk/CustomMultiChunk.java | 108 +++ src/org/syncany/util/chunk/Fingerprinter.java | 44 + src/org/syncany/util/chunk/MultiChunk.java | 84 ++ .../syncany/util/chunk/RollingChecksum.java | 174 ++++ src/org/syncany/util/chunk/TTTDChunker.java | 234 +++++ .../util/exceptions/CacheException.java | 43 + .../util/exceptions/CloneTreeException.java | 42 + .../util/exceptions/CommandException.java | 41 + .../CouldNotApplyUpdateException.java | 42 + .../util/exceptions/DatabaseException.java | 41 + .../util/exceptions/EncryptionException.java | 41 + .../InconsistentFileSystemException.java | 40 + .../exceptions/InitializationException.java | 41 + .../InvalidRepositoryException.java | 40 + .../LocalFileNotFoundException.java | 43 + .../NoRepositoryFoundException.java | 42 + .../RemoteFileNotFoundException.java | 41 + .../exceptions/RepositoryFoundException.java | 42 + .../exceptions/StorageConnectException.java | 40 + .../util/exceptions/StorageException.java | 39 + .../syncany/util/io/CipherEOFException.java | 16 + .../util/io/CipherInputStreamUtils.java | 34 + .../syncany/util/io/ThrottledInputStream.java | 61 ++ .../syncany/util/logging/LogFormatter.java | 73 ++ .../watch/local/CommonLocalWatcher.java | 157 ++++ src/org/syncany/watch/local/LocalWatcher.java | 135 +++ .../syncany/watch/remote/ChangeManager.java | 455 ++++++++++ src/org/syncany/watch/remote/FileHistory.java | 154 ++++ src/org/syncany/watch/remote/FileUpdate.java | 414 +++++++++ .../syncany/watch/remote/RemoteWatcher.java | 558 ++++++++++++ src/org/syncany/watch/remote/UpdateQueue.java | 842 ++++++++++++++++++ .../remote/files/DatedClientRemoteFile.java | 73 ++ .../watch/remote/files/RemoteFile.java | 80 ++ .../remote/files/StructuredFileList.java | 98 ++ .../watch/remote/files/UpdateFile.java | 392 ++++++++ tests/org/syncany/tests/AllTests.java | 34 + tests/org/syncany/tests/Cleaner.java | 15 + tests/org/syncany/tests/FileTestHelper.java | 304 +++++++ tests/org/syncany/tests/TestSettings.java | 257 ++++++ .../org/syncany/tests/chunk/ChunkerTest.java | 486 ++++++++++ .../CommunicationSocketTest.java | 87 ++ .../tests/communication/TestServer.java | 49 + .../syncany/tests/config/EncryptionTest.java | 125 +++ .../syncany/tests/connection/UploadTest.java | 123 +++ .../syncany/tests/db/ChunkCacheFileTest.java | 66 ++ .../syncany/tests/db/CloneFileTreeTest.java | 83 ++ tests/org/syncany/tests/db/ReadDBTest.java | 59 ++ .../org/syncany/tests/index/IndexerTest.java | 562 ++++++++++++ .../tests/scenario/MainSyncanyDaemon.java | 36 + .../org/syncany/tests/scenario/Scenario1.java | 70 ++ .../org/syncany/tests/scenario/Scenario2.java | 61 ++ .../tests/scenario/ScenarioTestHelper.java | 57 ++ .../watcher/local/BufferedWatcherTest.java | 214 +++++ .../tests/watcher/local/LocalWatcherTest.java | 132 +++ .../watcher/remote/ChangeManagerTest.java | 109 +++ 164 files changed, 22476 insertions(+) create mode 100644 .classpath create mode 100644 .externalToolBuilders/SyncanyCore build.xml [Builder].launch create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.jdt.ui.prefs create mode 100644 Instructions.txt create mode 100644 build.xml create mode 100644 config.json create mode 100644 ivy.xml create mode 100644 ivysettings.xml create mode 100644 local/jpathwatch-libs-only-0.94.jar create mode 100644 src/name/pachler/nio/file/ClosedWatchServiceException.java create mode 100644 src/name/pachler/nio/file/FileSystem.java create mode 100644 src/name/pachler/nio/file/FileSystems.java create mode 100644 src/name/pachler/nio/file/NotDirectoryException.java create mode 100644 src/name/pachler/nio/file/Path.java create mode 100644 src/name/pachler/nio/file/Paths.java create mode 100644 src/name/pachler/nio/file/StandardWatchEventKind.java create mode 100644 src/name/pachler/nio/file/WatchEvent.java create mode 100644 src/name/pachler/nio/file/WatchKey.java create mode 100644 src/name/pachler/nio/file/WatchService.java create mode 100644 src/name/pachler/nio/file/Watchable.java create mode 100644 src/name/pachler/nio/file/contrib/BufferedWatcher.java create mode 100644 src/name/pachler/nio/file/contrib/ExtendedWatchEvent.java create mode 100644 src/name/pachler/nio/file/contrib/RenamePathContext.java create mode 100644 src/name/pachler/nio/file/contrib/RenameWatchEvent.java create mode 100644 src/name/pachler/nio/file/contrib/RenameWatchEventKind.java create mode 100644 src/name/pachler/nio/file/contrib/WatchListener.java create mode 100644 src/name/pachler/nio/file/ext/Bootstrapper.java create mode 100644 src/name/pachler/nio/file/ext/ExtendedWatchEventKind.java create mode 100644 src/name/pachler/nio/file/ext/ExtendedWatchEventModifier.java create mode 100644 src/name/pachler/nio/file/ext/package.html create mode 100644 src/name/pachler/nio/file/impl/BSD.java create mode 100644 src/name/pachler/nio/file/impl/BSDPathWatchService.java create mode 100644 src/name/pachler/nio/file/impl/CloseableBlockingQueue.java create mode 100644 src/name/pachler/nio/file/impl/Linux.java create mode 100644 src/name/pachler/nio/file/impl/LinuxMovePathWatchEvent.java create mode 100644 src/name/pachler/nio/file/impl/LinuxPathWatchKey.java create mode 100755 src/name/pachler/nio/file/impl/LinuxPathWatchService.java create mode 100644 src/name/pachler/nio/file/impl/NativeLibLoader.java create mode 100644 src/name/pachler/nio/file/impl/PathImpl.java create mode 100644 src/name/pachler/nio/file/impl/PathWatchEvent.java create mode 100644 src/name/pachler/nio/file/impl/PathWatchEventKind.java create mode 100644 src/name/pachler/nio/file/impl/PathWatchEventModifier.java create mode 100644 src/name/pachler/nio/file/impl/PathWatchKey.java create mode 100644 src/name/pachler/nio/file/impl/PathWatchService.java create mode 100644 src/name/pachler/nio/file/impl/PollingPathWatchKey.java create mode 100644 src/name/pachler/nio/file/impl/PollingPathWatchService.java create mode 100644 src/name/pachler/nio/file/impl/Solaris.java create mode 100755 src/name/pachler/nio/file/impl/Unix.java create mode 100644 src/name/pachler/nio/file/impl/VoidWatchEvent.java create mode 100644 src/name/pachler/nio/file/impl/VoidWatchEventKind.java create mode 100644 src/name/pachler/nio/file/impl/Windows.java create mode 100755 src/name/pachler/nio/file/impl/WindowsPathWatchService.java create mode 100644 src/name/pachler/nio/file/package.html create mode 100644 src/org/syncany/Application.java create mode 100644 src/org/syncany/Constants.java create mode 100644 src/org/syncany/Syncany.java create mode 100644 src/org/syncany/communication/CommunicationController.java create mode 100644 src/org/syncany/communication/CommunicationSocket.java create mode 100644 src/org/syncany/config/Cache.java create mode 100644 src/org/syncany/config/Encryption.java create mode 100644 src/org/syncany/config/Profile.java create mode 100644 src/org/syncany/config/Repository.java create mode 100644 src/org/syncany/config/Settings.java create mode 100644 src/org/syncany/connection/Downloader.java create mode 100644 src/org/syncany/connection/Uploader.java create mode 100644 src/org/syncany/connection/plugins/AbstractTransferManager.java create mode 100644 src/org/syncany/connection/plugins/Connection.java create mode 100644 src/org/syncany/connection/plugins/PluginInfo.java create mode 100644 src/org/syncany/connection/plugins/Plugins.java create mode 100644 src/org/syncany/connection/plugins/TransferManager.java create mode 100644 src/org/syncany/connection/plugins/local/LocalConnection.java create mode 100644 src/org/syncany/connection/plugins/local/LocalPluginInfo.java create mode 100644 src/org/syncany/connection/plugins/local/LocalTransferManager.java create mode 100644 src/org/syncany/db/ByteArray.java create mode 100644 src/org/syncany/db/ChunkCache.java create mode 100644 src/org/syncany/db/ChunkMapper.java create mode 100644 src/org/syncany/db/CloneChunk.java create mode 100644 src/org/syncany/db/CloneClient.java create mode 100644 src/org/syncany/db/CloneFile.java create mode 100644 src/org/syncany/db/CloneFileFilter.java create mode 100644 src/org/syncany/db/CloneFileTree.java create mode 100644 src/org/syncany/db/CloneFileTreeItem.java create mode 100644 src/org/syncany/db/CloneFileTreeItemHashMap.java create mode 100644 src/org/syncany/db/Database.java create mode 100644 src/org/syncany/db/DatabaseIO.java create mode 100644 src/org/syncany/db/DeepSearchOperation.java create mode 100644 src/org/syncany/index/Indexer.java create mode 100644 src/org/syncany/index/requests/CheckIndexRequest.java create mode 100644 src/org/syncany/index/requests/DeleteIndexRequest.java create mode 100644 src/org/syncany/index/requests/IndexRequest.java create mode 100644 src/org/syncany/index/requests/MoveIndexRequest.java create mode 100644 src/org/syncany/index/requests/NewIndexRequest.java create mode 100644 src/org/syncany/testabc.java create mode 100644 src/org/syncany/util/AppendableObjectOutputStream.java create mode 100644 src/org/syncany/util/ArrayUtil.java create mode 100644 src/org/syncany/util/BitmapUtil.java create mode 100644 src/org/syncany/util/ClasspathUtil.java create mode 100644 src/org/syncany/util/DateUtil.java create mode 100644 src/org/syncany/util/FileLister.java create mode 100644 src/org/syncany/util/FileUtil.java create mode 100644 src/org/syncany/util/ImageUtil.java create mode 100644 src/org/syncany/util/NumberUtil.java create mode 100644 src/org/syncany/util/StringUtil.java create mode 100644 src/org/syncany/util/chunk/Adler32Fingerprinter.java create mode 100644 src/org/syncany/util/chunk/Assembler.java create mode 100644 src/org/syncany/util/chunk/Chunk.java create mode 100644 src/org/syncany/util/chunk/Chunker.java create mode 100644 src/org/syncany/util/chunk/CustomMultiChunk.java create mode 100644 src/org/syncany/util/chunk/Fingerprinter.java create mode 100644 src/org/syncany/util/chunk/MultiChunk.java create mode 100644 src/org/syncany/util/chunk/RollingChecksum.java create mode 100644 src/org/syncany/util/chunk/TTTDChunker.java create mode 100644 src/org/syncany/util/exceptions/CacheException.java create mode 100644 src/org/syncany/util/exceptions/CloneTreeException.java create mode 100644 src/org/syncany/util/exceptions/CommandException.java create mode 100644 src/org/syncany/util/exceptions/CouldNotApplyUpdateException.java create mode 100644 src/org/syncany/util/exceptions/DatabaseException.java create mode 100644 src/org/syncany/util/exceptions/EncryptionException.java create mode 100644 src/org/syncany/util/exceptions/InconsistentFileSystemException.java create mode 100644 src/org/syncany/util/exceptions/InitializationException.java create mode 100644 src/org/syncany/util/exceptions/InvalidRepositoryException.java create mode 100644 src/org/syncany/util/exceptions/LocalFileNotFoundException.java create mode 100644 src/org/syncany/util/exceptions/NoRepositoryFoundException.java create mode 100644 src/org/syncany/util/exceptions/RemoteFileNotFoundException.java create mode 100644 src/org/syncany/util/exceptions/RepositoryFoundException.java create mode 100644 src/org/syncany/util/exceptions/StorageConnectException.java create mode 100644 src/org/syncany/util/exceptions/StorageException.java create mode 100644 src/org/syncany/util/io/CipherEOFException.java create mode 100644 src/org/syncany/util/io/CipherInputStreamUtils.java create mode 100644 src/org/syncany/util/io/ThrottledInputStream.java create mode 100644 src/org/syncany/util/logging/LogFormatter.java create mode 100644 src/org/syncany/watch/local/CommonLocalWatcher.java create mode 100644 src/org/syncany/watch/local/LocalWatcher.java create mode 100644 src/org/syncany/watch/remote/ChangeManager.java create mode 100644 src/org/syncany/watch/remote/FileHistory.java create mode 100644 src/org/syncany/watch/remote/FileUpdate.java create mode 100644 src/org/syncany/watch/remote/RemoteWatcher.java create mode 100644 src/org/syncany/watch/remote/UpdateQueue.java create mode 100644 src/org/syncany/watch/remote/files/DatedClientRemoteFile.java create mode 100644 src/org/syncany/watch/remote/files/RemoteFile.java create mode 100644 src/org/syncany/watch/remote/files/StructuredFileList.java create mode 100644 src/org/syncany/watch/remote/files/UpdateFile.java create mode 100644 tests/org/syncany/tests/AllTests.java create mode 100644 tests/org/syncany/tests/Cleaner.java create mode 100644 tests/org/syncany/tests/FileTestHelper.java create mode 100644 tests/org/syncany/tests/TestSettings.java create mode 100644 tests/org/syncany/tests/chunk/ChunkerTest.java create mode 100644 tests/org/syncany/tests/communication/CommunicationSocketTest.java create mode 100644 tests/org/syncany/tests/communication/TestServer.java create mode 100644 tests/org/syncany/tests/config/EncryptionTest.java create mode 100644 tests/org/syncany/tests/connection/UploadTest.java create mode 100644 tests/org/syncany/tests/db/ChunkCacheFileTest.java create mode 100644 tests/org/syncany/tests/db/CloneFileTreeTest.java create mode 100644 tests/org/syncany/tests/db/ReadDBTest.java create mode 100644 tests/org/syncany/tests/index/IndexerTest.java create mode 100644 tests/org/syncany/tests/scenario/MainSyncanyDaemon.java create mode 100644 tests/org/syncany/tests/scenario/Scenario1.java create mode 100644 tests/org/syncany/tests/scenario/Scenario2.java create mode 100644 tests/org/syncany/tests/scenario/ScenarioTestHelper.java create mode 100644 tests/org/syncany/tests/watcher/local/BufferedWatcherTest.java create mode 100644 tests/org/syncany/tests/watcher/local/LocalWatcherTest.java create mode 100644 tests/org/syncany/tests/watcher/remote/ChangeManagerTest.java diff --git a/.classpath b/.classpath new file mode 100644 index 00000000..5d8e8e95 --- /dev/null +++ b/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.externalToolBuilders/SyncanyCore build.xml [Builder].launch b/.externalToolBuilders/SyncanyCore build.xml [Builder].launch new file mode 100644 index 00000000..9ce8c27f --- /dev/null +++ b/.externalToolBuilders/SyncanyCore build.xml [Builder].launch @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 00000000..d858e5d4 --- /dev/null +++ b/.project @@ -0,0 +1,27 @@ + + + SyncanyCore + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.ui.externaltools.ExternalToolBuilder + full,incremental, + + + LaunchConfigHandle + <project>/.externalToolBuilders/SyncanyCore build.xml [Builder].launch + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..90df9989 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +#Thu Mar 01 16:46:45 CET 2012 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/.settings/org.eclipse.jdt.ui.prefs b/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 00000000..b3015579 --- /dev/null +++ b/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,4 @@ +#Thu Jan 05 09:16:41 CET 2012 +eclipse.preferences.version=1 +org.eclipse.jdt.ui.javadoc=false +org.eclipse.jdt.ui.text.custom_code_templates= diff --git a/Instructions.txt b/Instructions.txt new file mode 100644 index 00000000..20ec3045 --- /dev/null +++ b/Instructions.txt @@ -0,0 +1,41 @@ + +---------------------------------------------------------------------- + SYNCANY - INSTRUCTIONS +---------------------------------------------------------------------- + +1. svn check out + +2. run build.xml with ant + +3. check paths in config.json and change if needed + +4. java -jar SyncanyCore.jar + + + +---------------------------------------------------------------------- + SYNCANY - INSTRUCTIONS FOR ECLIPSE (Instruction based on Indigo) +---------------------------------------------------------------------- + +1. Set Java JDK to version 6 + Window -> Preferences -> Java -> Installed JREs ... add and select your Java 6 JDK + +2. Get required eclipse svn plugins: + Subclipse 1.6.x Update Site - http://subclipse.tigris.org/update_1.6.x + If SVNKit is not contained, use update site http://eclipse.svnkit.com/1.3.x + Ivy update site http://www.apache.org/dist/ant/ivyde/updatesite + +3. due to JavaHL problems change the svn interface at Window -> Preferences -> Team -> SVN ... "SVN interface" -> Chose "SVNKit" + +4. check out syncany from your svn repository: + * add svn perspective: Window -> Open Perspective -> Other ... Chose "SVN Repository Exploring" + * after adding your repository location in this view, run a checkout of "SyncanyCore" + +5. after checkout configure ivy + * add ivy.xml to Ivy Library (Right-Click on ivy.xml -> "Add Ivy Library...") + * add ivysettings.xml to Ivy settings path: + Windows -> Preferences -> Ivy -> Settings ... Chose "Workspace..." below "Ivy settings path:" and add the ivysettings.xml which is within the workspace + +6. run the build.xml as Ant Build + +7. run Syncany.java as Java Application \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 00000000..640f86ca --- /dev/null +++ b/build.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + Compiling SyncanyCore + + + + + + + + + + Creating Distribution + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config.json b/config.json new file mode 100644 index 00000000..85566923 --- /dev/null +++ b/config.json @@ -0,0 +1,16 @@ +{ + "rootDir" : "syncanyData/root", + "appDir" : "syncanyData/data/applicationData", + "cacheDir" : "syncanyData/data/cache", + "userName" : "UserName", + "machineName" : "MachineName", + "connection" : + { + "type" : "local", + "settings" : {"path" : "syncanyData/repository"} + }, + "encryption" : + { + "pass" : "password" + } +} \ No newline at end of file diff --git a/ivy.xml b/ivy.xml new file mode 100644 index 00000000..95ee6f7a --- /dev/null +++ b/ivy.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ivysettings.xml b/ivysettings.xml new file mode 100644 index 00000000..e3c4cb8e --- /dev/null +++ b/ivysettings.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/local/jpathwatch-libs-only-0.94.jar b/local/jpathwatch-libs-only-0.94.jar new file mode 100644 index 0000000000000000000000000000000000000000..b9bcd187322db9ce86abc6ae621d87a5872cd35c GIT binary patch literal 1253544 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

WAV(Ir`3Al!Y^($}PX=sUkVOTi!SPO!U^X_zFGe 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%0DroHtFJGV(4J4@>f3 zj3;Vi`mbLn-_aJJ1Q+zWXZg0RXtX_L8)=_;F zF3ig1>YdKj9~t>dzo_#xCnMMoG_+xHslWBc;5D-anC@%qDaCuIAxD(j)1Ml?)eT^k^rt2Rs( z2^WEquR3_E9Mwx!NcCvVnh_}3<@Dzqs2-z_LvIu)xy8QHA8G3(ODUOxDM0Xj6P^!||xKTRXaOg8V~A^trwU7{i)c8NkosID7SxD0CDX zl^CL7$+XQhBz=b?3F_Aw3#fMp>M(GBhr^mWOe*Fb(gpZYduw+6u%$BjO4&n~i+HM5ZC2pK)jin8?qjMm7^gZ`#N|u#w+Piu?zM z)`5xqM;jR{XEFiC*m3-8Y~O}GEuup7^eiKd7fGuLm2`R*RS7e0I~aX_P�J2+r$> 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
ta$dU3Wx;=-~=o(tkXLjXk~S?_EN=;L9Uv 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 + * Note that a watch service consumes valuable system resources. + * Make sure that to call WatchService.close() when you don't need it any + * longer; with many instances failure to do so may result in the system running out of + * file descriptors and degraded performance. Typically, you'll only + * need one such instance. + * @return a new watch service instance. + */ + public abstract WatchService newWatchService(); +} diff --git a/src/name/pachler/nio/file/FileSystems.java b/src/name/pachler/nio/file/FileSystems.java new file mode 100644 index 00000000..9bda716a --- /dev/null +++ b/src/name/pachler/nio/file/FileSystems.java @@ -0,0 +1,57 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import name.pachler.nio.file.ext.Bootstrapper; + +/** + * Provides static method to get the default FileSystem object. It is used + * to acquire a WatchService via the provided FileSystem instance. + * Note that this + * class solely exists in jpathwatch to maintain JDK7 source compatibility, + * but only offers small subset of the functionality implemented in JDK7. + * @author count + */ +public abstract class FileSystems { + private static FileSystem defaultfs = new FileSystem(){ + @Override + public WatchService newWatchService() { + return Bootstrapper.newWatchService(); + } + + }; + + private FileSystems(){ + } + + /** + * Gets the default file system. jpathwatch provides this method + * as a means to get a {@link FileSystem} that in turn allows + * to create a {@link WatchService} instance. + * @return the default file system object. + */ + public static FileSystem getDefault(){ + return defaultfs; + } +} diff --git a/src/name/pachler/nio/file/NotDirectoryException.java b/src/name/pachler/nio/file/NotDirectoryException.java new file mode 100644 index 00000000..de4f7d65 --- /dev/null +++ b/src/name/pachler/nio/file/NotDirectoryException.java @@ -0,0 +1,33 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +/** + * Indicates that a file system reference was given that references a file + * type that is not a directory, as the invoked method had expected. + * @author count + */ +public class NotDirectoryException { + +} diff --git a/src/name/pachler/nio/file/Path.java b/src/name/pachler/nio/file/Path.java new file mode 100644 index 00000000..e4ffa5c8 --- /dev/null +++ b/src/name/pachler/nio/file/Path.java @@ -0,0 +1,60 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import java.io.IOException; +import name.pachler.nio.file.WatchEvent.Kind; +import name.pachler.nio.file.WatchEvent.Modifier; + +/** + * This class represents an abstract Path object that a WatchService can + * operate on.
+ * Note that Path is a new way of representing file system paths in JDK7 and + * is included here to provide source level compatibility. This implementation + * only uses it as a wrapper for java.io.File.
+ * To create a new Path instance, either use the Bootstrapper.newPath() + * or Paths. + * @author count + */ +public abstract class Path implements Watchable { + + protected Path(){ + } + + @Override + public abstract boolean equals(Object obj); + + @Override + public abstract int hashCode(); + + public abstract WatchKey register(WatchService watcher, Kind... events) throws IOException; + + public abstract WatchKey register(WatchService watcher, Kind[] events, Modifier... modifiers) throws IOException; + + public abstract Path resolve(Path other); + + @Override + public abstract String toString(); + +} diff --git a/src/name/pachler/nio/file/Paths.java b/src/name/pachler/nio/file/Paths.java new file mode 100644 index 00000000..2492f6ee --- /dev/null +++ b/src/name/pachler/nio/file/Paths.java @@ -0,0 +1,54 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import java.io.File; +import java.net.URI; +import name.pachler.nio.file.ext.Bootstrapper; + +/** + * Factory class for Path instances. + * @author uwep + */ +public abstract class Paths { + private Paths(){ + } + + /** + * Creates a new Path instance from the given file system path string. + * @param path the path string + * @return a new Path instance representing the path string + */ + public static Path get(String path){ + return Bootstrapper.newPath(new File(path)); + } + + // JDK7 also provides a method to convert a URI into a path, but + // we won't support that for now (I can't see this being helpful, and + // would just require more testing +/* public static Path get(URI uri){ + return Bootstrapper.newPath(new File(uri)); + } + */ +} diff --git a/src/name/pachler/nio/file/StandardWatchEventKind.java b/src/name/pachler/nio/file/StandardWatchEventKind.java new file mode 100644 index 00000000..1879b4e5 --- /dev/null +++ b/src/name/pachler/nio/file/StandardWatchEventKind.java @@ -0,0 +1,72 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import name.pachler.nio.file.ext.ExtendedWatchEventKind; +import name.pachler.nio.file.impl.VoidWatchEventKind; +import name.pachler.nio.file.impl.PathWatchEventKind; + +/** + * This class contains the standard watch event kinds, which are basically + * flags that indicate which events a WatchService should report when a + * Watchable is registered with a WatchService. + * The kinds are also used to indicate the kind of event on events that + * are reported back.
+ * Note that the event kinds defined in this class are supported on all platforms + * @author count + * @see Watchable#register + * @see WatchEvent$Kind + */ +public class StandardWatchEventKind { + /** + * Indicates that a file has been created under the watched path. + */ + public static final WatchEvent.Kind ENTRY_CREATE = new PathWatchEventKind("ENTRY_CREATE"); + /** + * Indicates that a file has been deleted under the watched path. Note that + * on file rename the old file name will be reported as deleted if no other + * (extended) watch event kinds are specified. + * @see ExtendedWatchEventKind + */ + public static final WatchEvent.Kind ENTRY_DELETE = new PathWatchEventKind("ENTRY_DELETE"); + /** + * Indicates that a file under the watched path has been modified. Note that + * modification can never be byte-accurate, which means that you won't + * receive a modification event for each byte written to a file. It is + * higly implementation dependent how many modification events are produced. + */ + public static final WatchEvent.Kind ENTRY_MODIFY = new PathWatchEventKind("ENTRY_MODIFY"); + + /** + * Indicates queue overflow in the WatchService. If the event queue + * overflows (because, for example,the WatchService runs + * out of space to store events because they occur faster than the client + * code can retreives them from the designated watch keys), additional + * events are dropped, and this event is reported. + * Note that WatchKeys are always subscribed to this event, regardless + * of whether it is specified to register() or not. + * @see Watchable#register + */ + public static final WatchEvent.Kind OVERFLOW = new VoidWatchEventKind("OVERFLOW"); +} diff --git a/src/name/pachler/nio/file/WatchEvent.java b/src/name/pachler/nio/file/WatchEvent.java new file mode 100644 index 00000000..3560f0a3 --- /dev/null +++ b/src/name/pachler/nio/file/WatchEvent.java @@ -0,0 +1,99 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import name.pachler.nio.file.ext.ExtendedWatchEventModifier; + +/** + * Instances of this class hold the information of a particular change to + * an element below the watched file system object (e.g. a file modification + * or a rename). These objects can be retreived from a WatchKey once it has + * been returned by the WatchService (using the poll() or + * take() methods). + * + * @author count + */ +public abstract class WatchEvent { + /** + * Instances of this class act as tags to identify different kinds of + * events (like file creation or deletion) + * @param The context this kind is intended for. In jpathwatch, only + * Path and Void are used as context types. + */ + public static interface Kind + { + /** + * @return the name of this modifier + */ + String name(); + /** + * @return the type of the WatchEvent's context value. + */ + Class type(); + } + + /** + * A modifier can be specified to {@link Watchable#register register} to + * change the way changes to a watchable are reported. jpathwatch + * defines a set of modifiers in the {@link ExtendedWatchEventModifier} + * class. + * @param The context type for the modifier. + * @see ExtendedWatchEventModifier + */ + public static interface Modifier + { + /** + * The modifier's name should be used for informative purposes + * only (like error reporting). + * @return the modifier's name + */ + String name(); + } + + protected WatchEvent() + {} + + /** + * @return the context of this event, which is usually a reference to the + * object that has changed. In the case of WatchEvents for Path, the + * context will be a Path to the file that this event + * refers to, relative to the watched Path + */ + public abstract T context(); + /** + * The number of times this event occurred, if it is cumulative. It + * is not specified how events cumulate, so use this value for informational + * purposes only. + * @return the number of times this event has occurred, in case events of + * this kind have been aggregated into one WatchEvent instance. + */ + public abstract int count(); + + /** + * @return the kind of event that occurred. This will indicate what + * actually happened, for instance, StandardWatchEventKind#ENTRY_CREATE + * indicates that a file has been created. + */ + public abstract WatchEvent.Kind kind(); +} diff --git a/src/name/pachler/nio/file/WatchKey.java b/src/name/pachler/nio/file/WatchKey.java new file mode 100644 index 00000000..3d70c489 --- /dev/null +++ b/src/name/pachler/nio/file/WatchKey.java @@ -0,0 +1,85 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import java.util.List; + +/** + * A {@link WatchKey} represents a {@link Watchable}'s registration for events with a + * {@link WatchService}. It is created on registration and subsequently used to retreive + * {@link WatchEvent}s.
+ * To stop receiving events from a {@link WatchService} (that is, undoing registration), + * use the {@link #cancel} method. Note that this will invalidate the {@link WatchKey}, which + * should then be discarded (as it cannot be reused). + * @author count + * @see WatchService#poll + * @see WatchService#take + * @see WatchKey#pollEvents + */ +public abstract class WatchKey { +protected WatchKey() +{} +/** + * This cancels the registration with the WatchService that this WatchKey + * was registered with. This means that no new events will be delivered to this + * key any more. Events that are pending can still be retreived with + * pollEvents(), and if the WatchKey is still marked as signalled a call to + * WatchService's poll() or take() functions will still return it. + */ +public abstract void cancel(); + +/** + * @return if this watch key is valid. A watch key is valid if + *
    + *
  • It has not been canceled
  • + *
  • The WatchService is not yet closed
  • + *
+ */ +public abstract boolean isValid(); + +/** + * Returns the events that have occurred for this WatchKey. Just calling + * this method will not reset the signalled state of this key; you'll have + * to call #reset() to indicate to the WatchService that the the client is + * ready to receive more events and that the key can be re-queued. + * After the WatchService has determined that events have occurred for a + * registered Watchable represented by a given WatchKey, it will return that + * key when the client calls it's WatchService#take() or WatchService#poll() + * methods. + * @return a list of events that have occurred since the last time that + * #pollEvents() was called. + */ +public abstract List> pollEvents(); + +/** + * Resets this {@link WatchKey} (marks it as non-signalled) so that it's + * corresponding {@link WatchService} can report it again via it's + * {@link WatchService#poll} and {@link WatchService#take} methods. + * + * @return true if the key could be reset, false + * otherwise (typically if the corresponding {@link WatchService} has been closed + * or if the the key was not signalled). + */ +public abstract boolean reset(); +} diff --git a/src/name/pachler/nio/file/WatchService.java b/src/name/pachler/nio/file/WatchService.java new file mode 100644 index 00000000..259b6963 --- /dev/null +++ b/src/name/pachler/nio/file/WatchService.java @@ -0,0 +1,69 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import java.io.Closeable; +import java.io.IOException; +import java.util.concurrent.TimeUnit; + +/** + * A service that provides monitoring for {@link Watchable}s, reporting changes + * on these objects (in the case of jpathwatch, these are {@link Path} + * instances).

+ * To utilise file monitoring, a program needs to acquire a + * watch service first, like this:
+ * {@code + * WatchService ws = FileSystems.getDefault().newWatchService(); + * }

+ * A path needs to be constructed for the directory to be watched, by simply + * using the {@link Paths} class:
+ * {@code + * // assuming we want to watch the '/tmp' directory on a Unix system. + * Path path = Paths.get("/tmp"); + * }

+ * We can now register the path with the watch service. In this case, we + * want to watch for files created under the /tmp directory, so we register + * using {@link Path#register} with + * the {@link StandardWatchEventKind#ENTRY_CREATE} event kind and no modifiers, + * like this:
+ * {@code + * WatchKey key = path.register(ws, ENTRY_CREATE); + * }

+ * Note that we receive a {@link WatchKey} now, which represents the registration + * of our path with the watch service. The key is also used subsequently to + * retreive events. We'll now wait for an event to occur, like this:
+ * {@code + * // this will block until an event has occurred, or the WatchService is closed. + * WatchKey k = ws.take(); + * } + * @author count + */ +public abstract class WatchService implements Closeable { +protected WatchService() +{} +public abstract void close()throws IOException; +public abstract WatchKey poll() throws InterruptedException, ClosedWatchServiceException; +public abstract WatchKey poll(long timeout, TimeUnit unit) throws InterruptedException, ClosedWatchServiceException; +public abstract WatchKey take() throws InterruptedException, ClosedWatchServiceException; +} diff --git a/src/name/pachler/nio/file/Watchable.java b/src/name/pachler/nio/file/Watchable.java new file mode 100644 index 00000000..036808cd --- /dev/null +++ b/src/name/pachler/nio/file/Watchable.java @@ -0,0 +1,84 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file; + +import java.io.IOException; + +/** + * A watchable is an object that can be registered with a {@link WatchService} + * to be monitored for changes via it's {@link #register register} methods. + * The watchable only defines an interface, use {@link Path} to actually + * watch directories. + * @author count + */ +public interface Watchable { + /** + * Registers the file system path (a directory) with the given WatchService + * and provides a WatchKey as a handle for that registration. + * Equivalent to calling + * register(watcher, events, new WatchEvent.Modifier[0]); + * @see Path#register(name.pachler.nio.file.WatchService, name.pachler.nio.file.WatchEvent.Kind[], name.pachler.nio.file.WatchEvent.Modifier[]) + */ + public WatchKey register(WatchService watcher, WatchEvent.Kind... events) throws IOException; + + /** + * Registers the file system path (a directory) with the given + * {@link WatchService}and provides a WatchKey as a handle for that registration. + * The events and modifier lists determine the events that the + * {@link WatchService} will report.
+ * If a path instance is passed in that represents the same file system + * object that has been specified in a previous call to this method with the + * same {@link WatchService}, the same {@link WatchKey} will be returned. In this case, + * the {@link WatchKey}'s watch settings are altered to match the new event + * and modifier lists. Note that such changes may result in + * {@link StandardWatchEventKind#OVERFLOW} events to be reported on some platforms.
+ * Not all event kinds and modifiers defined in + * {@link StandardWatchEventKind}, {@link name.pachler.nio.file.ext.ExtendedWatchEventKind} and + * {@link name.pachler.nio.file.ext.ExtendedWatchEventModifier} may be supported on a target platform + * (typically though, in this implementation, all event kinds defined in + * {@link StandardWatchEventKind} are always supported). + * @param watcher a valid {@link WatchService} instance. + * @param events The events to register for. The event kinds defined in + * {@link StandardWatchEventKind}and {@link name.pachler.nio.file.ext.ExtendedWatchEventKind} + * define valid event kinds that can + * be passed in here. Not that not all event kinds may be supported on + * a given platform, so see the documentation of a specific event kind. + * @param modifiers The event modifiers to use when registering. {@link WatchEvent$Modifier}s + * define special behaviour that's expected from the {@link WatchService}. Note + * that some event modifiers may not be supported on a given platform; + * see the specific modifier for details. + * @return a new {@link WatchKey} that represents the registration. + * @throws java.lang.UnsupportedOperationException If unsupported event kinds have been provided + * @throws java.lang.IllegalArgumentException If an unsupported combination of event kinds has been provided + * @throws ClosedWatchServiceException If the given WatchService is already closed. + * @throws NotDirectoryException If a directory is required for the + * given registration options (which is typically the case) and the path + * instance does not reference a directory + * @throws java.io.IOException for general I/O errors + * @see StandardWatchEventKind + * @see name.pachler.nio.file.ext.ExtendedWatchEventKind + * @see name.pachler.nio.file.ext.ExtendedWatchEventModifier + */ + public WatchKey register(WatchService watcher, WatchEvent.Kind[] events, WatchEvent.Modifier... modifiers) throws IOException; +} diff --git a/src/name/pachler/nio/file/contrib/BufferedWatcher.java b/src/name/pachler/nio/file/contrib/BufferedWatcher.java new file mode 100644 index 00000000..dd6d55e6 --- /dev/null +++ b/src/name/pachler/nio/file/contrib/BufferedWatcher.java @@ -0,0 +1,747 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; +import java.util.logging.Level; +import java.util.logging.Logger; +import name.pachler.nio.file.ClosedWatchServiceException; +import name.pachler.nio.file.FileSystems; +import name.pachler.nio.file.Path; +import name.pachler.nio.file.Paths; +import name.pachler.nio.file.StandardWatchEventKind; +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.WatchEvent.Kind; +import name.pachler.nio.file.WatchEvent.Modifier; +import name.pachler.nio.file.WatchKey; +import name.pachler.nio.file.WatchService; +import name.pachler.nio.file.ext.ExtendedWatchEventKind; +import name.pachler.nio.file.impl.LinuxMovePathWatchEvent; + +/** + * Allows to easily add watches to file system folders. + * + *

By delaying the events for a few milliseconds, it can match rename + * from/to events and hence fire artificial an artificial ENTRY_RENAME_FROM_TO + * event. It furthermore delays ENTRY_CREATE and ENTRY_MODIFY events until + * the respective files do not change anymore (esp. important for large files). + * + *

TODO + * - copying a folder does not fire the new child events + * - allow flag "fire child events" (on rename, or copy) + * - allow own user Kind[] array + * - file filter (to ignore files) + * + * @author Philipp C. Heckel + */ +public class BufferedWatcher { + private static final Logger logger = Logger.getLogger(BufferedWatcher.class.getSimpleName()); + + public static final int DEFAULT_DELAY = 500; + public static final boolean DEFAULT_KILL_SOURCE_EVENTS = true; + + private static final Kind[] KINDS = new Kind[] { + StandardWatchEventKind.ENTRY_CREATE, + StandardWatchEventKind.ENTRY_DELETE, + StandardWatchEventKind.ENTRY_MODIFY, + ExtendedWatchEventKind.ENTRY_RENAME_FROM, + ExtendedWatchEventKind.ENTRY_RENAME_TO + }; + + private static final Kind[] OSX_KINDS = new Kind[] { + StandardWatchEventKind.ENTRY_CREATE, + StandardWatchEventKind.ENTRY_DELETE, + StandardWatchEventKind.ENTRY_MODIFY, + }; + + /** + * TODO: Have someone to validate this ostype check to see if this is + * acceptable solution or if this should be implemented differently. + * aammi@villingaholt.nu. Used in addWatch method. + */ + private static final int OSTYPE_LINUX = 1; + private static final int OSTYPE_WINDOWS = 2; + private static final int OSTYPE_BSD = 3; + private static final int ostype; + static { + String osName = System.getProperty("os.name"); + + if (osName.contains("Windows")) { + ostype = OSTYPE_WINDOWS; + } + else if(osName.equals("Linux")) { + ostype = OSTYPE_LINUX; + } + else if(osName.equals("Mac OS X") || osName.equals("FreeBSD")) { + ostype = OSTYPE_BSD; + } + else { + throw new RuntimeException("Unsupported operating system: "+osName); + } + } + + private static final Modifier[] MODIFIERS = new Modifier[] { + // ExtendedWatchEventModifier.FILE_TREE // Windows only! + }; + + + // Watch stuff + private WatchService watchService; + private Thread worker; + + private Map fileNodeMap; + private Map keyNodeMap; + + // Delay stuff + private final List eventQueue; + private Timer timer; + private int delay; + private boolean killSourceEvents; + + + public BufferedWatcher() { + this(DEFAULT_DELAY, DEFAULT_KILL_SOURCE_EVENTS); + } + + public BufferedWatcher(int delay) { + this(delay, DEFAULT_KILL_SOURCE_EVENTS); + } + + public BufferedWatcher(int delay, boolean killSourceEvents) { + super(); + + // Watch stuff + this.watchService = FileSystems.getDefault().newWatchService(); + this.worker = null; // cp. start() + + this.fileNodeMap = new HashMap(); + this.keyNodeMap = new HashMap(); + + // Delay stuff + this.timer = null; // cp. start() + this.delay = delay; + this.killSourceEvents = killSourceEvents; + this.eventQueue = new ArrayList(); + } + + public synchronized void start() { + if (worker != null) { + return; + } + + // Worker + worker = new Thread(new WatchWorker(), "BufWatchWorker"); + worker.start(); + + + // The delay for the timer should be less than the actual delay, because + // if it was, the actual delay could be double the time + int timerDelay = Math.round((float) delay / 2); + + // Timer + timer = new Timer("BufWatchTimer"); + timer.scheduleAtFixedRate(new TimerTask() { + @Override public void run() { + try { + fireDelayedEvents(); + } + catch (Exception e) { + logger.log(Level.WARNING, "Error while processing delayed events. IGNORING.", e); + } + } + }, 0, timerDelay); + } + + public synchronized void stop() { + if (worker == null) { + return; + } + + // Worker + worker.interrupt(); + worker = null; + + // Timer + timer.cancel(); + timer = null; + } + + public synchronized boolean isActive() { + return worker != null && timer != null; + } + + public int getDelay() { + return delay; + } + + private void fireDelayedEvents() { + long now = System.currentTimeMillis(); + + synchronized (eventQueue) { + while (eventQueue.size() > 0) { + TimedWatchEvent e = eventQueue.get(0); + + if (e.getTimestamp()+delay >= now) { + break; + } + + // Take event + eventQueue.remove(0); + //System.out.println("delayed event "+e.getEvent().kind().name()+" "+e.getEvent().context()); + + // For modify/create events, check if file size has changed + if (e.getEvent().kind() == StandardWatchEventKind.ENTRY_CREATE + || e.getEvent().kind() == StandardWatchEventKind.ENTRY_MODIFY) { + + File file = getEventFile(e.getEvent(), e.getParentKey()); + + // File might not exist anymore + if (file == null || file.length() == 0) { + if (logger.isLoggable(Level.WARNING)) { + logger.log(Level.WARNING, "Purging delayed event. Watch key invalid. File vanished? Event = {0}, Key ={1}", new Object[]{e.getEvent(), e.getParentKey()}); + } + } + + // Check if changed; re-add if it did change! + /*if (e.getFilesize() != file.length()) { + e.setTimestamp(now); + e.setFilesize(file.length()); + + System.out.println("re-add"); + eventQueue.add(e); + + continue; + }*/ + } + + // If is 'moved from', look for a matching 'moved to' event (via cookie) + // Note: this assumes that the FROM event always comes before the TO event + if (e.getEvent().kind() == ExtendedWatchEventKind.ENTRY_RENAME_FROM) { + TimedWatchEvent movedFromEvent = e; + TimedWatchEvent movedToEvent = null; + + // Look in the queue for files with the same cookie + // Take the closest one with the same cookie + cookieSearch: for (TimedWatchEvent potentialMovedToEvent : eventQueue) { + if (potentialMovedToEvent.getEvent().kind() == ExtendedWatchEventKind.ENTRY_RENAME_TO + && movedFromEvent.getCookie() == potentialMovedToEvent.getCookie()) { + + movedToEvent = potentialMovedToEvent; + break cookieSearch; + } + } + + // 'moved to'-event found + if (movedToEvent != null) { + eventQueue.remove(movedToEvent); + + // Fire source events + if (!killSourceEvents) { + processEvent(movedFromEvent); + processEvent(movedToEvent); + } + + // Fire artificial from/to event + processEvent(new ExtendedWatchEvent(e.getParentKey(), new RenameWatchEvent(movedFromEvent, movedToEvent))); + continue; + } + } + + // Default behavior: fire event! + processEvent(e); + } + } + } + + + public synchronized WatchKey addWatch(File file, boolean recursive, WatchListener listener) throws IOException { + Path watchedPath = Paths.get(file.getAbsolutePath()); + + /** + * TODO: Have somone to validate if this is acceptable solution or + * if this should be implemented differently.sammi@villingaholt.nu + */ + WatchKey key = null; + if(ostype == OSTYPE_BSD){ + key = watchedPath.register(watchService, OSX_KINDS, MODIFIERS); + }else{ + key = watchedPath.register(watchService, KINDS, MODIFIERS); + } + + // Add my own node + WatchNode node = new WatchNode(key, file); + + node.setListener(listener); + node.setRecursive(recursive); + + // Add my own key mappings + fileNodeMap.put(file, node); + keyNodeMap.put(key, node); + + // Add myself to my parent (if it exists) + File parentFile = file.getParentFile(); + WatchNode parentNode = fileNodeMap.get(parentFile); + + node.setParent(parentNode); + + if (parentNode != null) { + parentNode.getChildren().put(key, node); + } + + // Recursive? + if (recursive) { + for (File child : file.listFiles()) { + if (!child.isDirectory()) { + continue; + } + + addWatch(child, recursive, listener); + } + } + + return key; + } + + public synchronized void removeWatch(File file) { + removeWatch(fileNodeMap.get(file)); + } + + public synchronized void removeWatch(WatchKey key) { + removeWatch(keyNodeMap.get(key)); + } + + /** + * Note: this is designed very carefully since everything could be null. + */ + private synchronized void removeWatch(WatchNode node) { + if (node == null) { + logger.warning("Cannot remove watch. Node is null."); + return; + } + + WatchKey key = node.getKey(); + File file = node.getPath(); + + if (key != null && key.isValid()) { + key.cancel(); + } + + if (key != null) { + keyNodeMap.remove(key); + } + + if (file != null) { + fileNodeMap.remove(file); + } + + // Remove from parent + if (node.getParent() != null) { + node.getParent().getChildren().remove(key); + } + + // Cancel children + if (key != null) { + List childNodes = new ArrayList(node.getChildren().values()); + + if (childNodes != null) { + // Note: Don't do a for-loop here [concurrent modification] + while (childNodes.size() > 0) { + removeWatch(childNodes.get(0)); + } + } + } + } + + private void processEvent(ExtendedWatchEvent xe) { + WatchNode parentNode = keyNodeMap.get(xe.getParentKey()); + WatchKey parentKey = xe.getParentKey(); + WatchEvent event = xe.getEvent(); + + if (parentNode == null || parentKey == null || event == null) { + if (logger.isLoggable(Level.WARNING)) { + logger.log(Level.WARNING, "Cannot process event {0}. Invalid values: parentNode = {1}, parentKey = {2}, event = {3}. IGNORING.", new Object[]{xe, parentNode, parentKey, event}); + } + + return; + } + + if (event.kind() == StandardWatchEventKind.ENTRY_CREATE + || event.kind() == ExtendedWatchEventKind.ENTRY_RENAME_TO) { + + File file = getEventFile(event, xe.getParentKey()); + + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "{0} {1}", new Object[]{event.kind().name(), file}); + } + + if (file.isDirectory() && parentNode != null && parentNode.isRecursive()) { + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "This is a directory. Adding new watch ..."); + } + + try { + addWatch(file, parentNode.isRecursive(), parentNode.getListener()); + } + catch (IOException ex) { + logger.log(Level.SEVERE, "Could not add log to "+file+". IGNORING.", ex); + } + } + } + + else if (event.kind() == StandardWatchEventKind.ENTRY_MODIFY) { + File file = getEventFile(event, xe.getParentKey()); + + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "{0} {1}", new Object[]{event.kind().name(), file}); + } + + // Nothing to do. + } + + else if (event.kind() == StandardWatchEventKind.ENTRY_DELETE + || event.kind() == ExtendedWatchEventKind.ENTRY_RENAME_FROM) { + + File file = getEventFile(event, parentKey); + + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "{0} {1}", new Object[]{event.kind().name(), file}); + } + + if (fileNodeMap.containsKey(file)) { + removeWatch(file); + } + } + + else if (event.kind() == ExtendedWatchEventKind.KEY_INVALID) { + removeWatch(parentKey); + } + + else if (event.kind() == RenameWatchEventKind.ENTRY_RENAME_FROM_TO) { + RenamePathContext renameContext = (RenamePathContext) event.context(); + ExtendedWatchEvent fromEvent = renameContext.getFromEvent(); + ExtendedWatchEvent toEvent = renameContext.getToEvent(); + File fromFile = getEventFile(fromEvent.getEvent(), fromEvent.getParentKey()); + File toFile = getEventFile(toEvent.getEvent(), toEvent.getParentKey()); + + if (logger.isLoggable(Level.INFO)) { + logger.log(Level.INFO, "{0} {1} -> {2}", new Object[]{event.kind().name(), fromFile, toFile}); + } + + if (fileNodeMap.containsKey(fromFile)) { + updateMoveFileMaps(fromFile, toEvent.getParentKey(), toFile); + } + + if (toFile.isDirectory() && parentNode != null && parentNode.isRecursive()) { + try { + addWatch(toFile, parentNode.isRecursive(), parentNode.getListener()); + } + catch (IOException ex) { + logger.log(Level.SEVERE, "Could not add log to "+toFile+". IGNORING.", ex); + } + } + + } + + // NOW USER PROCESSING + if (parentNode != null && parentNode.getListener() != null) { + parentNode.getListener().watchEventOccurred(parentKey, event); + } + } + + private synchronized void updateMoveFileMaps(File fromFile, WatchKey toParentKey, File toFile) { + System.err.println("updating file maps : from "+fromFile +" to "+toFile); + + // Update given key + WatchNode moveNode = fileNodeMap.get(fromFile); + + if (moveNode == null) { + logger.log(Level.WARNING, "WatchKey for file {0} not found. IGNORING.", fromFile); + return; + } + + // Update + moveNode.setPath(toFile); + + // Remove from old parent + if (moveNode.getParent() != null) { + moveNode.getParent().getChildren().remove(moveNode.getKey()); + } + + // Add to new parent + WatchNode toParentNode = keyNodeMap.get(toParentKey); + + toParentNode.getChildren().put(moveNode.getKey(), moveNode); + moveNode.setParent(toParentNode); + + // Update maps + fileNodeMap.remove(fromFile); + fileNodeMap.put(toFile, moveNode); + + // Update children + // Note: the ArrayList constructor is required to copy the list (since it might be modified + // in the recursive call below. + Collection childNodes = new ArrayList(moveNode.getChildren().values()); + + if (childNodes != null) { + for (WatchNode childNode : childNodes) { + File childFromFile = childNode.getPath();//keyFileMap.get(childKey); + File childToFile = new File(toFile.getAbsolutePath() + childFromFile.getAbsolutePath().substring(fromFile.getAbsolutePath().length())); + WatchKey childToParentKey = fileNodeMap.get(childToFile.getParentFile()).getKey(); + + updateMoveFileMaps(childFromFile, childToParentKey, childToFile); + } + } + } + + public synchronized File getEventFile(WatchEvent event, WatchKey key) { + if (key == null || event == null) { + return null; + } + + WatchNode node = keyNodeMap.get(key); + + if (node == null) { + return null; + } + + File filePath = node.getPath(); + return new File(filePath.getAbsolutePath() + File.separator + ((Path) event.context())); + } + + public synchronized WatchKey getRootKey(WatchKey key) { + WatchNode rootNode = keyNodeMap.get(key); + + if (rootNode == null) { + return null; + } + + while (rootNode.getParent() != null) { + rootNode = rootNode.getParent(); + } + + return rootNode.getKey(); + } + + private class WatchWorker implements Runnable { + @Override + public void run() { + while (true) { + // take() will block until a file has been created/deleted + WatchKey parentKey; + + try { + parentKey = watchService.take(); + } + catch (InterruptedException ix) { + break; + } + catch (ClosedWatchServiceException cwse) { + // other thread closed watch service + System.out.println("watch service closed, terminating."); + break; + } + + // get list of events from key + List> events = parentKey.pollEvents(); + parentKey.reset(); + + for (WatchEvent event : events) { + //System.out.println("event : "+event.kind().name() +" "+event.context()); + + // Make cookie (for rename from/to events) + long timestamp = System.currentTimeMillis(); + int cookie = 0; + long filesize = 0; + + // TODO this only works on Linux so far!!! + // cp. https://sourceforge.net/projects/jpathwatch/forums/forum/888207/topic/4538927 + if (event instanceof LinuxMovePathWatchEvent) { + LinuxMovePathWatchEvent moveEvent = (LinuxMovePathWatchEvent) event; + cookie = moveEvent.getCookie(); + } + + // Record file size (for CLOSE_WRITE checking) + if (event.kind() == StandardWatchEventKind.ENTRY_CREATE + || event.kind() == StandardWatchEventKind.ENTRY_MODIFY) { + + File file = getEventFile(event, parentKey); + filesize = file.length(); + + // Remove old modify events with smaller file sizes + // so that only one modify event is thrown; bug #805210 + int i = 0; + + while (i < eventQueue.size()) { + TimedWatchEvent potentialModifyEvent = eventQueue.get(i); + + if (potentialModifyEvent.getEvent().kind() == StandardWatchEventKind.ENTRY_MODIFY + && potentialModifyEvent.getParentKey().equals(parentKey) + && potentialModifyEvent.getEvent().context().equals(event.context())) { + + //System.out.println("remove "+potentialModifyEvent); + eventQueue.remove(i); + } + else { + i++; + } + } + } + + eventQueue.add(new TimedWatchEvent(parentKey, event, timestamp, cookie, filesize)); + } + + fireDelayedEvents(); + //parentKey.reset(); + } + } + } + + public synchronized void printMaps() { + for (Map.Entry m : fileNodeMap.entrySet()) + logger.severe("fileNodeMap: "+m.getKey()+ " = "+m.getValue()); + + for (Map.Entry m : keyNodeMap.entrySet()) + logger.severe("keyNodeMap: "+m.getKey()+ " = "+m.getValue()); + + + logger.severe("---"); + } + + private class TimedWatchEvent extends ExtendedWatchEvent { + private long timestamp; + private int cookie; + private long filesize; + + public TimedWatchEvent(WatchKey parentKey, WatchEvent event, long timestamp, int cookie, long filesize) { + super(parentKey, event); + this.timestamp = timestamp; + this.cookie = cookie; + this.filesize = filesize; + } + + public long getTimestamp() { + return timestamp; + } + + private void setTimestamp(long timestamp) { + this.timestamp = timestamp; + } + + public int getCookie() { + return cookie; + } + + public long getFilesize() { + return filesize; + } + + private void setFilesize(long filesize) { + this.filesize = filesize; + } + + @Override + public boolean equals(Object obj) { + TimedWatchEvent o = (TimedWatchEvent) obj; + + return o.getParentKey().equals(getParentKey()) + && o.getEvent().equals(getEvent()) + && o.getTimestamp() == getTimestamp() + && o.getCookie() == getCookie() + && o.getFilesize() == getFilesize(); + } + } + + private class WatchNode { + private WatchKey key; + private File path; + private WatchListener listener; + private boolean recursive; + + private WatchNode parent; + private Map children; + + public WatchNode(WatchKey key, File path) { + this.key = key; + this.path = path; + this.parent = null; + this.children = new HashMap(); + } + + public boolean isRecursive() { + return recursive; + } + + public void setRecursive(boolean recursive) { + this.recursive = recursive; + } + + public WatchListener getListener() { + return listener; + } + + public void setListener(WatchListener listener) { + this.listener = listener; + } + + public void setParent(WatchNode parent) { + this.parent = parent; + } + + public File getPath() { + return path; + } + + public void setPath(File path) { + this.path = path; + } + + public Map getChildren() { + return children; + } + + public WatchKey getKey() { + return key; + } + + public WatchNode getParent() { + return parent; + } + + @Override + public String toString() { + return "WatchKeyNode{" + "key=" + key + ", children=" + children + '}'; + } + } + +} \ No newline at end of file diff --git a/src/name/pachler/nio/file/contrib/ExtendedWatchEvent.java b/src/name/pachler/nio/file/contrib/ExtendedWatchEvent.java new file mode 100644 index 00000000..fb1a2a2c --- /dev/null +++ b/src/name/pachler/nio/file/contrib/ExtendedWatchEvent.java @@ -0,0 +1,57 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.WatchKey; + +/** + * + * @author Philipp C. Heckel + */ +public class ExtendedWatchEvent { + private WatchKey parentKey; + private WatchEvent event; + + public ExtendedWatchEvent(WatchKey parentKey, WatchEvent event) { + this.parentKey = parentKey; + this.event = event; + } + + public WatchEvent getEvent() { + return event; + } + + public WatchKey getParentKey() { + return parentKey; + } + + @Override + public boolean equals(Object obj) { + ExtendedWatchEvent o = (ExtendedWatchEvent) obj; + + return o.getParentKey().equals(getParentKey()) + && o.getEvent().equals(getEvent()); + } +} \ No newline at end of file diff --git a/src/name/pachler/nio/file/contrib/RenamePathContext.java b/src/name/pachler/nio/file/contrib/RenamePathContext.java new file mode 100644 index 00000000..067a82b2 --- /dev/null +++ b/src/name/pachler/nio/file/contrib/RenamePathContext.java @@ -0,0 +1,46 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +/** + * + * @author Philipp C. Heckel + */ +public final class RenamePathContext { + private ExtendedWatchEvent fromEvent; + private ExtendedWatchEvent toEvent; + + public RenamePathContext(ExtendedWatchEvent fromEvent, ExtendedWatchEvent toEvent) { + this.fromEvent = fromEvent; + this.toEvent = toEvent; + } + + public ExtendedWatchEvent getFromEvent() { + return fromEvent; + } + + public ExtendedWatchEvent getToEvent() { + return toEvent; + } +} diff --git a/src/name/pachler/nio/file/contrib/RenameWatchEvent.java b/src/name/pachler/nio/file/contrib/RenameWatchEvent.java new file mode 100644 index 00000000..7dab4a66 --- /dev/null +++ b/src/name/pachler/nio/file/contrib/RenameWatchEvent.java @@ -0,0 +1,54 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +import name.pachler.nio.file.WatchEvent; + +/** + * + * @author Philipp C. Heckel + */ +public class RenameWatchEvent extends WatchEvent { + private RenamePathContext context; + + public RenameWatchEvent(ExtendedWatchEvent fromEvent, ExtendedWatchEvent toEvent) { + this.context = new RenamePathContext(fromEvent, toEvent); + } + + @Override + public RenamePathContext context() { + return context; + } + + @Override + public int count() { + return 1; + } + + @Override + public Kind kind() { + return RenameWatchEventKind.ENTRY_RENAME_FROM_TO; + } + +} diff --git a/src/name/pachler/nio/file/contrib/RenameWatchEventKind.java b/src/name/pachler/nio/file/contrib/RenameWatchEventKind.java new file mode 100644 index 00000000..fbd3c3c5 --- /dev/null +++ b/src/name/pachler/nio/file/contrib/RenameWatchEventKind.java @@ -0,0 +1,44 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +import name.pachler.nio.file.WatchEvent.Kind; + +/** + * + * @author Philipp C. Heckel + */ +public class RenameWatchEventKind implements Kind { + public static final Kind ENTRY_RENAME_FROM_TO = new RenameWatchEventKind(); + + @Override + public String name() { + return "ENTRY_RENAME_FROM_TO"; + } + + @Override + public Class type() { + throw new UnsupportedOperationException("Not supported yet."); + } +} diff --git a/src/name/pachler/nio/file/contrib/WatchListener.java b/src/name/pachler/nio/file/contrib/WatchListener.java new file mode 100644 index 00000000..5a2017e2 --- /dev/null +++ b/src/name/pachler/nio/file/contrib/WatchListener.java @@ -0,0 +1,35 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.contrib; + +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.WatchKey; + +/** + * + * @author Philipp C. Heckel + */ +public interface WatchListener { + public void watchEventOccurred(WatchKey rootKey, WatchEvent event); +} \ No newline at end of file diff --git a/src/name/pachler/nio/file/ext/Bootstrapper.java b/src/name/pachler/nio/file/ext/Bootstrapper.java new file mode 100644 index 00000000..1a7b8feb --- /dev/null +++ b/src/name/pachler/nio/file/ext/Bootstrapper.java @@ -0,0 +1,164 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.ext; + +import java.io.File; +import java.util.logging.Level; +import java.util.logging.Logger; +import name.pachler.nio.file.WatchService; +import name.pachler.nio.file.impl.LinuxPathWatchService; +import name.pachler.nio.file.impl.PathImpl; +import name.pachler.nio.file.Path; +import name.pachler.nio.file.impl.BSDPathWatchService; +import name.pachler.nio.file.impl.PollingPathWatchService; +import name.pachler.nio.file.impl.WindowsPathWatchService; + +/** + * The Bootstrapper is used to instantiate WatchService and Path instances. + * Because jpathwatch does not implement all the underlying infrastructure + * of JDK7's nio implementation, the non-standard Bootstrapper class is used + * for these chores. + * @author count + */ +public class Bootstrapper { + private static final int OSTYPE_UNKNOWN = 0; + private static final int OSTYPE_LINUX = 1; + private static final int OSTYPE_WINDOWS = 2; + private static final int OSTYPE_BSD = 3; + + private static boolean forcePolling = false; + private static long defaultPollingInterval = 2000; // by default, polling WatchService implementation poll every 2 seconds + + private static final int ostype; + static { + String osName = System.getProperty("os.name"); + if(osName.contains("Windows")) + ostype = OSTYPE_WINDOWS; + else if(osName.equals("Linux")) + ostype = OSTYPE_LINUX; + else if(osName.equals("Mac OS X") || osName.equals("FreeBSD")) + ostype = OSTYPE_BSD; + else + ostype = OSTYPE_UNKNOWN; + } + + /** + * Creates a new WatchService. This is a shortcut for calling + * FileSystems.getDefault().newWatchService() and + * is not source-compatible to JDK7 + * @return a new WatchService implementation instance. + * @see name.pachler.nio.file.FileSystem#newWatchService() + * @see name.pachler.nio.file.FileSystems#getDefault() + */ + public static WatchService newWatchService(){ + WatchService ws = null; + try { + if(!forcePolling){ + switch(ostype){ + case OSTYPE_LINUX: + ws = new LinuxPathWatchService(); + break; + case OSTYPE_WINDOWS: + ws = new WindowsPathWatchService(); + break; + case OSTYPE_BSD: + ws = new BSDPathWatchService(); + break; + } + } + } catch(Throwable t){ + Logger.getLogger(Bootstrapper.class.getName()).log(Level.WARNING, null, t); + } finally { + // if for whatever reason we don't have a + // WatchService, we'll create a polling one as fallback. + if(ws == null) + ws = new PollingPathWatchService(); + return ws; + } + } + + /** + * Creates a new Path instance for a given File. + * @param file that a new Path is created for + * @return a new Path() corresponding to the given File + */ + public static Path newPath(File file){ + return new PathImpl(file); + } + + /** + * Gets the File that corresponds to the given path. + * @param path Path for with to retreive the corresponding File + * @return The file which corresponds to the given Path instance. + */ + public static File pathToFile(Path path){ + return ((PathImpl)path).getFile(); + } + + /** + * @return whether polling is enforced. + */ + public static boolean isForcePollingEnabled(){ + return forcePolling; + } + + /** + * When force polling is enabled, the Bootstrapper's {@link #newWatchService()} + * method will only produce polling watch services. This feature is mostly + * useful for testing and debugging (and not not much else really). + * @param forcePollingEnabled true to enable force polling + */ + public static void setForcePollingEnabled(boolean forcePollingEnabled){ + forcePolling = forcePollingEnabled; + } + + /** + *

This method allows to set the default polling time interval for + * new WatchService implementations that use polling. Note that polling + * is only used on a few supported platforms when certain event kinds + * are used or on unsupported platforms (fallback implementation).

+ *

The polling interval determines how often a thread that calls + * {@link WatchService#take() } will wake up to check if files in the + * watched directory have changed. Longer time intervals will make + * a polling service less accurate, but costs less in CPU and disk + * resources, while shorter time intervals lead to higher accuracy but + * more consumed resources (up to the point where polling takes longer than + * the set interval in which case the machine will become very slow).

+ * @param pollInterval the polling time interval in milliseconds + */ + public static void setDefaultPollingInterval(long pollInterval){ + if(pollInterval <= 0) + throw new IllegalArgumentException("polling interval must be greater than zero"); + defaultPollingInterval = pollInterval; + } + + /** + * Retrieves the default polling interval. + * @see setDefaultPollingInterval + * @return the default polling interval, in milliseconds + */ + public static long getDefaultPollingInterval() { + return defaultPollingInterval; + } +} diff --git a/src/name/pachler/nio/file/ext/ExtendedWatchEventKind.java b/src/name/pachler/nio/file/ext/ExtendedWatchEventKind.java new file mode 100644 index 00000000..c122dd3f --- /dev/null +++ b/src/name/pachler/nio/file/ext/ExtendedWatchEventKind.java @@ -0,0 +1,85 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.ext; + +import name.pachler.nio.file.Path; +import name.pachler.nio.file.StandardWatchEventKind; +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.WatchService; +import name.pachler.nio.file.WatchKey; +import name.pachler.nio.file.impl.PathWatchEventKind; +import name.pachler.nio.file.impl.VoidWatchEventKind; + +/** + * Provides non-standard watch event kinds that enable more specialized + * watch features. + *

File rename tracking

+ * The {@link #ENTRY_RENAME_FROM} and {@link #ENTRY_RENAME_TO} event + * kinds enable more fine grained file rename tracing. When only the standard + * event kinds are specified with Path.register(), renaming a file in a + * watched directory will only yield an {@link StandardWatchEventKind#ENTRY_CREATE} and an + * {@link StandardWatchEventKind#ENTRY_DELETE} + * event, which makes it indistinguishable from actual file creation and + * deletion events.

+ * If {@link #ENTRY_RENAME_FROM} and/or {@link #ENTRY_RENAME_TO} are + * specified, renamed files will be reported with respective events. Note that + * if both {@link #ENTRY_RENAME_FROM} and {@link #ENTRY_RENAME_TO} + * are specified, a {@link #ENTRY_RENAME_FROM} event for a file will + * be immediately be followed by a {@link #ENTRY_RENAME_TO} event for the + * same file.

+ * @author count + */ +public class ExtendedWatchEventKind { + /** + * Indicates the old file name of a renamed file. The + * {@link WatchEvent}'s {@link WatchEvent#context} method will return + * a Path that indicates the previous name that the file had. + */ + public static WatchEvent.Kind ENTRY_RENAME_FROM = new PathWatchEventKind("ENTRY_RENAME_FROM"); + /** + * Indicates the new file name of a renamed file. The + * {@link WatchEvent}'s {@link WatchEvent#context} method will return + * a Path that indicates the new name of the file. + */ + public static WatchEvent.Kind ENTRY_RENAME_TO = new PathWatchEventKind("ENTRY_RENAME_TO"); + + /** + * Indicates that the given {@link WatchKey} has become invalid. This + * can happen for a number of reasons: + *

    + *
  • The key has been invalidated programmatically by calling + * {@link WatchKey#cancel}.
  • + *
  • The {@link WatchService} has been closed.
  • + *
  • The path that the key has been registered with has become + * unavailable, e.g because it was deleted or the file system on which + * it resides has been unmounted.
  • + *
+ * Note that not all operating systems will invalidate the WatchKey + * (and report KEY_INVALID) under the same circumstances. On most platforms, + * moving or renaming the directory that the key was registered with will + * invalidate it, however, on Windows it will not (only when it is + * deleted or unmounted). + */ + public static WatchEvent.Kind KEY_INVALID = new VoidWatchEventKind("KEY_INVALID"); +} diff --git a/src/name/pachler/nio/file/ext/ExtendedWatchEventModifier.java b/src/name/pachler/nio/file/ext/ExtendedWatchEventModifier.java new file mode 100644 index 00000000..cb3f24e8 --- /dev/null +++ b/src/name/pachler/nio/file/ext/ExtendedWatchEventModifier.java @@ -0,0 +1,81 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.ext; + +import name.pachler.nio.file.Path; +import name.pachler.nio.file.StandardWatchEventKind; +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.impl.PathWatchEventModifier; + +/** + * This class holds non-standard modifiers that can be passed to + * Path.register(). Note that these might not be supported on all platforms, so + * specifying them to {@link Path#register register} might cause an + * {@link java.lang.UnsupportedOperationException UnsupportedOperationException} + * or an {@link java.lang.IllegalArgumentException IllegalArgumentException} + * to be thrown. + * @author count + */ +public class ExtendedWatchEventModifier { + + /** + * The {@link #FILE_TREE} modifier makes a WatchKey recursive. Without this modifier, + * a file watch is shallow: For a watched directory foo, + * WatchEvents are only generated for direct children such as + * foo/bar or foo/oof. For a changes to files in a + * subdirectory of foo, such as foo/adir/file + * will only be reported if the {@link #FILE_TREE} modifier is specified. + * + * Note that this modifier is only available on the Windows platform. If + * specified on other platforms, Path.register() will throw an + * UnsupportedOperationException. + * + */ + public static final WatchEvent.Modifier FILE_TREE = new PathWatchEventModifier("FILE_TREE"); + + /** + * The {@link #ACCURATE} modifier indicates that the WatchKey may not miss events + * under any circumstances.

+ * If a {@link name.pachler.nio.file.WatchService WatchService} implementation is based on polling it may miss files + * that are created and deleted between two polls of the key (see below how + * this can happen). The {@link #ACCURATE} modifier demands that no events may be + * missed, however, not all platforms support this.

+ * Note that even without specifying ACCURATE events are still guaranteed to be + * reported as symmetric - if both {@link StandardWatchEventKind#ENTRY_CREATE ENTRY_CREATE} + * and {@link StandardWatchEventKind#ENTRY_DELETE ENTRY_DELETE} have been + * specified, only whole pairs of creation/deletion can be + * missed, not just one of them.

+ * On some platforms, ACCURATE is implicit as the underlying operating + * system guarantees to deliver every event, even without specifying + * {@link #ACCURATE} (however, the queue might still overflow, generating + * an event of the {@link name.pachler.nio.file.StandardWatchEventKind#OVERFLOW OVERFLOW} kind)

+ * Consider the following scenario in which an implementation which + * does not support ACCURATE can miss events:
+ * Say, at 0ms, the key polls, and detects no files in a directory. The + * key goes to sleep for 200ms. Say, at 50ms, a file is created. Then, at + * 100ms, the same file is deleted again. When the WatchKey wakes up after + * 200ms, it will see the same as it saw before: An empty directory. + */ + public static final WatchEvent.Modifier ACCURATE = new PathWatchEventModifier("ACCURATE"); +} diff --git a/src/name/pachler/nio/file/ext/package.html b/src/name/pachler/nio/file/ext/package.html new file mode 100644 index 00000000..67949f9a --- /dev/null +++ b/src/name/pachler/nio/file/ext/package.html @@ -0,0 +1,20 @@ + + + + + + + + + Provides non-standard {@link name.pachler.nio.file.ext.ExtendedWatchEventKind} + class with extended watch event kinds and modifier tags that enable + non-standard features, like recursive watches and file rename tracking. +

+ Note that the classes in this package are not part of JDK7's watch service + interface; they're specific to jpathwatch and therefore not source compatible + with JDK 7. + + diff --git a/src/name/pachler/nio/file/impl/BSD.java b/src/name/pachler/nio/file/impl/BSD.java new file mode 100644 index 00000000..4f96310a --- /dev/null +++ b/src/name/pachler/nio/file/impl/BSD.java @@ -0,0 +1,258 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.impl; + +/** + * + * @author count + */ +public abstract class BSD extends Unix { + + public static final short EV_ADD; + public static final short EV_ENABLE; + public static final short EV_DISABLE; + public static final short EV_DELETE; + public static final short EV_ONESHOT; + public static final short EV_CLEAR; + public static final short EV_EOF; + public static final short EV_ERROR; + + public static final short EVFILT_VNODE; + public static final short EVFILT_PROC; + + // for EVFILT_VNODE + public static final int NOTE_DELETE; + public static final int NOTE_WRITE; + public static final int NOTE_EXTEND; + public static final int NOTE_ATTRIB; + public static final int NOTE_LINK; + public static final int NOTE_RENAME; + public static final int NOTE_REVOKE; + + // for EVFILT_PROC + public static final int NOTE_EXIT; + public static final int NOTE_FORK; + public static final int NOTE_EXEC; + public static final int NOTE_TRACK; + public static final int NOTE_TRACKERR; + + // for EVFILT_NETDEV + // OSX doesn't have it :( + //public static final int NOTE_LINKUP; + //public static final int NOTE_LINKDOWN; + //public static final int NOTE_LINKINV; + + static + { + NativeLibLoader.loadLibrary("jpathwatch-native"); + + EV_ADD = (short)getIntDefine("EV_ADD"); + EV_ENABLE = (short)getIntDefine("EV_ENABLE"); + EV_DISABLE = (short)getIntDefine("EV_DISABLE"); + EV_DELETE = (short)getIntDefine("EV_DELETE"); + EV_ONESHOT = (short)getIntDefine("EV_ONESHOT"); + EV_CLEAR = (short)getIntDefine("EV_CLEAR"); + EV_EOF = (short)getIntDefine("EV_EOF"); + EV_ERROR = (short)getIntDefine("EV_ERROR"); + + EVFILT_VNODE = (short)getIntDefine("EVFILT_VNODE"); + EVFILT_PROC = (short)getIntDefine("EVFILT_PROC"); + + NOTE_DELETE = getIntDefine("NOTE_DELETE"); + NOTE_WRITE = getIntDefine("NOTE_WRITE"); + NOTE_EXTEND = getIntDefine("NOTE_EXTEND"); + NOTE_ATTRIB = getIntDefine("NOTE_ATTRIB"); + NOTE_LINK = getIntDefine("NOTE_LINK"); + NOTE_RENAME = getIntDefine("NOTE_RENAME"); + NOTE_REVOKE = getIntDefine("NOTE_REVOKE"); + + // for EVFILT_PROC + NOTE_EXIT = getIntDefine("NOTE_EXIT"); + NOTE_FORK = getIntDefine("NOTE_FORK"); + NOTE_EXEC = getIntDefine("NOTE_EXEC"); + NOTE_TRACK = getIntDefine("NOTE_TRACK"); + NOTE_TRACKERR = getIntDefine("NOTE_TRACKERR"); + + // for EVFILT_NETDEV + // OSX doesn't have it :( + //NOTE_LINKUP = getIntDefine("NOTE_LINKUP"); + //NOTE_LINKDOWN = getIntDefine("NOTE_LINKDOWN"); + //NOTE_LINKINV = getIntDefine("NOTE_LINKINV"); + } + + public static native int kqueue(); + + /** + * +

+struct kevent {
+	 uintptr_t ident;        // identifier for this event
+	 short     filter;       // filter for event
+	 u_short   flags;        // action flags for kqueue
+	 u_int     fflags;       // filter flag value
+	 intptr_t  data;         // filter data value
+	 void      *udata;       // opaque user data identifier
+};
+
+ */ + public static class kevent{ + static class IntStringMapping{ + int i; + String s; + IntStringMapping(int i, String s){ + this.i = i; + this.s = s; + } + } + + IntStringMapping [] flagsMapping = { + new IntStringMapping(BSD.EV_ADD, "EV_ADD"), + new IntStringMapping(BSD.EV_ENABLE, "EV_ENABLE"), + new IntStringMapping(BSD.EV_DISABLE, "EV_DISABLE"), + new IntStringMapping(BSD.EV_DELETE, "EV_DELETE"), + new IntStringMapping(BSD.EV_CLEAR, "EV_CLEAR"), + new IntStringMapping(BSD.EV_ONESHOT, "EV_ONESHOT"), + new IntStringMapping(BSD.EV_EOF, "EV_EOF"), + new IntStringMapping(BSD.EV_ERROR, "EV_ERROR"), + }; + + IntStringMapping [] vnodeNoteMapping = { + new IntStringMapping(BSD.NOTE_DELETE, "NOTE_DELETE"), + new IntStringMapping(BSD.NOTE_WRITE, "NOTE_WRITE"), + new IntStringMapping(BSD.NOTE_EXTEND, "NOTE_EXTEND"), + new IntStringMapping(BSD.NOTE_ATTRIB, "NOTE_ATTRIB"), + new IntStringMapping(BSD.NOTE_LINK, "NOTE_LINK"), + new IntStringMapping(BSD.NOTE_RENAME, "NOTE_RENAME"), + new IntStringMapping(BSD.NOTE_REVOKE, "NOTE_REVOKE"), + }; + IntStringMapping [] procNoteMapping = { + new IntStringMapping(BSD.NOTE_EXIT, "NOTE_EXIT"), + new IntStringMapping(BSD.NOTE_FORK, "NOTE_FORK"), + new IntStringMapping(BSD.NOTE_EXEC, "NOTE_EXEC"), + new IntStringMapping(BSD.NOTE_TRACK, "NOTE_TRACK"), + new IntStringMapping(BSD.NOTE_TRACKERR, "NOTE_TRACKERR"), + }; +/* IntStringMapping [] netdevNoteMapping = { + new IntStringMapping(BSD.NOTE_LINKUP, "NOTE_LINKUP"), + new IntStringMapping(BSD.NOTE_LINKDOWN, "NOTE_LINKDOWN"), + new IntStringMapping(BSD.NOTE_LINKINV, "NOTE_LINKINV"), + }; +*/ + private long peer = createPeer(); + + private static native void initNative(); + private static native long createPeer(); + private static native void destroyPeer(long peer); + + static + { + initNative(); + } + + @Override + protected void finalize() throws Throwable { + try { + destroyPeer(peer); + peer = 0; + }finally{ + super.finalize(); + } + } + + + public native long get_ident(); + public native void set_ident(long ident); + + public native short get_filter(); + public native void set_filter(short filter); + + public native short get_flags(); + public native void set_flags(short flags); + + public native int get_fflags(); + public native void set_fflags(int fflags); + + public native long get_data(); + public native void set_data(long data); + + public native Object get_udata(); + public native void set_udata(Object udata); + + private String bitmaskToString(int value, IntStringMapping[] mapping){ + String bitmaskString = ""; + for(int i=0; i dirs = new HashMap(); + + // maps a KevetnID to a watch key. Used to find the watch key for an event + // that reports activity on the watched directory + private Map keys = new HashMap(); + private int closePipeReadFd; + private int closePipeWriteFd; + final private Object changeLock = new Object(); + + private Set signalledWatchKeys = new HashSet(); + private Queue pendingWatchKeys = new LinkedList(); + private static final long DEFAULT_POLLING_INTERVAL_MILLIS = 2000; // 2 seconds + private long pollingIntervalMillis = DEFAULT_POLLING_INTERVAL_MILLIS; + private int numKeysRequiringPolling; + + public BSDPathWatchService(){ + try { + String propertyValue = System.getProperty("name.pachler.io.file.BSDPathWatchService.pollingIntervalMillis", Long.toString(DEFAULT_POLLING_INTERVAL_MILLIS)); + pollingIntervalMillis = Long.parseLong(propertyValue); + }catch(Throwable t){ + // ignore, pllingIntervalMillis will still have its default value. + } + open(); + } + + @Override + public synchronized PathWatchKey register(Path path, Kind[] kinds, Modifier[] modifiers) throws IOException { + + PathImpl pathImpl = checkAndCastToPathImpl(path); + + int flags = makeFlagMask(kinds, modifiers); + + // check that user only provided supported flags and modifiers + int supportedFlags = (FLAG_FILTER_ENTRY_CREATE | FLAG_FILTER_ENTRY_DELETE | FLAG_FILTER_ENTRY_MODIFY | FLAG_FILTER_KEY_INVALID); + if((flags & ~supportedFlags) != 0) + throw new UnsupportedOperationException("The given watch event kind or modifier is not supported by this WatchService"); + + String pathname = pathImpl.getFile().getAbsolutePath(); + + PollingPathWatchKey key = null; + + // request changeLock + BSD.write(closePipeWriteFd, new byte[1], 1); + synchronized(changeLock){ + + if(kqueuefd == -1) + throw new ClosedWatchServiceException(); + + { + Integer dirfdInteger = dirs.get(pathname); + if(dirfdInteger != null) + key = keys.get(dirfdInteger); + } + + if(key == null){ + // no directory file fd registered - we'll need to open + // one now + + // create file descriptor and watch event first + boolean success = false; + int dirfd = -1; + try { + dirfd = BSD.open(pathname, BSD.O_RDONLY, 0); + if(dirfd == -1) + throw new IOException("error registering the path with the native OS: " + strerror(errno())); + kevent e = new kevent(); + e.set_ident(dirfd); + e.set_filter(EVFILT_VNODE); + e.set_flags((short)(EV_ADD | EV_CLEAR)); + e.set_fflags(NOTE_WRITE | NOTE_DELETE | NOTE_REVOKE); + int result = kevent(kqueuefd, new kevent[]{e}, null, null); + // do we need more specific error handling here? + if(result != 0) + throw new IOException("error registering the path with the native OS: " + strerror(errno())); + + // create watch key and add it to the key and dirs maps + key = new PollingPathWatchKey(this, path, 0); + keys.put(dirfd, key); + dirs.put(pathname, dirfd); + + } finally { + // if something went wrong, close descriptors + if(key == null){ + if(dirfd != -1){ + // if the descriptor has been added to the kqueue, + // it will be removed automatically when the descriptor + // closes. + BSD.close(dirfd); + } + } + } + } + + if(key != null && key.getFlags() != flags){ + // check if modification flag has changed; moddiff will + // be +1 if the ENTRY_MODIFIED flag was added, -1 if + // it was removed (and 0 if it didn't change) + int moddiff = 0; + moddiff += (flags & FLAG_FILTER_ENTRY_MODIFY)!=0 ? +1 : 0; + moddiff += (key.getFlags() & FLAG_FILTER_ENTRY_MODIFY)!=0 ? -1 : 0; + + numKeysRequiringPolling += moddiff; + key.setFlags(flags); + } + // retract request for change lock + BSD.read(closePipeReadFd, new byte[1], 1); + } + + // first poll to capture initial state + key.poll(); + + return key; + } + + @Override + synchronized void cancel(PathWatchKey pathWatchKey) { + // request change lock + byte[] b = new byte[1]; + write(closePipeWriteFd, b, 1); + synchronized(changeLock){ + boolean eventsAdded = cancelImpl(pathWatchKey); + if(eventsAdded) + queueKey(pathWatchKey); + + // clear request + int nread = read(closePipeReadFd, b, 1); + assert(nread == 1); + } + } + + private boolean cancelImpl(PathWatchKey pathWatchKey){ + PathImpl pathImpl = (PathImpl)pathWatchKey.getPath(); + String pathString = pathImpl.getFile().getPath(); + Integer dirfdInteger = dirs.get(pathString); + + // check if the key that was passed in is ours + if(dirfdInteger == null) + return false; // FIXME: should throw an exception in this case + PathWatchKey key = keys.get(dirfdInteger); + if(key != pathWatchKey) + return false; // FIXME: should throw an exception in this case + + boolean eventAdded = false; + + if((key.getFlags() & FLAG_FILTER_KEY_INVALID) != 0) + { + key.addWatchEvent(new VoidWatchEvent(ExtendedWatchEventKind.KEY_INVALID)); + eventAdded = true; + } + + + // if we get here, the key is ours, so we'll invalidate it and + // remove it now. + int dirfd = dirfdInteger.intValue(); + kevent[] changelist = new kevent[]{ new kevent() }; + changelist[0].set_ident(dirfd); + changelist[0].set_filter(EVFILT_VNODE); + changelist[0].set_flags(EV_DELETE); + int result = kevent(kqueuefd, changelist, null, null); + assert(result == 0); + + key.invalidate(); + if((key.getFlags() & FLAG_FILTER_ENTRY_MODIFY) != 0) + --numKeysRequiringPolling; + + keys.remove(dirfdInteger); + dirs.remove(pathString); + + return eventAdded; + } + + @Override + public synchronized boolean reset(PathWatchKey pathWatchKey) { + if(!pathWatchKey.isValid()) + return false; + if(pathWatchKey.hasPendingWatchEvents()) + pendingWatchKeys.add(pathWatchKey); + else + signalledWatchKeys.remove(pathWatchKey); + return true; + } + + private void open(){ + kqueuefd = kqueue(); + int[] pipefd = new int[2]; + int pipeResult = pipe(pipefd); + closePipeReadFd = pipefd[0]; + closePipeWriteFd = pipefd[1]; + + } + + @Override + public synchronized void close() throws IOException { + // request change lock + byte[] b = new byte[1]; + write(closePipeWriteFd, new byte[]{0}, 1); + + synchronized(changeLock){ + // close all file descriptors + BSD.close(kqueuefd); + kqueuefd = -1; + + int nread = read(closePipeReadFd, b, 1); + assert(nread == 1); + + BSD.close(closePipeReadFd); + BSD.close(closePipeWriteFd); + } + } + + @Override + public WatchKey poll() throws InterruptedException, ClosedWatchServiceException { + return pollImpl(0); + } + + @Override + public WatchKey poll(long timeout, TimeUnit unit) throws InterruptedException, ClosedWatchServiceException { + long millis = TimeUnit.MILLISECONDS.convert(timeout, unit); + return pollImpl(millis); + } + + @Override + public WatchKey take() throws InterruptedException, ClosedWatchServiceException { + return pollImpl(-1); + } + + private WatchKey pollImpl(long timeout) throws InterruptedException, ClosedWatchServiceException { + long lastStart = System.currentTimeMillis(); + do{ + // if there is a timeout specified, count down timeout + if(timeout != -1){ + long currentTime = System.currentTimeMillis(); + long lastDuration = currentTime - lastStart; + timeout -= lastDuration; + if(timeout < 0) + timeout = 0; + lastStart = currentTime; + } + + kevent[] eventlist = new kevent[32]; + + // FIXME: this should be chosen depending on whether we need to + // poll or not. + long selectTimeout = timeout; + if((timeout == -1 || timeout > pollingIntervalMillis) && numKeysRequiringPolling > 0) + selectTimeout = pollingIntervalMillis; + int nread = 0; + + synchronized(changeLock){ + // if we have pending watches, we're done and return the first one. + if(pendingWatchKeys.size() > 0) + return pendingWatchKeys.remove(); + + // check if watch key has been closed + if(kqueuefd == -1) + throw new ClosedWatchServiceException(); + + int[] readfds = {closePipeReadFd, kqueuefd }; + int selectResult = select(readfds, null, null, selectTimeout); + if(selectResult == -1){ + // check for interruption + if(BSD.errno() == BSD.EINTR) + throw new InterruptedException(); + // otherwise, this is another error that shouldn't occur + // here. + String message = BSD.strerror(BSD.errno()); + try { + close(); + } finally { + // the message string here is just for debugging + throw new ClosedWatchServiceException(); + } + } + if(readfds[0] == closePipeReadFd){ + // we have been requested to release the changeLock + continue; + } + + // we know now that kevent() will not block, because select() told us so... + if(readfds[1] == kqueuefd) + nread = kevent(kqueuefd, null, eventlist, null); + + if(nread == -1){ + if(nread == EINTR) + throw new InterruptedException(); + + try { + close(); + } finally { + // catch exception and throw ClosedWatchServiceException instead + throw new ClosedWatchServiceException(); + } + } + + if(nread > 0) + { + // go through all kevent structures and update keys + for(int i=0; i 0){ + // if we timed out and we have keys that need to be polled + for(PollingPathWatchKey key : keys.values()){ + // only poll keys that have the modification flag set - + // CREATE/DELETE are flagged in kevent + if((key.getFlags() & FLAG_FILTER_ENTRY_MODIFY) == 0) + continue; + boolean eventsAdded; + try { + eventsAdded = key.poll(); + } catch (FileNotFoundException ex) { + eventsAdded = cancelImpl(key); + } + if(eventsAdded) + queueKey(key); + } + } + + // now check for pending watch keys again + if(pendingWatchKeys.size() > 0) + return pendingWatchKeys.remove(); + + } // synchronized(changeLock) + } while(timeout > 0 || timeout == -1); + + return null; + } + + private void queueKey(PathWatchKey key) { + // if this key has pending events and is not signalled + // yet, set it to signalled. + if(!signalledWatchKeys.contains(key)) + { + signalledWatchKeys.add(key); + pendingWatchKeys.add(key); + } + } + + +} diff --git a/src/name/pachler/nio/file/impl/CloseableBlockingQueue.java b/src/name/pachler/nio/file/impl/CloseableBlockingQueue.java new file mode 100644 index 00000000..e1912dcc --- /dev/null +++ b/src/name/pachler/nio/file/impl/CloseableBlockingQueue.java @@ -0,0 +1,173 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.impl; + +import java.util.Collection; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.Queue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; +import name.pachler.nio.file.ClosedWatchServiceException; + +/** + * + * @author count + */ +class CloseableBlockingQueue implements BlockingQueue{ + Queue q = new LinkedList(); + + public synchronized boolean add(T e) { + try { + put(e); + } catch (InterruptedException ex) { + Logger.getLogger(CloseableBlockingQueue.class.getName()).log(Level.SEVERE, null, ex); + } + return true; + } + + public synchronized int drainTo(Collection clctn) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized int drainTo(Collection clctn, int maxNumElements) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean offer(T e) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean offer(T e, long l, TimeUnit tu) throws InterruptedException { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized T poll(long l, TimeUnit tu) throws InterruptedException { + if(q == null) + throw new ClosedWatchServiceException(); + T e = q.poll(); + if(e == null) + { + if(tu == null) + wait(); + else + wait(TimeUnit.MILLISECONDS.convert(l, tu)); + if(q == null) + throw new ClosedWatchServiceException(); + e = q.poll(); + } + return e; + } + + public synchronized void put(T e) throws InterruptedException { + if(q == null) + throw new ClosedWatchServiceException(); + boolean success = q.add(e); + assert(success); + if(success) + notify(); + } + + public synchronized int remainingCapacity() { + return Integer.MAX_VALUE; + } + + public synchronized T take() throws InterruptedException { + return poll(-1, null); + } + + public synchronized void close() { + q = null; + notifyAll(); + } + + public synchronized T poll() { + if(q == null) + throw new ClosedWatchServiceException(); + return q.poll(); + } + + public synchronized T remove() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized T peek() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized T element() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized int size() { + return q.size(); + } + + public synchronized boolean isEmpty() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean contains(Object o) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized Iterator iterator() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized Object[] toArray() { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized T[] toArray(T[] ts) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean remove(Object o) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean containsAll(Collection clctn) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean addAll(Collection clctn) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean removeAll(Collection clctn) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized boolean retainAll(Collection clctn) { + throw new UnsupportedOperationException("Not supported yet."); + } + + public synchronized void clear() { + throw new UnsupportedOperationException("Not supported yet."); + } + +} diff --git a/src/name/pachler/nio/file/impl/Linux.java b/src/name/pachler/nio/file/impl/Linux.java new file mode 100644 index 00000000..109cfc5a --- /dev/null +++ b/src/name/pachler/nio/file/impl/Linux.java @@ -0,0 +1,104 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.impl; + +/** + * + * @author count + */ +public class Linux extends Unix { + /* Supported events suitable for MASK parameter of INOTIFY_ADD_WATCH. */ + static final int IN_ACCESS = 0x00000001; /* File was accessed (read) (*) */ + static final int IN_MODIFY = 0x00000002; /* File was modified. */ + static final int IN_ATTRIB = 0x00000004; /* Metadata changed, e.g., permissions, timestamps, extended attributes, link count (since + Linux 2.6.25), UID, GID, etc. (*). */ + static final int IN_CLOSE_WRITE = 0x00000008; /* Writtable file was closed. */ + static final int IN_CLOSE_NOWRITE = 0x00000010; /* Unwrittable file closed. */ + static final int IN_CLOSE = (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE); /* Close. */ + static final int IN_OPEN = 0x00000020; /* File was opened. */ + static final int IN_MOVED_FROM = 0x00000040; /* File was moved from X. */ + static final int IN_MOVED_TO = 0x00000080; /* File was moved to Y. */ + static final int IN_MOVE = (IN_MOVED_FROM | IN_MOVED_TO); /* Moves. */ + static final int IN_CREATE = 0x00000100; /* Subfile was created. */ + static final int IN_DELETE = 0x00000200; /* Subfile was deleted. */ + static final int IN_DELETE_SELF = 0x00000400; /* Self was deleted. */ + static final int IN_MOVE_SELF = 0x00000800; /* Self was moved. */ + + /* Events sent by the kernel. */ + static final int IN_UNMOUNT = 0x00002000; /* Backing fs was unmounted. */ + static final int IN_Q_OVERFLOW = 0x00004000; /* Event queued overflowed. */ + static final int IN_IGNORED = 0x00008000; /* File was ignored. */ + + /* Special flags. */ + static final int IN_ONLYDIR = 0x01000000; /* Only watch the path if it is a + directory. */ + static final int IN_DONT_FOLLOW = 0x02000000; /* Do not follow a sym link. */ + static final int IN_MASK_ADD = 0x20000000; /* Add to the mask of an already + existing watch. */ + static final int IN_ISDIR = 0x40000000; /* Event occurred against dir. */ + static final int IN_ONESHOT = 0x80000000; /* Only send event once. */ + + /* All events which a program can wait on. */ + static final int IN_ALL_EVENTS = (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE + | IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM + | IN_MOVED_TO | IN_CREATE | IN_DELETE + | IN_DELETE_SELF | IN_MOVE_SELF); + + // these functions are direct mappings to linux kernel functions + native static int inotify_init(); + native static int inotify_add_watch(int fd, String pathname, int mask); + native static int inotify_rm_watch(int fd, int wd); + + + // some file system identifiers (from linux/magic.h). This list is by no + // way complete. + static final int NFS_SUPER_MAGIC = 0x6969; + static final int SMB_SUPER_MAGIC = 0x517B; + + static class statfs { + void set(long type, long bsize, long blocks, long bfree, long bavail, long files, long ffree, int namelen){ + f_type = type; + f_bsize = bsize; + f_blocks = blocks; + f_bfree = bfree; + f_bavail = bavail; + f_files = files; + f_ffree = ffree; + f_namelen = namelen; + } + + long f_type; + long f_bsize; + long f_blocks; + long f_bfree; + long f_bavail; + long f_files; + long f_ffree; + int f_namelen; + + } + + native static int statfs(String path, statfs stfs); + +} diff --git a/src/name/pachler/nio/file/impl/LinuxMovePathWatchEvent.java b/src/name/pachler/nio/file/impl/LinuxMovePathWatchEvent.java new file mode 100644 index 00000000..15bdadc1 --- /dev/null +++ b/src/name/pachler/nio/file/impl/LinuxMovePathWatchEvent.java @@ -0,0 +1,37 @@ +/* + * Syncany, www.syncany.org + * Copyright (C) 2011 Philipp C. Heckel + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package name.pachler.nio.file.impl; + +import name.pachler.nio.file.Path; + +/** + * + * @author Philipp C. Heckel + */ +public class LinuxMovePathWatchEvent extends PathWatchEvent { + private int cookie; + + public LinuxMovePathWatchEvent(Kind kind, Path path, int count, int cookie) { + super(kind, path, count); + this.cookie = cookie; + } + + public int getCookie() { + return cookie; + } +} diff --git a/src/name/pachler/nio/file/impl/LinuxPathWatchKey.java b/src/name/pachler/nio/file/impl/LinuxPathWatchKey.java new file mode 100644 index 00000000..f5b905b9 --- /dev/null +++ b/src/name/pachler/nio/file/impl/LinuxPathWatchKey.java @@ -0,0 +1,36 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.impl; + +import name.pachler.nio.file.Path; + +/** + * + * @author count + */ +public class LinuxPathWatchKey extends PathWatchKey { + public LinuxPathWatchKey(PathWatchService service, Path path, int flags) { + super(service, path, flags); + } +} diff --git a/src/name/pachler/nio/file/impl/LinuxPathWatchService.java b/src/name/pachler/nio/file/impl/LinuxPathWatchService.java new file mode 100755 index 00000000..c0952997 --- /dev/null +++ b/src/name/pachler/nio/file/impl/LinuxPathWatchService.java @@ -0,0 +1,504 @@ +/* + * Copyright 2008-2011 Uwe Pachler + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. This particular file is + * subject to the "Classpath" exception as provided in the LICENSE file + * that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package name.pachler.nio.file.impl; + +import name.pachler.nio.file.Path; +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedList; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Queue; +import java.util.Set; +import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; +import name.pachler.nio.file.ClosedWatchServiceException; +import name.pachler.nio.file.StandardWatchEventKind; +import name.pachler.nio.file.WatchEvent; +import name.pachler.nio.file.WatchEvent.Kind; +import name.pachler.nio.file.WatchKey; +import name.pachler.nio.file.ext.ExtendedWatchEventKind; +import static name.pachler.nio.file.impl.Linux.*; + +/** + *

This Linux implementation of the WatchService interface works without + * the use of threads or asynchronous I/O, using Linux' inotify file system + * event facitily.

+ *

The implementation hinges around select() to wait for events on the + * inotify file descriptor that each LinuxPathWatchService. Each time + * a WatchKey is registered (through Path.register(), which eventually calls + * register() on the LinuxPathWatchService), inotify_add_watch() is called + * on the service's inotify file descriptor.
+ * To wait for events, the take() and poll() methods use select() to + * wait for the inotify FD to become readable.
+ * However, a lot of things can happen while a thread is waiting inside + * poll() or take() with select(): + *