views:

61

answers:

1

I trying to update an Eclipse-RCP-3.5 based application by an P2 update-site. Application contains two features.

Product is build by Eclipse Buckminster. Creation of the P2 update site is part of the product build.

When start the update by Menu: Update -> Check for Updates a messages box is shown: There is nothing to update.

When i try Menu: Update -> Install New Software... an select the same update-site an error is reported:

Your original request has been modified.
  "Verinice Anwendung" is already installed, so an update will be performed instead.
  "verinice server Feature" is already installed, so an update will be performed instead.
Cannot complete the install because of a conflicting dependency.
  Software being installed: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142)
  Software currently installed: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1)
  Only one of the following can be installed at once: 
    Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007130142)
    Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.jar 1.1.1.201007021358)
  Cannot satisfy dependency:
    From: Verinice Anwendung 1.1.1.201007021358 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007021358)
    To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007021358]
  Cannot satisfy dependency:
    From: Verinice Anwendung 1.1.1.201007130142 (sernet.gs.ui.rcp.main.feature.feature.group 1.1.1.201007130142)
    To: sernet.gs.ui.rcp.main.feature.feature.jar [1.1.1.201007130142]
  Cannot satisfy dependency:
    From: verinice 1.1.1 (sernet.gs.ui.rcp.main.product 1.1.1)
    To: sernet.gs.ui.rcp.main.feature.feature.group [1.1.1.201007021358]

What's going wrong?

+1  A: 

You need to build a new version of the product.

p2 distinguishes between what is "installed" and what is "required by the things that are installed". Your product sernet.gs.ui.rcp.main.product is the thing that is installed. Everything else is required by that. "Check for Updates" is looking for a new version of sernet.gs.ui.rcp.main.product.

By installing the feature, you are adding it to the list of things that are installed (instead of just required by the things installed). However, you still have the original product which has a requirement on a specific version of that feature. That requirement conflicts with the new version of the feature.

This came up a few times on the eclipse forums. You might be interested in this blog post I wrote in response.

Andrew Niefer
I wonder if i can add a new version of the product itself to my p2 update site.
Daniel Murygin
You should be able to, in p2, the product is just another Installable Unit in the metadata. Just increment the version in the product file and run the build again.
Andrew Niefer
Thanks, after incrementing the version of the product in myapp.product p2 update works fine - accepted!
Daniel Murygin