P2 update of RCP based application fails
Asked Answered
F

1

8

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

Product is built 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... and 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]
Falk answered 13/7, 2010 at 14:24 Comment(0)
J
8

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.

Jamieson answered 13/7, 2010 at 18:27 Comment(5)
I wonder if i can add a new version of the product itself to my p2 update site.Selinski
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.Jamieson
Thanks, after incrementing the version of the product in myapp.product p2 update works fine - accepted!Selinski
After changing the version of your product you should re-export the product and then you can use repository folder from exported product folder.Exemplum
Why am I getting dependency satisfaction errors when I update my feature?Middaugh

© 2022 - 2024 — McMap. All rights reserved.