tags:

views:

1831

answers:

3

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

A: 

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

it shouldn't be.

Is there a "best practices" upgrade procedure available?

Try with a fresh eclipse Galileo installation with:

  • latest jdk (for launching eclipse)
  • a good eclipse.ini

See eclipse3.5 ini

In that eclipse.ini, you should be able to reference your previous workspace and get everything working again.

Regarding your RCP application, could you have a look at the Require-bundle clause in your MANIFEST.MF and see if there is a version constraint?

VonC
VonC please refer to additional information I have added above to the end of my question.
Dr. Faust
+1  A: 

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.

Berin
Thanks for your response. I do have everything in version control. So according to your advice I should:a. Create a new project under Galileo.b. Import the source code. Let Galileo create the metadata.
Dr. Faust
Yes. This is what works for me at work where I use Eclipse with CVS.If you end up with the same errors, the issue is a missing plug-in or library. I'm afraid I don't have any tips for that one. I got impatient when that happened to me and performed a clean re-install of Galileo, then by-hand downloaded and applied the plug-ins and libraries I needed. I probably could have used Eclipse's plug-in manager, but managing the downloads by hand made it easier to control exactly what I was applying to my Eclipse installation.
Berin
A: 

I am using eclipse for developing code in Java, Python and PHP. I was using Ganymede to do all this, until I wanted to upgrade to Galileo. The upgrade was quite simple. These are the steps I followed:

  1. Back up the workspace somewhere where uninstalling Ganymede won't affect it.

  2. Copy all the software sites onto a text file and backup that text file with the workspace.

  3. Uninstall Ganymede.

  4. Install Galileo.

  5. In my case, the workspace had not been altered, and I pointed Galileo to the same workspace, so all my projects and files were still there.

  6. Update all the plugins and extensions in Galileo from the update sites noted in the text file.

At this point I had some trouble because of outdated versions of plugins / incompatibility issues of plugins with Ganymede and Galileo. However, some minimal Googling helped me fix these issues.

Galileo was one of the cleanest and most straightforward installs I have ever done and I never had to mess around with eclipse.ini

inspectorG4dget
What you described is an end-user upgrading Eclipse. That's simple. Dr Faust was upgrading his RCP application, based on Eclipse. That's more painful.
inger

related questions