Refactoring Java

This software supports 15 refactorings. For details of what these refactorings do and how they are implemented, please click on the links below.

GUI

The UML diagrams are reverse engineered from the .java files, so there is no fear that they will get out of date. The class diagrams are the main interface to the system. The user inteface for the refactory is described here.

The refactoring tool now supports the Undo operation.

Saving Diagrams

Selecting save from the menu option will save a particular diagram. Selecting save from a package selector window will save all diagrams.

All diagrams are also saved on exit.

Reloading/Updating Diagrams

You can reload the class diagrams by pressing the reload button on the package selector. This will scan through the directory tree and update any classes where the .java file has changed and add new classes into the diagrams. Invoking this method saves all diagrams.

Printing and Images

Click here to learn more about printing and generating JPG images from the class diagrams.

IDEs

The refactory tool currently supports the following IDEs:

Support for other IDEs is planned for the future.

Metrics

Metrics are also available from the refactory gui.

Third party Tools

This software supports loading the class diagrams for the JDK and other third party tools. To do this, you need the source code. The software generates a skeleton of the class diagrams to allow more rapid loading. For more information, click here.

Release Notes

Here are the release notes.

Future

I will probably try to implement move method next.

I still would like to integrate this with various editors, but I need some help from people who use these editors all the time. If you want this for Visual Age or Visual Cafe or something, please e-mail me.

This software tool was developed to research how people use refactorings. The latest version creates a small log file called log.txt in your home directory (jrefactory.home if specified). This file contains an ID number of the refactoring returned, and the date and time when it occurred. Please e-mail me this file on a monthly basis if you are willing to participate in a study on the use of refactorings.

Thanks!


Last Modified: 30 October 2003