Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipse-pmc] API change in 3.3

Debug implemented the following behavior change in 3.3 APIs, which is documented in the 3.3 migration guide. The behavior has been like this since sometime in 3.3M5 but we should get formal approval for the behavior change in 3.3 that could effect clients using the API.

The change was made to properly support the cancelation of creating/editing/deleting of multiple launch configurations from the new "Run/Debug Settings" property page for resources. We believe the number of effected clients will be small to none, as there was no reason to create nested working copies in the past (i.e. create a working copy from a working copy). The following entry appears the migration guide's incompatibilities section.

Nested Launch Configuration Working Copies

What is affected: Launch configuration working copies support nesting in 3.3. Clients that programmatically create and save launch configurations may be affected by the change in behavior of the ILaunchConfigurationWorkingCopy.doSave() method.

Description: When a working copy (B) is created from a working copy (A) which was created from a launch configuration (X), the newly created working copy (B) is initialized with the attributes from the first working copy (A). In 3.3, whenever a working copy is saved, it is written back to the configuration from which it was created. In this example working copy B will saves changes back to working copy A, and A will save changes back to the original launch configuration (X). A nested working copy has a parent working copy that can be retrieved by calling getParent() (newly added in 3.3). In 3.2, working copies were not nested and saving a working copy always resulted in the changes being saved back to the original launch configuration.

Action required:  APIs are binary compatible but clients should examine calls to ILaunchConfiguration.getWorkingCopy() and ILaunchConfigurationWorkingCopy.doSave() to determine if nested working copies might be created. Note that saving a nested working copy will not save changes back to the original launch configuration.


Darin Wright

Back to the top