MasterFS API - Architecture Review Opinion
- Issue: 40958
- Submitter: Radek Matous
- Inception Date: 2004/04/14
- Reviewers: Jaroslav Tulach, Miloslav Metelka, Tomas Pavek
- Content
-
MasterFileSystem is a module providing an umbrella implementation
over all filesystems used in the IDE. MasterFS plays a role of the arbiter that controls instantiation and life cycle of
FileObjects (provided by the delegated filesystems). The need
of the MasterFS has arisen with the new project environment in NB 4.0 where
specialized filesystems may overlap easily (like the VCS filesystem over the
local filesystem). See also the complete requirements
document.
Accepted with change requests.
We have found the MasterFS module well reasoned and prepared. Suggested just
several changes that were more or less already planned by the team.
Agreed that the API will be classified as friend for promo D. The API
user will be the vcscore module only.
Agreed that java.io.File should be used rather than String with abstract path
in parameters in MountSupport (issue 40344).
Agreed with the limitation that the mounting points for delegated filesystems
cannot be files but only folders (due to unresolved problems with files being
turned to folders). See also issue 41779.
As the API will be friend (for vcscore module), we require to repackage it --
away from the official namespace (as used so far). Recommended to put all the classes to one package. This was already planned by the impl. team.
This is a TCR.
As the VCSFilesystem already uses the MasterFS, remove current hacks in projects
that listen on repository for mounted VCS filesystems and mounts them to Master
FS (HackedVCSProvider). This is a TCR.
We suggest the team to think about how MasterFS could help other modules (e.g. MDR) with listening on external file changes
-- e.g. by providing some effective refreshing of whole file trees. Possible approaches were discussed with conclusion that real requirements and use cases are needed to be known first.
The required changes would be probably of bigger scope, affecting the
Filesystems API too. This is a TCA.
Though this is not strictly MasterFS issue, we've also discussed how the delegated filesystems should behave. Agreed on that
they should not hide any files (like e.g. VCSFileystem currently does)
because hidden files are invisible and unreachable for the IDE and that may
cause consistency problems in some operations (like directory copy). Hiding
should be done rather in a presentation layer based on some hints provided by
the filesystem implementation. Farther investigation and cooperation with VCS
team was suggested.
None.
42014 Repackage MasterFS API
42038 Remove HackedVCSProvider
42021 Lightweight recursive refresh in MasterFS
MasterFileSystem's
reqs and spec