blob: 37d0318e0abe119c548036a8a5c4de3d3d644ed8 [file] [log] [blame]
<html>
<!--
NO NO NO NO NO!
==============> DO NOT EDIT ME! <==============
AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT
SEE CHANGEME/apichanges.xml
-->
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change History for the Versioning SPI</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 Versioning SPI.</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="#versioning_spi">Versioning SPI</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></ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(Nov 16 '12) <a href="#issue-221831">Support ContextAwareActions</a>
</li>
<li>(Apr 12 '12) <a href="#issue-210691">Support ContextAwareActions</a>
</li>
<li>(Apr 12 '12) <a href="#issue-209673">Added VCSHistoryProvider.HistoryEntry.getParent()</a>
</li>
<li>(Jan 30 '12) <a href="#issue-207126">Added VCSHistoryProvider</a>
</li>
<li>(Jul 19 '11) <a href="#issue-199986">isExcluded() added to VersioningSupport</a>
</li>
<li>(May 23 '11) <a href="#issue-196290">New @VersioningSystem.Registration annotation</a>
</li>
<li>(Aug 27 '10) <a href="#issue-189921">beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor</a>
</li>
<li>(Apr 19 '10) <a href="#issue-181684">refreshRecursively() method added to VCSInterceptor</a>
</li>
<li>(Dec 8 '09) <a href="#issue-146634">Added getVisibilityQueryImplementation() method to VersioningSystem</a>
</li>
<li>(May 12 '09) <a href="#issue-158681">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</li>
<li>(Jun 27 '08) <a href="#issue-137822">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</li>
<li>(Mar 30 '08) <a href="#issue-130044">Added isMutable() method to VCSInterceptor</a>
</li>
<li>(Jan 25 '08) <a href="#issue-125853">Added getFiles() method to VCSContext</a>
</li>
<li>(Jun 15 '07) <a href="#version-1.5">Added beforeEdit method to VCSInterceptor</a>
</li>
<li>(Apr 18 '07) <a href="#version-1.4">Initial version of SPI released</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.versioning &gt; 1.20</pre>
<ul>
<li>
(1.37) <a href="#issue-221831">Support ContextAwareActions</a>
</li>
<li>
(1.31) <a href="#issue-210691">Support ContextAwareActions</a>
</li>
<li>
(1.30) <a href="#issue-209673">Added VCSHistoryProvider.HistoryEntry.getParent()</a>
</li>
<li>
(1.29) <a href="#issue-207126">Added VCSHistoryProvider</a>
</li>
<li>
(1.25) <a href="#issue-199986">isExcluded() added to VersioningSupport</a>
</li>
<li>
(1.24) <a href="#issue-196290">New @VersioningSystem.Registration annotation</a>
</li>
<li>
(1.18) <a href="#issue-189921">beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor</a>
</li>
<li>
(1.17) <a href="#issue-181684">refreshRecursively() method added to VCSInterceptor</a>
</li>
<li>
(1.10) <a href="#issue-146634">Added getVisibilityQueryImplementation() method to VersioningSystem</a>
</li>
<li>
(1.9) <a href="#issue-158681">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</li>
<li>
(1.8) <a href="#issue-137822">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</li>
<li>
(1.7) <a href="#issue-130044">Added isMutable() method to VCSInterceptor</a>
</li>
<li>
(1.6) <a href="#issue-125853">Added getFiles() method to VCSContext</a>
</li>
<li>
(1.5) <a href="#version-1.5">Added beforeEdit method to VCSInterceptor</a>
</li>
<li>
(1.4) <a href="#version-1.4">Initial version of SPI released</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.modules.versioning.spi.VCSContext"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VCSContext</code></a>
</h2><ul><li>(Jan 25 '08) <a href="#issue-125853">Added getFiles() method to VCSContext</a>
</li></ul><h2>
<a name="org.netbeans.modules.versioning.spi.VCSHistoryProvider"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VCSHistoryProvider</code></a>
</h2><ul><li>(Apr 12 '12) <a href="#issue-210691">Support ContextAwareActions</a>
</li>
<li>(Apr 12 '12) <a href="#issue-209673">Added VCSHistoryProvider.HistoryEntry.getParent()</a>
</li></ul><h2>
<a name="org.netbeans.modules.versioning.spi.VCSInterceptor"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VCSInterceptor</code></a>
</h2><ul><li>(Aug 27 '10) <a href="#issue-189921">beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor</a>
</li>
<li>(Apr 19 '10) <a href="#issue-181684">refreshRecursively() method added to VCSInterceptor</a>
</li>
<li>(May 12 '09) <a href="#issue-158681">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</li>
<li>(Mar 30 '08) <a href="#issue-130044">Added isMutable() method to VCSInterceptor</a>
</li></ul><h2>
<a name="org.netbeans.modules.versioning.spi.VCSVisibilityQuery"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VCSVisibilityQuery</code></a>
</h2><ul><li>(Nov 16 '12) <a href="#issue-221831">Support ContextAwareActions</a>
</li></ul><h2>
<a name="org.netbeans.modules.versioning.spi.VersioningSupport"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VersioningSupport</code></a>
</h2><ul><li>(Jan 30 '12) <a href="#issue-207126">Added VCSHistoryProvider</a>
</li>
<li>(Jul 19 '11) <a href="#issue-199986">isExcluded() added to VersioningSupport</a>
</li></ul><h2>
<a name="org.netbeans.modules.versioning.spi.VersioningSystem"><code><span style="color:gray">org.netbeans.modules.versioning.spi.</span>VersioningSystem</code></a>
</h2><ul><li>(May 23 '11) <a href="#issue-196290">New @VersioningSystem.Registration annotation</a>
</li>
<li>(Dec 8 '09) <a href="#issue-146634">Added getVisibilityQueryImplementation() method to VersioningSystem</a>
</li>
<li>(Jun 27 '08) <a href="#issue-137822">Added getCollocationQueryImplementation() method to VersioningSystem</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="versioning_spi">Versioning SPI</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="issue-221831">Support ContextAwareActions</a>
</h3>
<em>Nov 16 '12; API spec. version: 1.37; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSVisibilityQuery.html"><code>VCSVisibilityQuery</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=221831">
#221831</a></em>
<br>
make it possible for Versioning Systems to fire visibility changes for a list of files
instead of one unspecific change event.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-210691">Support ContextAwareActions</a>
</h3>
<em>Apr 12 '12; API spec. version: 1.31; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSHistoryProvider.html"><code>VCSHistoryProvider</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=210691">
#210691</a></em>
<br>
Ensure that <code>ContextAwareAction</code>-s provided via <code>VCSHistoryProvider.HistoryEntry.getActions()</code>
are created with a context containing the selected nodes in a files editor history tab. Those nodes than will have
the relevant <code>HistoryEntry</code> and files in their lookup.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-209673">Added VCSHistoryProvider.HistoryEntry.getParent()</a>
</h3>
<em>Apr 12 '12; API spec. version: 1.30; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSHistoryProvider.html"><code>VCSHistoryProvider</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=209673">
#209673</a></em>
<br>
New method <code>VCSHistoryProvider.HistoryEntry.getParent()</code> to provide the
<code>VCSHistoryProvider.HistoryEntry</code> representing the parent of the given revision.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-207126">Added VCSHistoryProvider</a>
</h3>
<em>Jan 30 '12; API spec. version: 1.29; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VersioningSupport.html"><code>VersioningSupport</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=207126">
#207126</a></em>
<br>
New type <code>VCSHistoryProvider</code> makes it possible for versionig systems to
provide information about a files history which is then used in that files editor history tab.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-199986">isExcluded() added to VersioningSupport</a>
</h3>
<em>Jul 19 '11; API spec. version: 1.25; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VersioningSupport.html"><code>VersioningSupport</code></a>; made by: ovrabec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=199986">
#199986</a></em>
<br>
Method <code>isExcluded</code> states that a given folder is excluded from version control completely.
All version control systems should respect the return value and consider such folders to be unversioned.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-196290">New @VersioningSystem.Registration annotation</a>
</h3>
<em>May 23 '11; API spec. version: 1.24; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VersioningSystem.html"><code>VersioningSystem</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=196290">
#196290</a></em>
<br>
Register a VCS System via the <code>@VersioningSystem.Registration</code>
instead of <code>@ServiceProvider</code>.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-189921">beforeCopy(), doCopy() and afterCopy() methods added to VCSInterceptor</a>
</h3>
<em>Aug 27 '10; API spec. version: 1.18; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSInterceptor.html"><code>VCSInterceptor</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=189921">
#189921</a></em>
<br>
<code>VCSInterceptor.beforeCopy</code>, <code>VCSInterceptor.doCopy</code>,
and <code>VCSInterceptor.afterCopy</code> allow a version control system
to better control a copy operation on a file.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-181684">refreshRecursively() method added to VCSInterceptor</a>
</h3>
<em>Apr 19 '10; API spec. version: 1.17; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSInterceptor.html"><code>VCSInterceptor</code></a>; made by: ovrabec; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=181684">
#181684</a></em>
<br>
<code>VCSInterceptor.refreshRecursively</code> allows a version control system to get better control on behavior of recursive listener.
With this method a versioning system can disable recursive listening on specific folders (e.g. versioning system metadata) and on the other hand
learn about and handle external changes inside the folder in its own way.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-146634">Added getVisibilityQueryImplementation() method to VersioningSystem</a>
</h3>
<em>Dec 8 '09; API spec. version: 1.10; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VersioningSystem.html"><code>VersioningSystem</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=146634">
#146634</a></em>
<br>
Some Versioning systems provide a VisibilityQueryImplementation. This API change has two purposes:
1. There will be only one registered VQI (Versioning manager) that will delegate the query to the appropriate
versioning system which will speed things up.
2. It makes it clear and explicit that implementors of a VersioningSystem might want to provide the query.
It would be possible for them to just implement and register their own VisibilityQueryImplementation but
they could easily forget to do that.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-158681">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</h3>
<em>May 12 '09; API spec. version: 1.9; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSInterceptor.html"><code>VCSInterceptor</code></a>; made by: tstupka; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=158681">
#158681</a></em>
<br>
New method getAttribute(File file, String attrName). Provides additional VCS specific information
about versioned files. The only supported attribute at this moment is
"ProvidedExtensions.RemoteLocation" for which VCS systems
overrinding getAttribute should return the files remote repository, resp. remote origin.
(e.g. Repository URL in case of SVN or default pull in case of Mercurial).
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-137822">Added getCollocationQueryImplementation() method to VersioningSystem</a>
</h3>
<em>Jun 27 '08; API spec. version: 1.8; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VersioningSystem.html"><code>VersioningSystem</code></a>; made by: msandor; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=137822">
#137822</a></em>
<br>
Every Versioning system should provide a CollocationQueryImplementation. This API change has two purposes:
1. It makes it clear and explicit that implementors of a VersioningSystem should provide the query. It would be possible for them
to just implement and register their own CollocationQueryImplementation but they could easily forget to do that.
2. There will be only one registered CQI (Versioning manager) that will delegate the query to the appropriate
versioning system which will speed things up.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-130044">Added isMutable() method to VCSInterceptor</a>
</h3>
<em>Mar 30 '08; API spec. version: 1.7; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSInterceptor.html"><code>VCSInterceptor</code></a>; made by: msandor; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=130044">
#130044</a></em>
<br>
This new method provides ability to override default File.canWrite() query for versioning systems that
keep files read-only on disk and are able to make them read-write on demand in the interceptor (eg. in doDelete()).
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="issue-125853">Added getFiles() method to VCSContext</a>
</h3>
<em>Jan 25 '08; API spec. version: 1.6; affected top-level classes: <a href="./org/netbeans/modules/versioning/spi/VCSContext.html"><code>VCSContext</code></a>; made by: msandor; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=125853">
#125853</a></em>
<br>
This new method provides access to all files and folders that the user originally selected in the IDE. Current
getRootFiles() method removes files from the context if their ancestors are already in the context.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="version-1.5">Added beforeEdit method to VCSInterceptor</a>
</h3>
<em>Jun 15 '07; API spec. version: 1.5; made by: msandor</em>
<br>
This is to properly support versioning systems that write-protect their files on local filesystem. They need a way to make
a file r/w automatically once something tries to write to it. This is especially needed for refactoring to work. Now they have
a chance to check-out a file in the beforeEdit() callback.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="version-1.4">Initial version of SPI released</a>
</h3>
<em>Apr 18 '07; API spec. version: 1.4; made by: msandor</em>
<br>
First initial release of the Versioning SPI.
Level of stability is development.
Allows external modules to plug into IDE's Versioning infrastructure.
Such modules should register <code>VersioningSystem</code> implementation
in their lookups.
<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>