I've always been meaning to use it myself, so I just tried it and here's what appears to be the most useful thing you can do as an API or GWT developer:
1. Refactor your library using Eclipse
2. Review your history at any time with Refactor -> History
3. Package your refactorings
- I did this via File -> Export -> Jar file (and then check the box 'Export refactorings for checked projects'), which produced a META-INF/REFACTORINGS.XML in the jar
- I bet you could instead more simply use Refactor -> Create Script
4. Ship a jar with the new APIs and include the refactoring history in META-INF/REFACTORINGS.XML
Your users then simply:
1. Open their project while they still have your old jar in their classpath
2. They select Refactor -> Migrate JAR file
- specify the location of the new jar file which contains the META-INF/REFACTORINGS.XML
- specify the old jar already in their project classpath
- Click, Next, then Next again
- review the refactorings they want to apply
- Click Finish
The rest is magic. Pretty cool. It wouldn't handle listener->handler migrations, but simple method name changes would be trivial. I tried it with an 'encapsulate field' refactoring. Works beautifully. You might even be able to trigger the user.Element -> dom.Element migration in user code.
Most excellent would be integration with the Eclipse Plugin whereby an update from GWT 1.7 -> 2.0 causes the Refactor->Migrate JAR file wizard to be invoked for you.
Fred