Skip navigation links


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




Details of all changes by API and date

Base Utilities API

Adding BaseUtilities.normalize

Jun 15 '21; API spec. version: 9.20; affected top-level classes: BaseUtilities; made by: jlahoda; issues: #4953

Adding BaseUtilities.normalize, as a replacement for URI.normalize, which should more carefully handle certain special URIs in non-normal form.

Propagate current Lookup via Mutex.EVENT

Jan 10 '21; API spec. version: 9.18; affected top-level classes: Mutex; made by: jtulach; issues: #188604

Mutex.EVENT methods have been enhanced to work well with Lookups.executeWith(...).

Weak property and vetoable listeners for a specific property name.

Oct 22 '14; API spec. version: 9.2; affected top-level classes: WeakListeners; made by: mentlicher; issues: #188604

WeakListeners class got variants of propertyChange() and vetoableChange() methods, which take the property name. They are to be used as an argument to addPropertyChangeListener(String propertyName, PropertyChangeListener listener) and addVetoableChangeListener(String propertyName, PropertyChangeListener listener) methods respectively, and will call the appropriate remove methods with the provided property name.

Desktop independent utilities extracted

Mar 20 '14; API spec. version: 9.0; made by: sdedic; issues: #243100

The following classes were spinned of into org.openide.util.base module:

The class Utilities was also split and the client desktop indepenent parts landed in BaseUtilities. Although all the constants and methods are still available through Utilities class, it is advised to change the dependencies and reference them through BaseUtilities.


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.

Parts of org.openide.util.Mutex that depended on EDT were removed.

Please also refer to the API Changes document of the original openide.utilities.ui module.