blob: 5932ab370e63b9a6db8a012e9dc7fc658b3c6dec [file]
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Change History for the Base Java Source 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>
<h2>What do the Dates Mean?</h2>
<p>The supplied dates indicate when the API change was made, on the CVS
trunk. From this you can generally tell whether the change should be
present in a given build or not; for trunk builds, simply whether it
was made before or after the change; for builds on a stabilization
branch, whether the branch was made before or after the given date. In
some cases corresponding API changes have been made both in the trunk
and in an in-progress stabilization branch, if they were needed for a
bug fix; this ought to be marked in this list.</p>
<ul>
<li>The <code>release41</code> branch was made on Apr 03 '05 for use in the NetBeans 4.1 release.
Specification versions: 6.0 begins after this point.</li>
<li>The <code>release40</code> branch was made on Nov 01 '04 for use in the NetBeans 4.0 release.
Specification versions: 5.0 begins after this point.</li>
</ul>
<hr>
<h1>
<a name="list-all-apis">Index of APIs</a>
</h1>
<ul>
<li>
<a href="#javasource_base">Java Source 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>(May 25 '14) <a href="#remove.openide.text">Remove dependency on Openide Text API</a>
</li>
<li>(Apr 30 '14) <a href="#server.is.free">Desktop independent parts of the Java Source module extracted</a>
</li>
</ul>
<h1>
<a name="all-by-date">All changes by date</a>
</h1>
<ul>
<li>(May 14 '18) <a href="#TreeUtilities.isPartOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>(May 3 '18) <a href="#TreeUtilities.isEndOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>(Apr 20 '18) <a href="#BuildArtifactMapper.isCompileOnSaveSupported">Check the var type variable in given tree path.</a>
</li>
<li>(Mar 27 '18) <a href="#TreeUtilities.isVarType">Check the var type variable in given tree path.</a>
</li>
<li>(Jan 17 '17) <a href="#ElementHandle.createModuleElementHandle">Added a method to create an <code>ElementHandle</code> for module</a>
</li>
<li>(Oct 4 '16) <a href="#TreeMaker.module">Added methods to generate/modify the module-info.java files</a>
</li>
<li>(Oct 4 '16) <a href="#TypesEvent.module">Added an information about changes in the module-info</a>
</li>
<li>(May 31 '16) <a href="#utilities.findVisibleElements">List elements with their definining Scope</a>
</li>
<li>(May 16 '16) <a href="#TypeUtilities.getDenotableType">Provide type suitable for declaration in source</a>
</li>
<li>(May 10 '16) <a href="#utilities.implementAndOverride.defaultMethods">Allow to return also unimplemented default methods</a>
</li>
<li>(Oct 5 '15) <a href="#generator.insert.caretlocation">Code Generator uses caret location to insert members</a>
</li>
<li>(Sep 23 '15) <a href="#classindex.searchkind.lambda">ClassIndex SearchKind extended by FUNCTIONAL_IMPLEMENTORS</a>
</li>
<li>(Jun 27 '15) <a href="#classindex.resources.binaryroots">ClassIndex returns resources from binaryroots</a>
</li>
<li>(Feb 9 '15) <a href="#generator.sort.dependencies">Code Generator uses dependencies between fields</a>
</li>
<li>(May 25 '14) <a href="#remove.openide.text">Remove dependency on Openide Text API</a>
</li>
<li>(Apr 30 '14) <a href="#server.is.free">Desktop independent parts of the Java Source module extracted</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: $codebase &gt; 1.20</pre>
<ul>
<li>
(1.2.9) <a href="#classindex.searchkind.lambda">ClassIndex SearchKind extended by FUNCTIONAL_IMPLEMENTORS</a>
</li>
<li>
(1.2.6) <a href="#classindex.resources.binaryroots">ClassIndex returns resources from binaryroots</a>
</li>
<li>
(1.2.34) <a href="#TreeUtilities.isPartOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>
(1.2.33) <a href="#TreeUtilities.isEndOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>
(1.2.32) <a href="#BuildArtifactMapper.isCompileOnSaveSupported">Check the var type variable in given tree path.</a>
</li>
<li>
(1.2.31) <a href="#TreeUtilities.isVarType">Check the var type variable in given tree path.</a>
</li>
<li>
(1.2.26) <a href="#ElementHandle.createModuleElementHandle">Added a method to create an <code>ElementHandle</code> for module</a>
</li>
<li>
(1.2.23) <a href="#TreeMaker.module">Added methods to generate/modify the module-info.java files</a>
</li>
<li>
(1.2.23) <a href="#TypesEvent.module">Added an information about changes in the module-info</a>
</li>
<li>
(1.2.2) <a href="#generator.sort.dependencies">Code Generator uses dependencies between fields</a>
</li>
<li>
(1.2.17) <a href="#TypeUtilities.getDenotableType">Provide type suitable for declaration in source</a>
</li>
<li>
(1.2.16) <a href="#utilities.findVisibleElements">List elements with their definining Scope</a>
</li>
<li>
(1.2.15) <a href="#utilities.implementAndOverride.defaultMethods">Allow to return also unimplemented default methods</a>
</li>
<li>
(1.2.11) <a href="#generator.insert.caretlocation">Code Generator uses caret location to insert members</a>
</li>
<li>
(1.1) <a href="#remove.openide.text">Remove dependency on Openide Text API</a>
</li>
<li>
(1.0) <a href="#server.is.free">Desktop independent parts of the Java Source module extracted</a>
</li>
</ul>
<h1>
<a name="all-by-class">Changes by affected class</a>
</h1>
<h2>
<a name="org.netbeans.api.java.source.ClassIndex"><code><span style="color:gray">org.netbeans.api.java.source.</span>ClassIndex</code></a>
</h2><ul><li>(Sep 23 '15) <a href="#classindex.searchkind.lambda">ClassIndex SearchKind extended by FUNCTIONAL_IMPLEMENTORS</a>
</li>
<li>(Jun 27 '15) <a href="#classindex.resources.binaryroots">ClassIndex returns resources from binaryroots</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.CodeStyle"><code><span style="color:gray">org.netbeans.api.java.source.</span>CodeStyle</code></a>
</h2><ul><li>(Oct 5 '15) <a href="#generator.insert.caretlocation">Code Generator uses caret location to insert members</a>
</li>
<li>(Feb 9 '15) <a href="#generator.sort.dependencies">Code Generator uses dependencies between fields</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.ElementHandle"><code><span style="color:gray">org.netbeans.api.java.source.</span>ElementHandle</code></a>
</h2><ul><li>(Jan 17 '17) <a href="#ElementHandle.createModuleElementHandle">Added a method to create an <code>ElementHandle</code> for module</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.ElementUtilities"><code><span style="color:gray">org.netbeans.api.java.source.</span>ElementUtilities</code></a>
</h2><ul><li>(May 31 '16) <a href="#utilities.findVisibleElements">List elements with their definining Scope</a>
</li>
<li>(May 10 '16) <a href="#utilities.implementAndOverride.defaultMethods">Allow to return also unimplemented default methods</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.ModificationResult"><code><span style="color:gray">org.netbeans.api.java.source.</span>ModificationResult</code></a>
</h2><ul><li>(May 25 '14) <a href="#remove.openide.text">Remove dependency on Openide Text API</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.TreeUtilities"><code><span style="color:gray">org.netbeans.api.java.source.</span>TreeUtilities</code></a>
</h2><ul><li>(May 14 '18) <a href="#TreeUtilities.isPartOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>(May 3 '18) <a href="#TreeUtilities.isEndOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</li>
<li>(Apr 20 '18) <a href="#BuildArtifactMapper.isCompileOnSaveSupported">Check the var type variable in given tree path.</a>
</li>
<li>(Mar 27 '18) <a href="#TreeUtilities.isVarType">Check the var type variable in given tree path.</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.TypesEvent"><code><span style="color:gray">org.netbeans.api.java.source.</span>TypesEvent</code></a>
</h2><ul><li>(Oct 4 '16) <a href="#TreeMaker.module">Added methods to generate/modify the module-info.java files</a>
</li>
<li>(Oct 4 '16) <a href="#TypesEvent.module">Added an information about changes in the module-info</a>
</li></ul><h2>
<a name="org.netbeans.api.java.source.TypeUtilities"><code><span style="color:gray">org.netbeans.api.java.source.</span>TypeUtilities</code></a>
</h2><ul><li>(May 16 '16) <a href="#TypeUtilities.getDenotableType">Provide type suitable for declaration in source</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="javasource_base">Java Source API</a>
</h2>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="TreeUtilities.isPartOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</h3>
<em>May 14 '18; API spec. version: 1.2.34; affected top-level classes: <a href="./org/netbeans/api/java/source/TreeUtilities.html"><code>TreeUtilities</code></a>; made by: arusinha</em>
<br>
Check whether tree is part of compound declaration.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="TreeUtilities.isEndOfCompoundVariableDeclaration">Check the tree is the end of compound declaration.</a>
</h3>
<em>May 3 '18; API spec. version: 1.2.33; affected top-level classes: <a href="./org/netbeans/api/java/source/TreeUtilities.html"><code>TreeUtilities</code></a>; made by: vikasprabhakar</em>
<br>
Check the tree end with comma.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="BuildArtifactMapper.isCompileOnSaveSupported">Check the var type variable in given tree path.</a>
</h3>
<em>Apr 20 '18; API spec. version: 1.2.32; affected top-level classes: <a href="./org/netbeans/api/java/source/TreeUtilities.html"><code>TreeUtilities</code></a>; made by: jlahoda</em>
<br>
Added BuildArtifactMapper.isCompileOnSaveSupported method, which
checks if compile on save is suported in the current configuration.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="TreeUtilities.isVarType">Check the var type variable in given tree path.</a>
</h3>
<em>Mar 27 '18; API spec. version: 1.2.31; affected top-level classes: <a href="./org/netbeans/api/java/source/TreeUtilities.html"><code>TreeUtilities</code></a>; made by: vikasprabhakar</em>
<br>
Check the var type variable in given tree path.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="ElementHandle.createModuleElementHandle">Added a method to create an <code>ElementHandle</code> for module</a>
</h3>
<em>Jan 17 '17; API spec. version: 1.2.26; affected top-level classes: <a href="./org/netbeans/api/java/source/ElementHandle.html"><code>ElementHandle</code></a>; made by: tzezula</em>
<br>
Added a method to create a module <code>ElementHandle</code> from a module name.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="TreeMaker.module">Added methods to generate/modify the module-info.java files</a>
</h3>
<em>Oct 4 '16; API spec. version: 1.2.23; affected top-level classes: <a href="./org/netbeans/api/java/source/TypesEvent.html"><code>TypesEvent</code></a>; made by: dbalek</em>
<br>
Added methods to generate/modify the module-info.java files
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="TypesEvent.module">Added an information about changes in the module-info</a>
</h3>
<em>Oct 4 '16; API spec. version: 1.2.23; affected top-level classes: <a href="./org/netbeans/api/java/source/TypesEvent.html"><code>TypesEvent</code></a>; made by: tzezula</em>
<br>
Added an information about changes in the module-info.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="utilities.findVisibleElements">List elements with their definining Scope</a>
</h3>
<em>May 31 '16; API spec. version: 1.2.16; affected top-level classes: <a href="./org/netbeans/api/java/source/ElementUtilities.html"><code>ElementUtilities</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=262281">
#262281</a></em>
<br>
Allows to enumerate Elements matching passed <code>ElementFilter</code> according
to hiding and inheritance rules. The method may be useful to list elements matching certain
criteria, or to check whether an element exists and find what class/method defined it.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="TypeUtilities.getDenotableType">Provide type suitable for declaration in source</a>
</h3>
<em>May 16 '16; API spec. version: 1.2.17; affected top-level classes: <a href="./org/netbeans/api/java/source/TypeUtilities.html"><code>TypeUtilities</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=262073">
#262073</a></em>
<br>
Support method which allows to infer a type suitable for use in symbol
declaration in the source was added.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="utilities.implementAndOverride.defaultMethods">Allow to return also unimplemented default methods</a>
</h3>
<em>May 10 '16; API spec. version: 1.2.15; affected top-level classes: <a href="./org/netbeans/api/java/source/ElementUtilities.html"><code>ElementUtilities</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=258981">
#258981</a></em>
<br>
<p>
<code>findUnimplementedMethods</code> and <code>findOverridableMethods</code>
work better with interface default methods: they are treated as implemented,
but overridable.
</p>
<p>
Allow <code>ElementUtilities.findUnimplementedMethods</code> enumerate
also default methods whose implementations are not provided by class or
superclasses.
</p>
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! -->
<h3>
<a name="generator.insert.caretlocation">Code Generator uses caret location to insert members</a>
</h3>
<em>Oct 5 '15; API spec. version: 1.2.11; affected top-level classes: <a href="./org/netbeans/api/java/source/CodeStyle.html"><code>CodeStyle</code></a>; made by: ralphbenjamin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=255214">
#255214</a></em>
<br>
Added an overloaded method to Code Generator should to include the
caret location when inserting members. This will be used when the
codestyle is CodeStyle.InsertionPoint.CARET_LOCATION.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="classindex.searchkind.lambda">ClassIndex SearchKind extended by FUNCTIONAL_IMPLEMENTORS</a>
</h3>
<em>Sep 23 '15; API spec. version: 1.2.9; affected top-level classes: <a href="./org/netbeans/api/java/source/ClassIndex.html"><code>ClassIndex</code></a>; made by: tzezula; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=255393">
#255393</a></em>
<br>
Added a possibility to <code>ClassIndex</code> to search a lambda
implementations.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="classindex.resources.binaryroots">ClassIndex returns resources from binaryroots</a>
</h3>
<em>Jun 27 '15; API spec. version: 1.2.6; affected top-level classes: <a href="./org/netbeans/api/java/source/ClassIndex.html"><code>ClassIndex</code></a>; made by: ralphbenjamin; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=252992">
#252992</a></em>
<br>
ClassIndex holds information from different types of roots. Added a
parameter to ClassIndex#getResources to specify which roots to use
for its results.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="generator.sort.dependencies">Code Generator uses dependencies between fields</a>
</h3>
<em>Feb 9 '15; API spec. version: 1.2.2; affected top-level classes: <a href="./org/netbeans/api/java/source/CodeStyle.html"><code>CodeStyle</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=249199">
#249199</a></em>
<br>
Proper textual order of members should be used
when inserting a field or class/interface initializer. The analysis
could be optionally turned off.
<!-- AUTOMATICALLY GENERATED - DO NOT EDIT ME! --><h3>
<a name="remove.openide.text">Remove dependency on Openide Text API</a>
</h3>
<em>May 25 '14; API spec. version: 1.1; affected top-level classes: <a href="./org/netbeans/api/java/source/ModificationResult.html"><code>ModificationResult</code></a>; made by: sdedic; issues: <a href="https://netbeans.org/bugzilla/show_bug.cgi?id=244744">
#244744</a></em>
<br>
<p>
OpenIDE Text API dependencies are removed, affecting <code>ModificationResult.Difference</code>
API class, whose interface <b>changed</b> incompatibly. The class now returns
<code>java.swing.text.Position</code> instead of <code>org.openide.text.PositionRef</code>
for the start and end positions.
</p>
<p>
For binary compatibility, an additional module <code>java.source.compat8</code> was created,
which provides compatible method that still returns <code>PositionRef</code>
</p>
<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="server.is.free">Desktop independent parts of the Java Source module extracted</a>
</h3>
<em>Apr 30 '14; API spec. version: 1.0; made by: dbalek</em>
<br>
<p>
Runtime compatibility remains, compile time compatibility is
mostly preserved too. It is however recommended to upgrade
dependencies of client modules. Try running
<code>ant fix-dependencies</code> in your Ant module.
</p>
<br>
<strong>Compatibility: </strong>
<br>
<em><a href="http://wiki.netbeans.org/VersioningPolicy#Compatible_change_on_the_trunk">Binary-compatible</a></em>
<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>