-
Notifications
You must be signed in to change notification settings - Fork 0
Initial pure JDK implementation #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 6 commits
Commits
Show all changes
89 commits
Select commit
Hold shift + click to select a range
17f0cf7
Started initial implementation
DavyLandman bb6c56f
First working test of directory watcher
DavyLandman 860ac75
Improved tests by removing sleeps
DavyLandman d3a47b4
Implemented initial recursive support
DavyLandman e6fc78a
Simplified recursive watcher
DavyLandman 4313b3e
Simplified JDKPoller singleton and avoided extra thread
DavyLandman 82615a3
Added recursive tests
DavyLandman a0ea7db
Implemented virtual events for new nested directories and files
DavyLandman a12b50e
Got checker framework to properly work
DavyLandman d58eff4
Added initial support for overflow event
DavyLandman 4f22795
Rewrote tests to start with a fresh directory
DavyLandman 4b3c167
Added full event support to the watcher interface
DavyLandman 2194412
Making sure not to leak watches
DavyLandman 515a56a
Added overflow support for the recursive watcher
DavyLandman 6812d78
Refactoring the functions to make them smaller
DavyLandman aff2b72
Rewrote recursive watcher to report to relative root
DavyLandman 829e506
Execute syntatic events in the correct order
DavyLandman c0a7f3f
Added torture tests to make sure everything works, even in very busy IO
DavyLandman 0858ca2
Cleanup of code
DavyLandman 46acd38
Bundle registered watches to avoid duplicate FS watches
DavyLandman de3ea33
Implemented single file support
DavyLandman 939e57b
Improve how long we wait for failure condition
DavyLandman 03ab088
Made the poller loop a bit more resistant to misbehaving callbacks
DavyLandman 54d4d88
Added test for delete behavior
DavyLandman 8cc2c39
Wrote javadocs
DavyLandman dd18b9b
Improved handling of deletes
DavyLandman 6a41f57
[ci] starting with ci
DavyLandman 1d4ced3
[ci] also run checker-framework
DavyLandman 0ccca4c
Fixed broken tests
DavyLandman 800d1b0
[ci] also test under different jdks
DavyLandman 9cf1997
[ci] make sure deletes are also torture tested
DavyLandman e028181
Fixed null errors found by CF
DavyLandman 174f4d6
Slight tweak to the documentation
DavyLandman fde2d6e
Improving the torture test to wait a bit long before events have stab…
DavyLandman 2bf0c75
Cleanup of test api usage
DavyLandman 66d588f
Trying to make the test run better on ci
DavyLandman bc777ef
Fixing broken test
DavyLandman c8d4fd5
Trying to make a better stabilizing torture test detection
DavyLandman 524d690
Change smoke test to wait for appropriate time
DavyLandman d8170f8
Trying to make give the tests a bit more time
DavyLandman b26a1a3
Improved the tests by splitting up the 2 torture tests
DavyLandman 6698332
Lets make sure sync events are generated more correctly
DavyLandman 3157d62
Better print for torture test
DavyLandman 44ed90c
Trying to unbreak the test suite
DavyLandman 51a6930
Only start watch after the directory has been processed, to avoid a r…
DavyLandman c9cee56
Disable delete test, which will mostly fail, as it can be a race with…
DavyLandman 424ad48
Fixed race on new directory watches in recursive watch in a better wa…
DavyLandman dae3f53
Trying to get the test to be faster
DavyLandman f282d49
Adding test to see if on linux the race breaks it
DavyLandman a5a76d6
Checking that we log what is thrown
DavyLandman 6e9ca1b
Trying to give windows a bit more time to work through the tests
DavyLandman 1666cf3
Trying to break the deadlock on linux
DavyLandman f97d8e0
Rewrote the register path to reduce the time in a limited thread spacve
DavyLandman 7b0bfbc
Added a catchup-loop to make sure we're not missing events in the rec…
DavyLandman 2090e35
Removed extra set that was just a premature optimization
DavyLandman 51cfb9e
Trying to really wait for all events to have stabilized
DavyLandman 5ca0fe3
Longer wait for stabilization
DavyLandman 1fbc69b
Running sync in a background thread to get initial events faster
DavyLandman 49da0a9
Trying my best to stabilize the torture tests
DavyLandman bfe3d74
Using await to just wait for the condition we care about
DavyLandman 38f9b9d
Increased timeouts on windows
DavyLandman eb388e8
Increased timeouts on windows
DavyLandman 14c501d
Increased timeouts on windows
DavyLandman bcc19a6
Moved towards native file watch support for windows and rewrote the A…
DavyLandman 0d5a969
Nullable fix
DavyLandman 6eca5ff
Increase the pressure a bit for the torture test
DavyLandman 3a106ff
Do not print the exception everytime
DavyLandman e4f87a9
Applied all the comments from @sungshik
DavyLandman 538b045
Added a bit more comment
DavyLandman 39a8b74
Added registration test
DavyLandman e1c7186
Extra test around registration
DavyLandman 096a6f9
Renamed enums and processes review comments
DavyLandman de22a03
Working on the fix for the race Sung found
DavyLandman 7006548
Removed races around registering and unregistering by adding a big ol…
DavyLandman 80628ab
Tweaked the test a bit
DavyLandman d6b1f28
Improved torture tests
DavyLandman 4f8cf59
Fixed bug around fast registration and unregistration in JDKPoller
DavyLandman 85efd25
Fixed test that would be triggered by events spread over different wo…
DavyLandman 5bcf1ce
Remove JDK watch only after a delay, just to avoid hammering the regi…
DavyLandman ac9c73e
Extended readme with example and description
DavyLandman 69870e2
Slight wording fix
DavyLandman 9095927
Apply suggestions from code review
DavyLandman fb01d39
Improve documentation of `PATH_ONLY` watch scopes
sungshik 23b239b
Refine test (deleteOfFileInDirectoryShouldBeVisible)
sungshik 88170a2
Tweaked documentation a bit
DavyLandman 87c63e6
Moved JDK classes to its own namespace
DavyLandman d392f1c
Improved impl directory
DavyLandman 982ce65
Make sure to have a dedicated interface, to allow for future addition…
DavyLandman d1b6e9e
Missed refactor of test
DavyLandman File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| package engineering.swat.watch; | ||
|
|
||
| public enum WatchScope { | ||
| SINGLE, | ||
| INCLUDING_CHILDREN, | ||
| INCLUDING_ALL_DESCENDANTS | ||
| } | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.