SAP / SAP/neonbee

Consider switching to Apache Commons IO Monitor instead of using the NIO2 WatchService

Open
#71 2 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Java
Stars
44
Forks
19
Avg merge
1d 12h
Merged PRs (30d)
4

Description

Currently using the NIO2 WatchService in Java turned out to be a huge pain, due to the JVM internal implementation approach. We never achieved to have a consistent behaviour across all operating systems, which e.g. led to us having to disable all WatchVerticle related tests in our containerized build on GitHub (see [1] explaining why).

After consultation with @gedack he raised the idea of switching to Apache Commons IO Monitor as an alternative to use WatchService. It shall be clarified in a PoC whether that is a more viable approach.

[1] https://blog.arkey.fr/2019/09/13/watchservice-and-bind-mount/

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the NIO2 WatchService usage and the disabled WatchVerticle-related tests, then compare them with Apache Commons IO Monitor. The PoC should establish whether the alternative provides more consistent behavior across operating systems and is viable for the project.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.