blob: 771b03227793bd7c548ff26dd2388c437e66be0f [file] [log] [blame]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change History for the MasterFileSystem API</title>
<link rel="stylesheet" href="prose.css" type="text/css">
</head>
<body>
<p class="overviewlink">
<a href="overview-summary.html" shape="rect">Overview</a>
</p>
<h1>Introduction</h1>
<p>This document lists changes made to the <a href="" shape="rect">MasterFileSystem API</a>.</p>
<!-- The actual lists of changes, as summaries and details: -->
<hr>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#masterfs">MasterFileSystem API</a>
</li>
</ul>
<h1>
<a name="incompat-by-date">Incompatible changes by date</a>
</h1>
<p>Fuller descriptions of all changes can be found below (follow links).</p>
<p>Not all deprecations are listed here, assuming that the deprecated
APIs continue to essentially work. For a full deprecation list, please
consult the
<a href="deprecated-list.html">Javadoc</a>.</p>
<ul>
<li>(Oct 3 '14) <a href="#image.for.files">Split image handling into UI module</a>
</li>
<li>(Mar 2 '12) <a href="#fileLocked.io.exception">fileLocked method can throw <code>IOException</code></a>
</li>
<li>(Jan 8 '08) <a href="#fileobject-instances-are-not-issued-after-external-changes">Fileobject instances are not issued after external changes</a>
</li>
<li>(Jan 8 '08) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Oct 3 '14) <a href="#image.for.files">Split image handling into UI module</a>
</li>
<li>(May 14 '14) <a href="#actions.for.files">Deprecating actions(Set of FileObjects)</a>
</li>
<li>(Jan 11 '13) <a href="#org.netbeans.io.suspend">A property to suspend native listeners</a>
</li>
<li>(Mar 2 '12) <a href="#fileLocked.io.exception">fileLocked method can throw <code>IOException</code></a>
</li>
<li>(Dec 31 '11) <a href="#notifier">External change notifiers in separate modules</a>
</li>
<li>(Feb 1 '11) <a href="#canWrite">Determine if a ProvidedExtensions instance should be used to get a files canWrite() value</a>
</li>
<li>(Aug 27 '10) <a href="#copy-handler">Delegate FileObject.copy() to ProvidedExtensions</a>
</li>
<li>(Jun 22 '10) <a href="#event-order">Guaranteed event order when deleting and creating files and new calls in ProvidedExtensions</a>
</li>
<li>(May 12 '10) <a href="#priority-io"><code>ProvidedExtensions.priorityIO</code> to suspend background refresh</a>
</li>
<li>(Apr 16 '10) <a href="#recursive-control"><code>ProvidedExtensions.refreshRecursively</code> was added.</a>
</li>
<li>(Mar 20 '08) <a href="#added-canWrite-friend-contract-for-versioning-systems"><code>ProvidedExtensions.canWrite</code> was added.</a>
</li>
<li>(Jan 8 '08) <a href="#fileobject-instances-are-not-issued-after-external-changes">Fileobject instances are not issued after external changes</a>
</li>
<li>(Jan 8 '08) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li>
<li>(Jun 15 '07) <a href="#added-filelock-notification-for-versioning-systems"><code>ProvidedExtensions.fileLock</code> and <code>ProvidedExtensions.fileUnlock</code> was added.</a>
</li>
<li>(Feb 12 '07) <a href="#added-support-for-local-history"><code>ProvidedExtensions.beforeChange</code> was added.</a>
</li>
<li>(Aug 8 '06) <a href="#added-support-for-subversion-delete"><code>ProvidedExtensions.getDeleteHandler</code> was added.</a>
</li>
<li>(Apr 24 '06) <a href="#added-support-for-subversion"><code>ProvidedExtensions</code> was added.</a>
</li>
</ul>
<h1>
<a name="all-by-version">Changes by version</a>
</h1>
<p>
These API specification versions may be used to indicate that a module
requires a certain API feature in order to function. For example, if you
see here a feature you need which is labelled <samp>1.20</samp>, your
manifest should contain in its main attributes the line:
</p>
<pre>OpenIDE-Module-Module-Dependencies: org.netbeans.modules.masterfs &gt; 1.20</pre>
<ul>
<li>
(2.50) <a href="#image.for.files">Split image handling into UI module</a>
</li>
<li>
(2.48) <a href="#actions.for.files">Deprecating actions(Set of FileObjects)</a>
</li>
<li>
(2.42) <a href="#org.netbeans.io.suspend">A property to suspend native listeners</a>
</li>
<li>
(2.37) <a href="#fileLocked.io.exception">fileLocked method can throw <code>IOException</code></a>
</li>
<li>
(2.36) <a href="#notifier">External change notifiers in separate modules</a>
</li>
<li>
(2.30) <a href="#canWrite">Determine if a ProvidedExtensions instance should be used to get a files canWrite() value</a>
</li>
<li>
(2.28) <a href="#copy-handler">Delegate FileObject.copy() to ProvidedExtensions</a>
</li>
<li>
(2.27) <a href="#event-order">Guaranteed event order when deleting and creating files and new calls in ProvidedExtensions</a>
</li>
<li>
(2.25) <a href="#priority-io"><code>ProvidedExtensions.priorityIO</code> to suspend background refresh</a>
</li>
<li>
(2.24) <a href="#recursive-control"><code>ProvidedExtensions.refreshRecursively</code> was added.</a>
</li>
<li>
(2.14) <a href="#added-canWrite-friend-contract-for-versioning-systems"><code>ProvidedExtensions.canWrite</code> was added.</a>
</li>
<li>
(2.13) <a href="#fileobject-instances-are-not-issued-after-external-changes">Fileobject instances are not issued after external changes</a>
</li>
<li>
(2.13) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li>
<li>
(1.11) <a href="#added-filelock-notification-for-versioning-systems"><code>ProvidedExtensions.fileLock</code> and <code>ProvidedExtensions.fileUnlock</code> was added.</a>
</li>
<li>
(1.10) <a href="#added-support-for-local-history"><code>ProvidedExtensions.beforeChange</code> was added.</a>
</li>
<li>
(1.9) <a href="#added-support-for-subversion-delete"><code>ProvidedExtensions.getDeleteHandler</code> was added.</a>
</li>
<li>
(1.9) <a href="#added-support-for-subversion"><code>ProvidedExtensions</code> was added.</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.modules.masterfs.providers.AnnotationProvider"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>AnnotationProvider</code></a>
</h2><ul><li>(May 14 '14) <a href="#actions.for.files">Deprecating actions(Set of FileObjects)</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.AutoMountProvider"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>AutoMountProvider</code></a>
</h2><ul><li>(Jan 8 '08) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.BaseAnnotationProvider"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>BaseAnnotationProvider</code></a>
</h2><ul><li>(Oct 3 '14) <a href="#image.for.files">Split image handling into UI module</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.FileSystemProvider"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>FileSystemProvider</code></a>
</h2><ul><li>(Jan 8 '08) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.MountSupport"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>MountSupport</code></a>
</h2><ul><li>(Jan 8 '08) <a href="#dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.Notifier"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>Notifier</code></a>
</h2><ul><li>(Dec 31 '11) <a href="#notifier">External change notifiers in separate modules</a>
</li></ul><h2>
<a name="org.netbeans.modules.masterfs.providers.ProvidedExtensions"><code><span style="color:gray">org.netbeans.modules.masterfs.providers.</span>ProvidedExtensions</code></a>
</h2><ul><li>(Mar 2 '12) <a href="#fileLocked.io.exception">fileLocked method can throw <code>IOException</code></a>
</li>
<li>(Feb 1 '11) <a href="#canWrite">Determine if a ProvidedExtensions instance should be used to get a files canWrite() value</a>
</li>
<li>(Aug 27 '10) <a href="#copy-handler">Delegate FileObject.copy() to ProvidedExtensions</a>
</li>
<li>(Jun 22 '10) <a href="#event-order">Guaranteed event order when deleting and creating files and new calls in ProvidedExtensions</a>
</li>
<li>(May 12 '10) <a href="#priority-io"><code>ProvidedExtensions.priorityIO</code> to suspend background refresh</a>
</li>
<li>(Apr 16 '10) <a href="#recursive-control"><code>ProvidedExtensions.refreshRecursively</code> was added.</a>
</li>
<li>(Jun 15 '07) <a href="#added-filelock-notification-for-versioning-systems"><code>ProvidedExtensions.fileLock</code> and <code>ProvidedExtensions.fileUnlock</code> was added.</a>
</li>
<li>(Feb 12 '07) <a href="#added-support-for-local-history"><code>ProvidedExtensions.beforeChange</code> was added.</a>
</li>
<li>(Aug 8 '06) <a href="#added-support-for-subversion-delete"><code>ProvidedExtensions.getDeleteHandler</code> was added.</a>
</li>
<li>(Apr 24 '06) <a href="#added-support-for-subversion"><code>ProvidedExtensions</code> was added.</a>
</li></ul><hr>
<h1>
<a name="details-by-api">Details of all changes by API and date</a>
</h1>
<hr style="width:50%">
<h2>
<a name="masterfs">MasterFileSystem API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="image.for.files">Split image handling into UI module</a>
</h3>
<em>Oct 3 '14; API spec. version: 2.50; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/BaseAnnotationProvider.html"><code>BaseAnnotationProvider</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=247200">
#247200</a></em>
<br>
Image handling moved to <code>masterfs.ui</code> module, AnnotationProvider
API changed.
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="actions.for.files">Deprecating actions(Set of FileObjects)</a>
</h3>
<em>May 14 '14; API spec. version: 2.48; affected top-level classes: <code>org.netbeans.modules.masterfs.providers.AnnotationProvider</code>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=243265">
#243265</a></em>
<br>
Adding <code>findExtrasFor</code> method to replace
direct reference to <code>javax.swing.Actions</code>.
See <a href="../org-netbeans-modules-masterfs-ui/org/netbeans/modules/masterfs/providers/AnnotationProvider.html" shape="rect">
AnnotationProvider
</a> in <code>masterfs.ui</code> module.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="org.netbeans.io.suspend">A property to suspend native listeners</a>
</h3>
<em>Jan 11 '13; API spec. version: 2.42; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=222193">
#222193</a></em>
<br>
A <a href="architecture-summary.html#systemproperty-org.netbeans.io.suspend" shape="rect">
way</a> to temporarily suspend native listeners.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="fileLocked.io.exception">fileLocked method can throw <code>IOException</code></a>
</h3>
<em>Mar 2 '12; API spec. version: 2.37; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=208657">
#208657</a></em>
<br>
Changing the <code>fileLocked</code> method to
throw <a href="http://download.oracle.com/javase/8/docs/api/java/io/IOException.html" shape="rect">IOException</a> is
source incompatible, but
binary compatible. As masterfs friends are always compiled at the same time as
masterfs, and even if they will not, they will link (as the change is binary
compatible), we modified the method signature to throw
<a href="http://download.oracle.com/javase/8/docs/api/java/io/IOException.html" shape="rect">IOException</a>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="notifier">External change notifiers in separate modules</a>
</h3>
<em>Dec 31 '11; API spec. version: 2.36; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/Notifier.html"><code>Notifier</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=206434">
#206434</a></em>
<br>
Implementation of <em>native listeners</em> has been moved
to separate modules, so the masterfs itself does not depend
on JNA library.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="canWrite">Determine if a ProvidedExtensions instance should be used to get a files canWrite() value</a>
</h3>
<em>Feb 1 '11; API spec. version: 2.30; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=194683">
#194683</a></em>
<br>
Introduced a new constructor parameter <code>providesCanWrite</code> to specify if a
ProvidedExtensions instance is meant to provide the canWrite() value for a file.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="copy-handler">Delegate FileObject.copy() to ProvidedExtensions</a>
</h3>
<em>Aug 27 '10; API spec. version: 2.28; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=189921">
#189921</a></em>
<br>
ProvidedExtensions.getCopyHandler() allows to delegate a copy operation.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="event-order">Guaranteed event order when deleting and creating files and new calls in ProvidedExtensions</a>
</h3>
<em>Jun 22 '10; API spec. version: 2.27; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=133855">
#133855</a></em>
<br>
<ul>
<li>
Guaranteed event order when deleting and creating files in atomic action -
<code>createSuccess</code> and <code>deleteSuccess</code> are called imediatelly
after a file is created or deleted.
</li>
<li> new calls <code>createdExternally</code>, <code>deletedExternally</code>,
<code>fileChanged</code>, <code>beforeMove</code>,
<code>moveSuccess</code>, <code>moveFailure</code>
</li>
</ul>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="priority-io"><code>ProvidedExtensions.priorityIO</code> to suspend background refresh</a>
</h3>
<em>May 12 '10; API spec. version: 2.25; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=181684">
#181684</a></em>
<br>
<p>
<code>ProvidedExtensions.priorityIO</code> allows
parsing API to suspend background I/O activity after refresh
of main window.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="recursive-control"><code>ProvidedExtensions.refreshRecursively</code> was added.</a>
</h3>
<em>Apr 16 '10; API spec. version: 2.24; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: jtulach; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=181684">
#181684</a></em>
<br>
<p>
<code>ProvidedExtensions.refreshRecursively</code> allows
various version control providers to get better control
on behavior of recursive listener.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="added-canWrite-friend-contract-for-versioning-systems"><code>ProvidedExtensions.canWrite</code> was added.</a>
</h3>
<em>Mar 20 '08; API spec. version: 2.14; made by: msandor; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=130044">
#130044</a></em>
<br>
<p>
<code>ProvidedExtensions.canWrite</code> which is called when
<code>MasterFileSystem</code> queries the <code>FileObject</code> for writability.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="fileobject-instances-are-not-issued-after-external-changes">Fileobject instances are not issued after external changes</a>
</h3>
<em>Jan 8 '08; API spec. version: 2.13; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=123542">
#123542</a></em>
<br>
<code>FileObject</code> instances are not guaranteed to be issued if files, folders
were not created, deleted, modified by FileSystem API and method <code>refresh</code> wasn't properly
called. These methods were semantically changed:
<ul>
<li>
<code>FileObject.getFileObject</code>
</li>
<li>
<code>FileSystem.findResource</code>
</li>
<li>
<code>FileObject.getChildren</code>
</li>
</ul>
<p>Method <code>FileUtil.toFileObject</code> should still work as before.</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="dropped-friend-contract-for-org-netbeans-modules-vcscore">Simplify MasterFS, do not delegate on other embedded FS</a>
</h3>
<em>Jan 8 '08; API spec. version: 2.13; affected top-level classes: <code>org.netbeans.modules.masterfs.providers.MountSupport</code> <code>org.netbeans.modules.masterfs.providers.FileSystemProvider</code> <code>org.netbeans.modules.masterfs.providers.AutoMountProvider</code>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=123542">
#123542</a></em>
<br>
Friend contract for <code>org.netbeans.modules.vcscore</code> broken. Following classes deleted:
<code>MountSupport</code>, <code>FileSystemProvider</code>, <code>AutoMountProvider</code>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="added-filelock-notification-for-versioning-systems"><code>ProvidedExtensions.fileLock</code> and <code>ProvidedExtensions.fileUnlock</code> was added.</a>
</h3>
<em>Jun 15 '07; API spec. version: 1.11; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=106479">
#106479</a></em>
<br>
<p>
<code>ProvidedExtensions.fileLock</code> which is called after
<code>MasterFileSystem</code> locks <code>FileObject</code>
</p>
<p>
<code>ProvidedExtensions.fileUnlock</code> which is called after
<code>FileObject</code> is unlocked.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="added-support-for-local-history"><code>ProvidedExtensions.beforeChange</code> was added.</a>
</h3>
<em>Feb 12 '07; API spec. version: 1.10; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=92676">
#92676</a></em>
<br>
<p>
<code>ProvidedExtensions.beforeChange</code>which is called by
<code>MasterFileSystem</code> when <code>FileObject</code>
is going to be modified by asking for <code>OutputStream</code>.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="added-support-for-subversion-delete"><code>ProvidedExtensions.getDeleteHandler</code> was added.</a>
</h3>
<em>Aug 8 '06; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=81510">
#81510</a></em>
<br>
<p>
<code>ProvidedExtensions.getDeleteHandler</code> was added, which
is the way how to impose handlers for
deleting into mastersfs implementation
which was required by module org.netbeans.modules.subversion.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="added-support-for-subversion"><code>ProvidedExtensions</code> was added.</a>
</h3>
<em>Apr 24 '06; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/modules/masterfs/providers/ProvidedExtensions.html"><code>ProvidedExtensions</code></a>; made by: rmatous; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=73042">
#73042</a></em>
<br>
<p>
<code>ProvidedExtensions</code> was added.
Registering subclass of <code>ProvidedExtensions</code>
as a substitution of <code>InterceptionListener</code> is the way
how to impose handlers for renaming and moving into mastersfs implementation
which was required by module org.netbeans.modules.subversion.
</p>
<hr>
<p><span class="footnote">Built on September 14 2018.&nbsp;&nbsp;|&nbsp;&nbsp; Copyright &#169; 2017-2018 Apache Software Foundation. All Rights Reserved.</span></p>
</body>
</html>