How to upgrade singleton plugins using p2? [message #1733246] |
Wed, 25 May 2016 05:42 |
Eclipse User |
|
|
|
Hello.
we are building a big application based on equinox and several plugins. A lot of them are signed as "singleton" because contains some extensions.
The application runtime is produced from a specific product definition exported using the function of Eclipse PDE. Finally, plugin dependency are defined in several features included in the product and update site definition.
Now our task is to integrate a p2 based upgrade engine into our application. I wrote a specific procedure using the example code found on Vogella site:
www.vogella.com/tutorials/EclipseP2Update/article.html
The upgrade procedure ends successfully if i try to upgrade a feature that not contain singleton plugins. But every time i try to update a feature with singleton plugins the procedure ends with an error like this:
Status ERROR: org.eclipse.equinox.p2.director code=0 Software being installed: As.UP Runtime Core 0.8.0.201605251230 (org.smeup.sys.rt.core 0.8.0.201605251230) null
Status ERROR: org.eclipse.equinox.p2.director code=0 Software currently installed: Sme.UP MU Application NIO 0.8.0.201605240932 (com.smeup.erp.mu.prod.application.nio.product 0.8.0.201605240932) null
Status ERROR: org.eclipse.equinox.p2.director code=1 Only one of the following can be installed at once: null children=[Status ERROR: org.eclipse.equinox.p2.director code=0 As.UP Runtime Core 0.8.0.201605240932 (org.smeup.sys.rt.core 0.8.0.201605240932) null Status ERROR: org.eclipse.equinox.p2.director code=0 As.UP Runtime Core 0.8.0.201605251230 (org.smeup.sys.rt.core 0.8.0.201605251230) null]
Status ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy dependency: null children=[Status ERROR: org.eclipse.equinox.p2.director code=0 From: Sme.UP MU Application NIO 0.8.0.201605240932 (com.smeup.erp.mu.prod.application.nio.product 0.8.0.201605240932) null Status ERROR: org.eclipse.equinox.p2.director code=0 To: org.smeup.sys.ft.runt.e4.feature.group [0.8.0.201605240932] null]
Status ERROR: org.eclipse.equinox.p2.director code=1 Cannot satisfy dependency: null children=[Status ERROR: org.eclipse.equinox.p2.director code=0 From: As.UP Runtime E4 0.8.0.201605240932 (org.smeup.sys.ft.runt.e4.feature.group 0.8.0.201605240932) null Status ERROR: org.eclipse.equinox.p2.director code=0 To: org.smeup.sys.rt.core [0.8.0.201605240932] null]
So, if I have correctly understood the meaning of the error message, dependencies specified by a .product file are encoded with an exact version, and so my product is now fixed to that exact version of my "updatable" feature. And the updatable feature contains an exact version of a singleton plugin. In fact, i can't update this plugin because its version is fixed (by product and feature) and i can't install a different version because plugin is a singleton.
At this link:
aniefer.blogspot.it/2009/07/composing-and-updating-custom-eclipse.html
i read that one possible solution is to use p2.inf file for adding feature plugins requirement with a version range instead of fixed version. I tried to change the definition of my features by introducing a properly configured p2.inf file that declare singleton plugin dependency with a version range, but the Eclipse PDE product export procedure fails reporting a requirement error (the plugin defined in p2.inf is not found).
How can i solve this problem?
Thanks to all for help.
|
|
|
Powered by
FUDForum. Page generated in 0.07506 seconds