INSTRUCTIONS FOR HELPING WITH JNDI API RENAMING CHANGES

--
ClassRenamer is a Java program used by the Swing team for renaming
their packages and classes (and identifiers).
We've adopted it here to help with making JNDI API renames.

To use it, copy ClassRenamer.class to the same directory where
your files live and copy to the same directory class.changes.
(You can use symbolic links.) The renames to be done
are listed in the file "class.changes".

To run it, give it a list of file names ("*.java" OK).

# java ClassRenamer A.java B.java ....

It is very conservative. It does NOT change occurrence
of the strings or in comments. 
It makes a copy of the file (with -old suffix) and
prints a short message saying how many changes were made in each file.

ClassRenamer.java has instructions for how to handle moving packages
(i.e. when a package has been renamed).

--
jndi-rename.pl is a perl script that makes changes more
aggressively. Be sure to make a backup copy of your files first.

# perl jndi-rename.pl <directory>

It'll update all the .java files in the subtree directory specified in place.
If you're running on Windows, replace the usage of 'pwd' with cwd()
(there is some instructions in the script).

Be careful when using the perl script, it makes changes to
all occurrences of the strings listed. You can modify the perl
script to be more conservative.
--

Regardless of whether you use ClassRenamer or the perl script,
the following requires manu intervention because specifying
the change might change other occurrences unintentionally.


Manual intervention:

Attribute.getAll() returns NamingException

AttributeSet.getAttributes() -> Attributes.getAll()

AttributeSet.replace() -> Attributes.put()
AttributeSet.add() -> Attributes.put()

Properties -> Hashtable for environment (but not for compound name properties).
[You only need to do this for providers. You can still pass a 
Properties to methods that expect Hashtable because Properties
is a subclass of Hashtable.]

The result of next() needs to be casted to their appropriate types.

grep for next() and 
1. make necessary casts to appropriate classes.
2. Replace type-specific returns with Object
