Skip navigation links
org.netbeans.modules.masterfs/2 2.80.0 2

Master Filesystem
Friend, Private or Third Party

MasterFileSystem exports SPI for versioning support.

See: Description

Master Filesystem 
Package Description
org.netbeans.modules.masterfs.providers  

MasterFileSystem exports SPI for versioning support. There is expected that module that provides implementation of FileSystem that should be plugable into MasterFileSystem must implement at least FileSystemProvider. MasterFileSystem doesn't provide pure client API but has tiny API that is intended just for SPI providers (slightly disputable if it should be called API or SPI). All SPI are plugable, registred by Lookup.

What is New (see all changes)?

Use Cases

MasterFileSystem is just implementation of FileSystem. There are no special use cases. FileObjects erlier returned from URLMapper or FileUtil.fromFile provided by LocalFileSystem or CvsFileSystem will be now provided by MasterFileSystem. There will be guaranteed that there won't be more instances of FileObject addressing one java.ioFile.

Exported Interfaces

This table lists all of the module exported APIs with defined stability classifications. It is generated based on answers to questions about the architecture of the module. Read them all...
Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
MasterFileSystemAPIExportedFriend .../masterfs/providers/package-summary.html

Group of property interfaces
Interface NameIn/OutStabilitySpecified in What Document?
refreshSlowExportedPrivate

One can ask FileObject.getAttribute("refreshSlow") and obtain an instance of Runnable with intricate behavior. This is a private contract used from core.ui module to show refresh progress and tested in masterfs/test/unit/src/org/netbeans/modules/masterfs/SlowRefreshTest.java.

Group of systemproperty interfaces
Interface NameIn/OutStabilitySpecified in What Document?
org.netbeans.modules.masterfs.watcher.disableExportedPrivate

It is possible to disable native listening on filesystem changes. Useful mostly in testing environment, but it may be interesting for some users too. Don't rely (much) on this property from production code however.

org.netbeans.modules.masterfs.watcher.FAMExportedPrivate

It is possible to enable use of FAM notifier on Solaris disabled by default. Useful mostly in testing environment, but it may be interesting for some users too. Don't rely (much) on this property from production code however.

org.netbeans.modules.masterfs.caseExportedPrivate

To address problems when mixing various types of network file systems (as described in bug 198946) there is a special property org.netbeans.modules.masterfs.case that can be set to sensitive or insensitive value in order to override the system default. This is intended only for end user consumption, not for consumption by other parts of the system. The name and meaning of this property may change in any release.

org.netbeans.io.suspendExportedUnder Development

Native listeners check the org.netbeans.io.suspend property. If it is set to integer greater than zero, they stop delivering file change events. The list of modified directories is recorded (its size is made available by setting its string value into org.netbeans.io.pending property), but its processing is suspended. Events are delivered when org.netbeans.io.suspend property changes its value to 0 or becomes empty.

I/O intensive operations in other NetBeans modules are advised to honour the org.netbeans.io.suspend property as well and suspend their I/O activities too.

In order to properly communicate changes to the property between multiple receivers and multiple controllers it is suggested to only manipulate the value under synchronized("org.netbeans.io.suspend".intern()) lock. Those changing the value are supposed to increment it by one when they request the suspend and decrement it by one when they want to resume their own suspend.

Whenever a change to the state of the property is made, controllers are supposed to "org.netbeans.io.suspend".intern().notifyAll().

Implementation Details

What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?
Nothing currently. Most "clients" are really callers of FileUtil.toFileObject and so on, and thus implicitly depend on the existence of this module. In the future a provide-require token might make sense.

Read more about the implementation in the answers to architecture questions.

Skip navigation links
org.netbeans.modules.masterfs/2 2.80.0 2