Skip navigation links


This document lists changes made to the Progress API/SPI.

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: org.netbeans.api.progress > 1.20

Changes by affected class












Details of all changes by API and date

Progress API

Added support for non-visual default actions for ProgressHandles in headless mode.

Jan 5 '21; affected top-level classes: ProgressHandle InternalHandle; made by: sdedic
The default action on ProgressHandle is sometimes non-visual: open a file, focus a result, display an output window associated with the task, etc. Abstract action can be used now with the basic Progress API without dependency on NB- or Swing- specific APIs.

Allow tracking of stale handles

Feb 4 '15; API spec. version: 1.45; affected top-level classes: InternalHandle; made by: sdedic
Internal handle allows to inspect the last time the handle was pinged by the running process. This is needed to report stale processes and/or stop them.

Allow to synchronize with Controller's event delivery.

Dec 7 '14; API spec. version: 1.44; affected top-level classes: Controller TaskModel; made by: sdedic
Exposes Executor used by the Controller to deliver progress events, so that TaskModel can synchronize its change events to the same event stream.

Swing dependencies separated into a new module.

Sep 18 '14; API spec. version: 1.40; affected top-level classes: org.netbeans.api.progress.ProgressHandleFactory org.netbeans.api.progress.ProgressUtils org.netbeans.api.progress.aggregate.AggregateProgressFactory org.netbeans.modules.progress.spi.ExtractedProgressUIWorker org.netbeans.modules.progress.spi.ProgressUIWorkerProvider Controller InternalHandle; made by: sdedic; issues: #247111

Progress API was split so that parts that are directly connected to Swing types were migrated to a separate module. Please see it's API changes document for additional info. Affected classes:


ProgressUtils class with runOffEventThreadWithCustomDialogContent and runOffEventThreadWithProgressDialog methods were added.

Aug 28 '12; API spec. version: 1.30; affected top-level classes: org.netbeans.api.progress.ProgressUtils; made by: pflaska ; issues: #204553
ProgressUtils class with runOffEventThreadWithCustomDialogContent and runOffEventThreadWithProgressDialog methods were added. These methods allow movement of operations out of AWT thread, showing the waint cursor after one second and a dialog when task is not finished in a three seconds.

Modal progress dialogs

Feb 8 '10; API spec. version: 1.19; made by: tboudreau; issues: #165005

Added methods to ProgressUtils for invoking a runnable or similar with a modal dialog blocking the UI and showing progress:

Added interface ProgressRunnable for performing background work, and an SPI class ProgressRunOffEdtProvider which is implemented by the Progress UI module.

SPI added

Jan 8 '10; API spec. version: 1.18; made by: jglick; issues: #177945

An internal SPI package was exposed. Normal modules should not need to access this package.

ProgressUtils class with runOffEventDispatchThread methods was added.

Nov 2 '09; API spec. version: 1.16; affected top-level classes: org.netbeans.api.progress.ProgressUtils; made by: t_h; issues: #170882
ProgressUtils class with runOffEventDispatchThread methods was added. These methods allow movement of operations out of AWT thread while blocking UI.

Add ProgressHandle.suspend(String) method for visual suspend of a running task.

Oct 23 '06; API spec. version: 1.9; affected top-level classes: ProgressHandle; made by: mkleint; issues: #63586

Adding suspend(String) to ProgressHandle class. Any progress event coming after this call wakes up the progress bar to previous state.

Currently running task can switch to silent suspend mode where the progress bar stops moving, hides completely or partially. The exact UI behaviour is undefined.

Useful to make progress in status bar less intrusive for very long running tasks, eg. running an ant script that executes user application, debugs user application etc.

Add methods to create main/detail labels for an custom placed progress component.

Aug 3 '06; API spec. version: 1.8; affected top-level classes: org.netbeans.api.progress.ProgressHandleFactory org.netbeans.api.progress.aggregate.AggregateProgressFactory; made by: mkleint; issues: #58889

Adding createMainLabelComponent(ProgressHandle) and createDetailLabelComponent(ProgressHandle) to ProgressHandleFactory and AggregateProgressFactory classes. These are complementary to the createProgressComponent(ProgressHandle) method and allow to externalize the display of task's display name and detail messages when embedded in custom UI components.

Split API and implementation of progress component

Jul 24 '06; API spec. version: 1.7; made by: mkleint; issues: #78605

Split the implementation and APIs of progress component.

Allow to change display name of running progress task

Nov 25 '05; API spec. version: 1.5; affected top-level classes: ProgressHandle AggregateProgressHandle; made by: mkleint; issues: #68923

Added new method setDisplayName(String) to ProgressHandle and AggregateProgressHandle, allows to change the main identifying name of the progress task.

Adding createProgressComponent(AggregateProgressHandle) method to AggregateProgressFactory

Oct 19 '05; API spec. version: 1.3; affected top-level classes: org.netbeans.api.progress.aggregate.AggregateProgressFactory AggregateProgressHandle; made by: mkleint; issues: #66554

For aggregated progress handles the equivalent of ProgressHandleFactory.createProgressComponent() was missing. Added in this version.

Adding setInitialDelay(int) method to ProgressHandle and AggregateProgressHandle

Sep 26 '05; API spec. version: 1.2; affected top-level classes: ProgressHandle AggregateProgressHandle; made by: mkleint; issues: #60966

The newly added methods allow to customize the amount of time that shall pass between the start of handle's progress and it's appearance in the status bar. If the progress task finishes fast enough it won't appear in the UI at all. The default value is around 0.5s.

For handles that are used in dialogs and elsewhere, this property has no effect and the handle's component is shown immediately.

Initial version released

May 4 '05; API spec. version: 1.0; made by: mkleint
first initial release of the progress api.