This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Issue to track implementation of Extract Interface refactoring.
*** Issue 51739 has been marked as a duplicate of this issue. ***
It seems there is one thing missing from the "changes to be made" of the spec. The current changes are: 1. The new interface with the selected methods and fields is created in the same package as the base class/interface. 2. The implements/extends clause of the base class/interface is updated to include the new interface and to exclude the interfaces that the new interface extends. 3. The selected static public fields are removed from the base class. The missing change would be: 4. (?) Option of changing all references to the base class to newly extracted interface. This is currently in Eclipse's "extract interface" feature, and IMHO necessary. -Qingtian
to wqtnetbeans: This will be covered by Use Supertype Where Possible refactoring which will allow you to do this not only for the newly extracted interfaces but for any class that has supertypes.
The feature was added to the experimental refactoring module that is available on development autoupdate center (in dev builds). Checking in nbproject/project.properties; /cvs/refactoring/experimental/nbproject/project.properties,v <-- project.properties new revision: 1.13; previous revision: 1.12 done Checking in src/org/netbeans/modules/refactoring/experimental/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/Bundle.properties,v <-- Bundle.properties new revision: 1.7; previous revision: 1.6 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ExtractInterfaceRefactoring.java,v done Checking in src/org/netbeans/modules/refactoring/experimental/ExtractInterfaceRefactoring.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ExtractInterfaceRefactoring.java,v <-- ExtractInterfaceRefactoring.java initial revision: 1.1 done Checking in src/org/netbeans/modules/refactoring/experimental/PullUpRefactoring.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/PullUpRefactoring.java,v <-- PullUpRefactoring.java new revision: 1.4; previous revision: 1.3 done Checking in src/org/netbeans/modules/refactoring/experimental/plugins/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/Bundle.properties,v <-- Bundle.properties new revision: 1.15; previous revision: 1.14 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractInterfaceRefactoringPlugin.java,v done Checking in src/org/netbeans/modules/refactoring/experimental/plugins/ExtractInterfaceRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractInterfaceRefactoringPlugin.java,v <-- ExtractInterfaceRefactoringPlugin.java initial revision: 1.1 done Checking in src/org/netbeans/modules/refactoring/experimental/plugins/PluginsFactory.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PluginsFactory.java,v <-- PluginsFactory.java new revision: 1.14; previous revision: 1.13 done Checking in src/org/netbeans/modules/refactoring/experimental/resources/mf-layer.xml; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/resources/mf-layer.xml,v <-- mf-layer.xml new revision: 1.12; previous revision: 1.11 done Checking in src/org/netbeans/modules/refactoring/experimental/ui/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/Bundle.properties,v <-- Bundle.properties new revision: 1.21; previous revision: 1.20 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceAction.java,v done Checking in src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceAction.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceAction.java,v <-- ExtractInterfaceAction.java initial revision: 1.1 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.form,v done Checking in src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.form; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.form,v <-- ExtractInterfacePanel.form initial revision: 1.1 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.java,v done Checking in src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.java,v <-- ExtractInterfacePanel.java initial revision: 1.1 done RCS file: /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceRefactoringUI.java,v done Checking in src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceRefactoringUI.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceRefactoringUI.java,v <-- ExtractInterfaceRefactoringUI.java initial revision: 1.1 done
Reopening to reuse this issue for requesting approval to add this to the release.
We would like to add this feature to the standard build (to the regular refactoring module). I'm asking j2ee team (since they have a dependency on the refactoring friend API this will become part of) to confirm they are OK with this.
For me it is OK.
ok with me
Added to the build. Checking in experimental/nbproject/project.properties; /cvs/refactoring/experimental/nbproject/project.properties,v <-- project.properties new revision: 1.16; previous revision: 1.15 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/Bundle.properties,v <-- Bundle.properties new revision: 1.9; previous revision: 1.8 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ExtractInterfaceRefactoring.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ExtractInterfaceRefactoring.java,v <-- ExtractInterfaceRefactoring.java new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ExtractSuperClassRefactoring.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ExtractSuperClassRefactoring.java,v <-- ExtractSuperClassRefactoring.java new revision: delete; previous revision: 1.1 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/PullUpRefactoring.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/PullUpRefactoring.java,v <-- PullUpRefactoring.java new revision: 1.6; previous revision: 1.5 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/Utilities.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/Utilities.java,v <-- Utilities.java new revision: delete; previous revision: 1.3 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/plugins/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/Bundle.properties,v <-- Bundle.properties new revision: 1.19; previous revision: 1.18 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractInterfaceRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractInterfaceRefactoringPlugin.java,v <-- ExtractInterfaceRefactoringPlugin.java new revision: delete; previous revision: 1.3 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractSuperClassRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/ExtractSuperClassRefactoringPlugin.java,v <-- ExtractSuperClassRefactoringPlugin.java new revision: delete; previous revision: 1.1 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/plugins/InnerToOuterRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/InnerToOuterRefactoringPlugin.java,v <-- InnerToOuterRefactoringPlugin.java new revision: 1.2; previous revision: 1.1 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PluginsFactory.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PluginsFactory.java,v <-- PluginsFactory.java new revision: 1.17; previous revision: 1.16 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PullUpRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PullUpRefactoringPlugin.java,v <-- PullUpRefactoringPlugin.java new revision: 1.8; previous revision: 1.7 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PushDownRefactoringPlugin.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/plugins/PushDownRefactoringPlugin.java,v <-- PushDownRefactoringPlugin.java new revision: 1.5; previous revision: 1.4 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/resources/mf-layer.xml; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/resources/mf-layer.xml,v <-- mf-layer.xml new revision: 1.15; previous revision: 1.14 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/ui/Bundle.properties; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/Bundle.properties,v <-- Bundle.properties new revision: 1.25; previous revision: 1.24 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceAction.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceAction.java,v <-- ExtractInterfaceAction.java new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.form; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.form,v <-- ExtractInterfacePanel.form new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfacePanel.java,v <-- ExtractInterfacePanel.java new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceRefactoringUI.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractInterfaceRefactoringUI.java,v <-- ExtractInterfaceRefactoringUI.java new revision: delete; previous revision: 1.2 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassAction.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassAction.java,v <-- ExtractSuperClassAction.java new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassPanel.form; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassPanel.form,v <-- ExtractSuperClassPanel.form new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassPanel.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassPanel.java,v <-- ExtractSuperClassPanel.java new revision: delete; previous revision: 1.1 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassRefactoringUI.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/ExtractSuperClassRefactoringUI.java,v <-- ExtractSuperClassRefactoringUI.java new revision: delete; previous revision: 1.1 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/ui/PullUpPanel.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/PullUpPanel.java,v <-- PullUpPanel.java new revision: 1.5; previous revision: 1.4 done Checking in experimental/src/org/netbeans/modules/refactoring/experimental/ui/PushDownPanel.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/PushDownPanel.java,v <-- PushDownPanel.java new revision: 1.3; previous revision: 1.2 done Removing experimental/src/org/netbeans/modules/refactoring/experimental/ui/UIUtilities.java; /cvs/refactoring/experimental/src/org/netbeans/modules/refactoring/experimental/ui/UIUtilities.java,v <-- UIUtilities.java new revision: delete; previous revision: 1.3 done Checking in nbproject/project.properties; /cvs/refactoring/nbproject/project.properties,v <-- project.properties new revision: 1.16; previous revision: 1.15 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/Utilities.java,v done Checking in src/org/netbeans/modules/refactoring/Utilities.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/Utilities.java,v <-- Utilities.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/api/ExtractInterfaceRefactoring.java,v done Checking in src/org/netbeans/modules/refactoring/api/ExtractInterfaceRefactoring.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/api/ExtractInterfaceRefactoring.java,v <-- ExtractInterfaceRefactoring.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/api/ExtractSuperClassRefactoring.java,v done Checking in src/org/netbeans/modules/refactoring/api/ExtractSuperClassRefactoring.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/api/ExtractSuperClassRefactoring.java,v <-- ExtractSuperClassRefactoring.java initial revision: 1.1 done Checking in src/org/netbeans/modules/refactoring/plugins/Bundle.properties; /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/Bundle.properties,v <-- Bundle.properties new revision: 1.3; previous revision: 1.2 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/ExtractInterfaceRefactoringPlugin.java,v done Checking in src/org/netbeans/modules/refactoring/plugins/ExtractInterfaceRefactoringPlugin.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/ExtractInterfaceRefactoringPlugin.java,v <-- ExtractInterfaceRefactoringPlugin.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/ExtractSuperClassRefactoringPlugin.java,v done Checking in src/org/netbeans/modules/refactoring/plugins/ExtractSuperClassRefactoringPlugin.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/ExtractSuperClassRefactoringPlugin.java,v <-- ExtractSuperClassRefactoringPlugin.java initial revision: 1.1 done Checking in src/org/netbeans/modules/refactoring/plugins/JavaRefactoringsFactory.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/plugins/JavaRefactoringsFactory.java,v <-- JavaRefactoringsFactory.java new revision: 1.6; previous revision: 1.5 done Checking in src/org/netbeans/modules/refactoring/resources/mf-layer.xml; /cvs/refactoring/src/org/netbeans/modules/refactoring/resources/mf-layer.xml,v <-- mf-layer.xml new revision: 1.26; previous revision: 1.25 done Checking in src/org/netbeans/modules/refactoring/ui/Bundle.properties; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/Bundle.properties,v <-- Bundle.properties new revision: 1.59; previous revision: 1.58 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfaceAction.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractInterfaceAction.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfaceAction.java,v <-- ExtractInterfaceAction.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.form,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.form; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.form,v <-- ExtractInterfacePanel.form initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfacePanel.java,v <-- ExtractInterfacePanel.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfaceRefactoringUI.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractInterfaceRefactoringUI.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractInterfaceRefactoringUI.java,v <-- ExtractInterfaceRefactoringUI.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassAction.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractSuperClassAction.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassAction.java,v <-- ExtractSuperClassAction.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.form,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.form; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.form,v <-- ExtractSuperClassPanel.form initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassPanel.java,v <-- ExtractSuperClassPanel.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassRefactoringUI.java,v done Checking in src/org/netbeans/modules/refactoring/ui/ExtractSuperClassRefactoringUI.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/ExtractSuperClassRefactoringUI.java,v <-- ExtractSuperClassRefactoringUI.java initial revision: 1.1 done RCS file: /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/UIUtilities.java,v done Checking in src/org/netbeans/modules/refactoring/ui/UIUtilities.java; /cvs/refactoring/src/org/netbeans/modules/refactoring/ui/UIUtilities.java,v <-- UIUtilities.java initial revision: 1.1 done