R – How Do You Upgrade From Eclipse Ganymede to Eclipse Galileo

eclipse-rcp

I have written an RCP application that contains numerous plugin-ins I have created using Ganymede version 3.4.2. I want to start using Galileo. When I try to execute my RCP application from the Workspace I created using Ganymede I get lots of errors like the following:

!SESSION 2009-09-09 10:41:33.907 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_12
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US
Framework arguments:  -product com.bah.gs.arts.jekyll.product
Command-line arguments:  -product com.bah.gs.arts.jekyll.product -data C:\Workspace/../runtime-jekyll.product -dev file:C:/Workspace/.metadata/.plugins/org.eclipse.pde.core/jekyll.product/dev.properties -os win32 -ws win32 -arch x86

!ENTRY org.eclipse.equinox.app 0 0 2009-09-09 10:41:35.469
!MESSAGE Product com.bah.gs.arts.jekyll.product could not be found.

!ENTRY org.eclipse.osgi 2 0 2009-09-09 10:41:35.500
!MESSAGE One or more bundles are not resolved because the following root constraints are not resolved:
!SUBENTRY 1 org.eclipse.osgi 2 0 2009-09-09 10:41:35.500
!MESSAGE Bundle initial@reference:file:../../Common/plugins/org.eclipse.core.databinding_1.2.0.I20090604-2000.jar/ was not resolved.
!SUBENTRY 2 org.eclipse.core.databinding 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.observable_[1.2.0,2.0.0).
!SUBENTRY 2 org.eclipse.core.databinding 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.property_[1.2.0,2.0.0).
!SUBENTRY 1 org.eclipse.osgi 2 0 2009-09-09 10:41:35.500
!MESSAGE Bundle initial@reference:file:../../Common/plugins/org.eclipse.jface.databinding_1.3.0.I20090525-2000.jar/ was not resolved.
!SUBENTRY 2 org.eclipse.jface.databinding 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.property_[1.2.0,2.0.0).
!SUBENTRY 2 org.eclipse.jface.databinding 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.observable_[1.2.0,2.0.0).
!SUBENTRY 1 org.eclipse.osgi 2 0 2009-09-09 10:41:35.500
!MESSAGE Bundle initial@reference:file:../../Common/plugins/org.eclipse.ui.workbench_3.5.0.I20090603-2000.jar/ was not resolved.
!SUBENTRY 2 org.eclipse.ui.workbench 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.property_[1.2.0,2.0.0).
!SUBENTRY 2 org.eclipse.ui.workbench 2 0 2009-09-09 10:41:35.500
!MESSAGE Missing required bundle org.eclipse.core.databinding.observable_[1.2.0,2.0.0).

Why is upgrading from one Eclipse version to the next so painful?

Is there a systematic way of resolving the above issues?

Is there a "best practices" upgrade procedure available?

Thanks for your help.

After trying what VonC suggested I am still experiencing some problems.

This is the constraint part of the MANIFEST.MF for the RCP application:

Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0";resolution:=optional;visibility:=reexport,
 org.eclipse.ui;bundle-version="3.5.0";resolution:=optional;visibility:=reexport,
 org.eclipse.core.expressions;bundle-version="3.4.100";resolution:=optional;visibility:=reexport

What is the significance of the "visibility:=reexport" and "resolution:=optional" parameters?

Error messages:

org.eclipse.core.databinding
Missing Constraint:Required-Bundle: org.elclipse.core.databinding.observable;require-version="[1.2.0.2.0.0]"
Missing Constraint:Required-Bundle: org.elclipse.core.databinding.property;require-version="[1.2.0.2.0.0]"

Same two messages for:

org.eclipse.jface.databinding
org.eclipse.ui.workbench

Best Answer

The error you listed says that Galileo doesn't see all the plug-ins and libraries Ganymede and your program was using. Sorry for the non-answer below. Your alternative is fiddling with Galileo until it sees all your libraries and plug-ins.

What I would do is install Galileo side-by-side Ganymede and port your applications over one at a time. I'm assuming you are working under Windows, but the same techniques that I list here also work for Linux.

First, in theory, all you have to do to upgrade from Ganymede to Galileo is install Galileo over Ganymede. Believe that? Good. I don't either. So walk through Ganymede and note what plug-ins you have installed. Then install Galileo in a separate directory. Point the new install at your Java VM. Then install all your plug-ins. It's your choice how you do this.

Finally, I'd differentiate between source and Meta in your projects. Create a new project under Galileo and move only your source. Let Galileo re-build your meta.

Now, how to avoid all this pain next time: Version control. CVS, SVN, git... it doesn't matter what you use. Eclipse has a plug-in that supports them all. Then, next upgrade, simply import the source into a project in your new Eclipse installation. Much less painful, and you'll have much more control over your source.

Good luck.

Related Topic