May 5, 2009

Eclipse: Update Manager Fools Me

Recently, we experienced an issue with a custom Eclipse plugin developed and hosted by my company. When trying to install the plugin into various versions of Eclipse Ganymede, the update manager always told me "Cannot find a solution satisfying the following requirements org.eclipse.ui [3.4.2.M20090204-0800]".

Finally, after some lost days of searching and trying, we discovered that this message is totally misleading: the issue was not caused by the feature org.eclipse.ui missing or being available only with wrong version. Instead, the reason was a misconfigured Manifest file of the custom plugin. It just defined wrong version for the required bundles (oAW, the MDA/MDD generator framework we use).

How nasty is that? Couldn't Eclipse update manager (p2) provide better support? More useful messages? Gosh!

Moreover, Eclipse update manager seems to cache the metadata of remote repositories. That might be nice to avoid network overhead of loading the repository again and again. But... when testing installation of different plugin versions with a local update site, it definitely gets into your way. The sad thing is, you can't get rid of the cached contents easily. You'd have to remove the site, restart Eclipse with -clean option two times, and after that recreate the location. Could be made easier, really.

Eclipse update manager will once more be refactored in upcoming Eclipse 3.5 Galileo. Folks, don't mess it up again!


  1. Did you ever find a way around the update manager caching issue? I'm seeing the exact same thing and it's a bit much to ask all my internal users to go through this process for each update.
    John Van Roekel
    Sony Media Software & Services

  2. Never mind. My problem was that my update site files were corrupted with references to the previous version.

  3. John, good to hear your issue is not related to the update manager problem. We have never found a workaround for this problem in Eclipse 3.4, and, even worse, are facing similar issues with current Eclipse 3.5 -- it's working for some colleagues but not for others. It's really annoying, and we will have to spend some hours to track that down I guess.