NetBeans Architecture Answers for Master Filesystem module

WARNING: answering questions version 1.23 rather than the current 1.29.

Interfaces table

Group of java interfaces
Interface NameIn/OutStabilitySpecified in What Document?
MasterFileSystemAPIExportedFriend .../masterfs/providers/package-summary.html

UtilitiesAPIImportedOfficial .../org/openide/util/doc-files/api.html

LookupAPIImportedOfficial .../org/openide/util/doc-files/api.html

The module is needed for compilation. The module is used during runtime. Specification version 8.10 is required.

FilesystemsAPIImportedOfficial .../openide/filesystems/doc-files/api.html

The module is needed for compilation. The module is used during runtime. Specification version 9.4 is required.

GeneralQueriesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 1.27 is required.

ModulesAPIImportedOfficial

The module is needed for compilation. The module is used during runtime. Specification version 7.29 is required.

WeakListener.setAccessibleImportedUnder Development

The module is needed for compilation. The module is used during runtime. Specification version 9.3 is required.

FileObjectMoveLookupImportedFriend

BaseFileObj implementation of FileObject is using a reflection to re-associate the lookup after a move operation. This is a contract established with openide.filesystems module.

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().


General Information


Project and platform dependencies


Deployment


Compatibility with environment


Access to resources


Lookup of components


Execution Environment


Format of files and protocols


Performance and Scalability


Built on October 21 2017.  |  Portions Copyright 1997-2017 Oracle. All rights reserved.