Java 7 introduces a great API for writing custom file systems. Consider a use case where I don't want to implement a new file system, I just want to tweak the behavior of the existing one. For example, flip every bit that is written/read from it.
It seems to me that the current jdk just does not have the appropriate facilities for this. AbstractFileSystemProvider, the provider that WindowsFileSystemProvider extends is package-private so I can't reuse it. I didn't even find the concrete implementation for Linux.
Problem #1: There is no useful abstraction of the current file system for extension.
Let's assume I extend only for Windows. WindowsFileSystemProvider is public, so I can actually easily override the newByteChannel and be done with it. But Alas!
Problem #2: WindowsFileSystem is not public, so I actually have to code an entirely new FileSystem just to introduce a new Provider.
Am I missing something or is this feature completely raw and not ready to be used by application writers?