Community
Participate
Working Groups
Refactoring currently relies on a closed world assumption. This means that all of the code to be refactored must be available in the workspace when the refactoring is triggered. However for large distributed teams, the closed world approach isn't really feasible. The same is true for clients which use binary versions of libraries where API changes from one version to another. In 3.2 the closed world assumptions will be relaxed in such a way that a refactoring executed in workspace A can be "reapplied" on workspace B to refactor any remaining references to the refactored element. Furthermore, existing refactorings will be improved to preserve API compatibility where possible (for example when renaming a method, a deprecated stub with the old signature will be generated that forwards to the new method). [JDT Core/UI]
*** Bug 76503 has been marked as a duplicate of this bug. ***
Please consider the work done at http://www-plan.cs.colorado.edu/henkel/catchup/ . Unfortunately, it seems the announced plugin will not be published - maybe Eclipse.org can get it as a contribution.
Does any of the following issues match this plan item? Bug 43237 Bug 47712 Bug 86283 Bug 87339
Bug 43237 and Bug 47712 are not covered by this bug. Bug 86283 might be covered since we are investigating ways to allow refactoring descriptions (but not quick fixes) to be attached to change sets. Bug 87339 isn't covered either, however it is on the 3.2 plan. The generic "Improve refactoring" title might be confusing. I will change it to better match the description of this bug report.
The title of this bug has been changed to match the latest plan revision. In addition, the text of this item in the plan has changed. The new text is: " Refactoring currently relies on a closed world assumption. This means that all of the code to be refactored must be available in the workspace when the refactoring is triggered. However for large distributed teams, the closed world approach isn't really feasible. The same is true for clients which use binary versions of libraries where API changes from one version to another. In 3.2 the closed world assumptions will be relaxed in such a way that a refactoring executed in workspace A can be "reapplied" on workspace B to refactor any remaining references to the refactored element. [JDT Core/UI] "
What is the status of this item?
The items mentioned in comment 0 and comment 5 have been covered, namely: - Scripting support for refactorings with the ability to create refactoring scripts and replay them on another workspace - Sharing of project refactoring information across workspaces - Support to annotate JAR files with refactoring information in order to ease API migration to new versions of libraries - A number of refactorings such as Rename, Move, Change Signature, ... now generate delegates to preserve API compatibility All items have been released and are now currently polished and tested.
Is more work planned for R3.2? (If not, we should mark the bug as fixed.)
No, two other items have been deferred to 3.3 in order to have more time for testing. For 3.2, all features are in. Closing as fixed.