Twitter github

Eclipse PDE API Migration Reports

In Eclipse 3.6, PDE API Tools is adding support for API migration reports.

What are API migration reports you may ask (besides being magical)?

Have you ever wondered if you took a bundle you developed during the Eclipse 3.5 stream and tried to run it on the Eclipse 3.6 stream without any changes if it still would work? I have at least and I know many others have. A migration report is generated from an existing API usage report combined with a newer release of the API being used. It detects all possible migration issues that could occur between the version from which the API usage report has generated and the current version. To demonstrate how this work, I recently teamed up with Olivier Thomann to come up with a demonstration. First, we took a usage scan of a large Eclipse Galileo install and then used that to feed into a migration report that targeted the latest milestone of the Eclipse 3.6 stream…

What do we see? There were a few problems but I decided to focus in on the org.eclipse.debug.ui bundle. We notice that there are a few problems with the BreakpointView reference… in particular a couple bundles accessing some internal code. If we dive deeper…

Oh, we see that two naughty bundles from Mylyn and DLTK accessing the internal BreakpointView.getCheckboxViewer() method which doesn’t exist in the Eclipse 3.6 stream anymore. As a bundle developer, you should be aware of this contract and understand the inherent risk you take when you access internal code. As long as you understand the risk, you should be a bit more understanding when you hit issues like this. On top of that, tools like this should make it a bit easier to deal with when you migrate to new releases of your software.

Anyways, the PDE team hopes you find this tool useful.