Skip navigation links


This document lists changes made to the External Execution API.

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.modules.extexecution > 1.20

Changes by affected class











Details of all changes by API and date

External Execution API

StartupExtender may return unescaped parameters

Aug 10 '21; API spec. version: 1.62; affected top-level classes: StartupExtenderImplementation StartupExtender; made by: sdedic
The StartupExtenderImplementation javadoc did not specify how to handle parameters with spaces in them. Some of the implementations quote/escape the parameters they return, but most of them not. This causes issues later when the parameters are processed or re-arranged into the final commandline. This change allows a StartupExtenderImplementation to declare its quoting policy.

postExecution callback with exit code value

May 12 '21; API spec. version: 1.61; affected top-level classes: ExecutionDescriptor; made by: jtulach
Use overloaded ExecutionDescriptor.postExecution method to obtain exit code of just finished application.

Rerun action callback

May 18 '15; API spec. version: 1.46; affected top-level classes: ExecutionDescriptor; made by: phejl; issues: #252283
Allows the user of the API to register a callback to be invoked on rerun action.

New API method to open IO tab on error

Dec 20 '11; API spec. version: 1.29; affected top-level classes: ExecutionDescriptor; made by: phejl; issues: #206254
Added configuration method to ExecutionDescriptor to allow opening of output tab on nonzero exit code.

New API/SPI to abstract process builder

Nov 21 '11; API spec. version: 1.28; affected top-level classes: ProcessBuilder ProcessBuilderFactory ProcessBuilderImplementation; made by: phejl; issues: #205104
New API/SPI classes to allow different implementations of process builders.

New API method to avoid reset of custom IO

Feb 17 '10; API spec. version: 1.20; affected top-level classes: ExecutionDescriptor; made by: phejl; issues: #180459
Added configuration method to ExecutionDescriptor to make reset of IO optional for custom IO.

Published as a stable API

Nov 20 '08; API spec. version: 1.13; made by: phejl
Published as a stable API. Refactored to API packages.

Initial version released

Jul 1 '08; API spec. version: 1.6; made by: phejl
First initial release of the External Execution API.

Configurable charset for process streams

Apr 7 '08; API spec. version: 1.14; affected top-level classes: ExecutionDescriptor; made by: phejl; issues: #161607
Added charset() method to ExecutionDescriptor to configure the charset used to decode process streams.

External Execution Startup Arguments API

SPI to allow extending process startup

Feb 7 '12; API spec. version: 1.30; affected top-level classes: StartupExtender StartupExtenderImplementation; made by: phejl; issues: #206196
This API/SPI allow third party plugins (such as JRebel) to register extenders of process startup. The interested clients such as projects or servers may optionaly query such extenders and pass additional arguments to the process.

External Execution SPI

Advice to throw UserQuestionException

Sep 21 '12; API spec. version: 1.35; affected top-level classes: ProcessBuilderImplementation ProcessBuilder; made by: jtulach; issues: #217874
Providers of ProcessBuilderImplementation are advised to throw UserQuestionException in case they need some interaction with user.

External Execution Process Destroy SPI

New SPI for improved external process termination

Jul 1 '09; API spec. version: 1.16; affected top-level classes: ExternalProcessSupport ProcessDestroyPerformer; made by: mkleint; issues: #138116
Added API/SPI support to kill the whole process tree on Process.destroy().

External Execution Open Handler SPI

SPI to allow to split the API and implementation

Aug 31 '12; API spec. version: 1.33; affected top-level classes: OptionOpenHandler FileOpenHandler HttpOpenHandler; made by: phejl; issues: #216882
This API/SPI allow splitting the extexecution to real API and implementation classes.

Uncategorized changes

API split and deprecation

Jun 1 '14; API spec. version: 1.44; affected top-level classes: ExternalProcessSupport ProcessBuilder InputProcessors LineProcessors ProcessBuilderImplementation; affected packages: org.netbeans.api.extexecution.input org.netbeans.spi.extexecution org.netbeans.spi.extexecution.destroy; made by: phejl; issues: #244308
Splitting the API deprecating major parts.