Transmogrify User's Guide

Introduction

Transmogrify is a Java source analysis and manipulation tool. The current focus of Transmogrify is as a cross-referencing and refactoring utility.

Installation

At this time, Transmogrify is available as a plug-in for two IDEs: Borland's JBuilder, and Sun's Forte4Java. To install Transmogrify for these products, read the appropriate installation guide.

Building from source

Ant

Transmogrify uses Ant to perform builds. Ant is available from http://jakarta.apache.org/ant/.

Install Ant, and make sure to read the installation notes in the user's guide to configure your environment for Ant.

JAXP parser

You will also need a JAXP-compliant XML parser to build Transmogrify. By default, the build script looks for the Xerces parser. Xerces is available from http://xml.apache.org/xerces-j/ for information about Xerces. Place xerces.jar into the extensions directory.

If you want to use a JAXP-compliant parser other than Xerces, you will need to edit build.xml, setting the property jaxp.parser to the location of the parser's jar or class files.

Building for JBuilder

To build Transmogrify as a JBuilder plug-in, place /path/to/jbuilder/lib/jbuilder.jar into the extensions directory.

To have the jar file installed into JBuilder's lib/ext directory when building, create (or append to) a file named install.properties. Add the line:

  jbuilderHome = /path/to/Jbuilder

Ant will then copy the jar to the appropriate directory. If the property does not exist, you will have to copy the jar from lib/transmogrify.jarto the JBuilder directory manually.

Once you have this set up, run the following from the Transmogrify directory:

> ant jbuilder

When you're done

When the build has completed successfully, the file lib/transmogrify.jar is created. Read the appropriate installation guide to determine how to install this jar, and any other files necessary for your IDE.

Refactoring

The primary purpose of this application is refactoring. For more information on refactoring see www.refactoring.com. In addition to reference and definition finding, it can perform the following refactorings:

To use the tool, first you will have to parse the files in your source tree. In most IDEs, this can be done by selecting the Parse Project option from the Transmogrify menu. Depending on the size of your source tree, this may take some time. A list of the files parsed should be displayed once the task has been completed.

For most of these, just place the cursor over the symbol you wish to perform the refactoring on, and select the appropriate refactoring from the Transmogrify menu. In the case of extract method, you have to select a block of code to extract.

The tool will analyze your selection and make sure the refactoring you have chosen is valid. If it is not, an error message will be displayed. Otherwise, it will perform the requested refactoring, making a backup copy of all affected files.

Transmogrify will periodically check to make sure its symbol table is uptodate with respect to the files on disk. If not, it will reparse and reanalyze them. This is not quite as memory intensive as the initial parse, but will still take some time to complete. If at any time the source as it exists on disk is unparseable, an error message will be displayed, and you will be unable to perform an refactorings until the code is compilable again.

To change the way Transmogrify prints out source code, modify printer.properties wherever your setup has told you to put it.

Reporting bugs

The services of Sourceforge.net are the preferred method of bugtracking. If you don't have an account, we suggest you get one as its really easy and painless. If you don't want to do this, we may still be willing to fix your bug if you send it as described below.

The project homepage is currently here, but note that you probably won't be able to do much until you log in.

Contact information

The project admins can currently be reached at

The project homepage is currently here, but note that you probably won't be able to do much until you log in. We also have a public web page here.