Skip navigation links

Introduction

What do the Dates Mean?

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.


Index of APIs

Incompatible changes by date

Fuller descriptions of all changes can be found below (follow links).

Not all deprecations are listed here, assuming that the deprecated APIs continue to essentially work. For a full deprecation list, please consult the Javadoc.

All changes by date

Changes by version

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 1.20, your manifest should contain in its main attributes the line:

OpenIDE-Module-Module-Dependencies: $codebase > 1.20

Changes by affected class

org.netbeans.api.java.source.ClassIndex

org.netbeans.api.java.source.CodeStyle

org.netbeans.api.java.source.ElementHandle

org.netbeans.api.java.source.ElementUtilities

org.netbeans.api.java.source.matching.Matcher

org.netbeans.api.java.source.ModificationResult

org.netbeans.api.java.source.SourceUtils

org.netbeans.api.java.source.TreeMaker

org.netbeans.api.java.source.TreeUtilities

org.netbeans.api.java.source.TypesEvent

org.netbeans.api.java.source.TypeUtilities


Details of all changes by API and date


Java Source API

Source file name for Element

Jan 10 '23; API spec. version: 1.2.60; affected top-level classes: SourceUtils; made by: jtulach
It is possible to hint SourceUtils.getFile list of file names to searh for. There is also SourceUtils.findSourceFileName to obtain name of file for an Element.

Adding SourceUtils.isClassFile(FileObject)

May 12 '21; API spec. version: 1.2.51; affected top-level classes: SourceUtils; made by: dbalek
Adding SourceUtils.isClassFile(FileObject).

Adding TreeUtilities.isExpressionStatement(ExpressionTree)

Mar 23 '21; API spec. version: 1.2.56; affected top-level classes: TreeUtilities; made by: dbalek
Adding TreeUtilities.isExpressionStatement(ExpressionTree).

Added new method for getting Tree using VariableTree type

Mar 23 '21; API spec. version: 12.4; affected top-level classes: TreeMaker; made by: singh-akhilesh

Regarding the JEP 394 (finalization of pattern matching for instanceof in JDK 16). The shape of the BindingPatternTree has changed; the BindingPatternTree does not have a name and type, but rather a VariableTree.

Adding SourceUtils.forceSource(CompilationController, FileObject)

Mar 9 '20; API spec. version: 1.2.46; affected top-level classes: SourceUtils; made by: jlahoda
Adding SourceUtils.forceSource(CompilationController, FileObject).

CodeStyle.parensAroundSingularLambdaParam() added

Feb 8 '20; API spec. version: 1.2.45; affected top-level classes: CodeStyle; made by: jlahoda
Method CodeStyle.parensAroundSingularLambdaParam() has been added.

Creates a new SwitchExpressionTree

Feb 27 '19; API spec. version: 1.2.41.0; affected top-level classes: TreeMaker; made by: vikasprabhakar
Creates a new SwitchExpressionTree.

Find the target of Break or Continue statement

Jan 22 '19; API spec. version: 1.2.40.0; affected top-level classes: TreeUtilities; made by: sarveshkesharwani

Find the target of break or continue statement. Target is of type Tree here.

Adding Matcher.setKeepSyntheticTrees method

Dec 7 '18; API spec. version: 1.2.40; affected top-level classes: Matcher; made by: jlahoda
Added Matcher.setKeepSyntheticTrees method, that allows to keep synthetically generated variables mapping in the outgoing variables.

Adding case-related overload to TreeMaker

Sep 6 '18; API spec. version: 1.2.39; affected top-level classes: TreeUtilities; made by: jlahoda
Added TreeMaker.CaseMultipleLabels(List<? extends ExpressionTree> patterns, List<? extends StatementTree> statements) and TreeMaker.Case(List<? extends ExpressionTree> patterns, Tree body) overloads.

Check the tree has compile error in given collection of errors.

Jul 18 '18; API spec. version: 1.2.37; affected top-level classes: TreeUtilities; made by: vikasprabhakar
Check the tree has compile error in given collection of errors.

Check the tree is the end of compound declaration.

May 14 '18; API spec. version: 1.2.34; affected top-level classes: TreeUtilities; made by: arusinha
Check whether tree is part of compound declaration.

Check the tree is the end of compound declaration.

May 3 '18; API spec. version: 1.2.33; affected top-level classes: TreeUtilities; made by: vikasprabhakar
Check the tree end with comma.

Check the var type variable in given tree path.

Apr 20 '18; API spec. version: 1.2.32; affected top-level classes: TreeUtilities; made by: jlahoda
Added BuildArtifactMapper.isCompileOnSaveSupported method, which checks if compile on save is suported in the current configuration.

Check the var type variable in given tree path.

Mar 27 '18; API spec. version: 1.2.31; affected top-level classes: TreeUtilities; made by: vikasprabhakar
Check the var type variable in given tree path.

Added a method to create an ElementHandle for module

Jan 17 '17; API spec. version: 1.2.26; affected top-level classes: ElementHandle; made by: tzezula
Added a method to create a module ElementHandle from a module name.

Added methods to generate/modify the module-info.java files

Oct 4 '16; API spec. version: 1.2.23; affected top-level classes: TypesEvent; made by: dbalek
Added methods to generate/modify the module-info.java files

Added an information about changes in the module-info

Oct 4 '16; API spec. version: 1.2.23; affected top-level classes: TypesEvent; made by: tzezula
Added an information about changes in the module-info.

List elements with their definining Scope

May 31 '16; API spec. version: 1.2.16; affected top-level classes: ElementUtilities; made by: sdedic; issues: #262281
Allows to enumerate Elements matching passed ElementFilter 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.

Provide type suitable for declaration in source

May 16 '16; API spec. version: 1.2.17; affected top-level classes: TypeUtilities; made by: sdedic; issues: #262073
Support method which allows to infer a type suitable for use in symbol declaration in the source was added.

Allow to return also unimplemented default methods

May 10 '16; API spec. version: 1.2.15; affected top-level classes: ElementUtilities; made by: sdedic; issues: #258981

findUnimplementedMethods and findOverridableMethods work better with interface default methods: they are treated as implemented, but overridable.

Allow ElementUtilities.findUnimplementedMethods enumerate also default methods whose implementations are not provided by class or superclasses.

Code Generator uses caret location to insert members

Oct 5 '15; API spec. version: 1.2.11; affected top-level classes: CodeStyle; made by: ralphbenjamin; issues: #255214
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.

ClassIndex SearchKind extended by FUNCTIONAL_IMPLEMENTORS

Sep 23 '15; API spec. version: 1.2.9; affected top-level classes: ClassIndex; made by: tzezula; issues: #255393
Added a possibility to ClassIndex to search a lambda implementations.

ClassIndex returns resources from binaryroots

Jun 27 '15; API spec. version: 1.2.6; affected top-level classes: ClassIndex; made by: ralphbenjamin; issues: #252992
ClassIndex holds information from different types of roots. Added a parameter to ClassIndex#getResources to specify which roots to use for its results.

Code Generator uses dependencies between fields

Feb 9 '15; API spec. version: 1.2.2; affected top-level classes: CodeStyle; made by: sdedic; issues: #249199
Proper textual order of members should be used when inserting a field or class/interface initializer. The analysis could be optionally turned off.

Remove dependency on Openide Text API

May 25 '14; API spec. version: 1.1; affected top-level classes: ModificationResult; made by: sdedic; issues: #244744

OpenIDE Text API dependencies are removed, affecting ModificationResult.Difference API class, whose interface changed incompatibly. The class now returns java.swing.text.Position instead of org.openide.text.PositionRef for the start and end positions.

For binary compatibility, an additional module java.source.compat8 was created, which provides compatible method that still returns PositionRef


Binary-compatible

Desktop independent parts of the Java Source module extracted

Apr 30 '14; API spec. version: 1.0; made by: dbalek

Runtime compatibility remains, compile time compatibility is mostly preserved too. It is however recommended to upgrade dependencies of client modules. Try running ant fix-dependencies in your Ant module.


Compatibility:
Binary-compatible