Roy Paterson wrote:
I'm having a problem with P2 and unresolved dependencies. I make a
product which is packaged as an Eclipse feature that my customers
install in to their existing Eclipse installs. My product integrates
with several 3rd-party team provider plugins, e.g. CVS (from
Eclipse), Subclipse, P4WSAD, Clearcase, etc...
Various bits of my code depend on code in those 3rd-party plugins.
Typically a customer will only have one team plugin installed, for
the SCM system they're using. To support this my feature includes
"adapter" plugins, one for each of those 3rd party plugins. My
"adapter" plugins each require one of the 3rd-party plugins. My core
plugin provides an extension point which my adapter plugins
implement. In a typical installation, only one of my 3rd party
plugins would resolve, and my core code would use that one.
This pattern worked fine in Eclipse 3.0 - 3.3, but seems to have
problems with Eclipse 3.4, specifically with P2. I am able to
install my feature with no errors and it works fine. However if I
then try and install anything else P2 gives me lots of "Unsatisfied
dependency" errors:
Cannot complete the request. See the details.
Unsatisfied dependency: [com.smartbear.collaborator.ui.accurev
5.0.5001.1048] requiredCapability: osgi.bundle/com.accurev.eclipse/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability:
osgi.bundle/com.perforce.team.core/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability: osgi.bundle/com.perforce.p4api/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability:
osgi.bundle/com.perforce.team.ui/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability:
osgi.bundle/com.perforce.team.core/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability:
osgi.bundle/com.perforce.team.ui/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.perforce
5.0.5001.1048] requiredCapability: osgi.bundle/com.perforce.p4api/0.0.0
Unsatisfied dependency: [com.smartbear.collaborator.ui.accurev
5.0.5001.1048] requiredCapability: osgi.bundle/com.accurev.eclipse/0.0.0
Unsatisfied dependency:
[com.smartbear.collaborator.base.feature.feature.group 5.0.5001.1048]
requiredCapability:
org.eclipse.equinox.p2.iu/com.smartbear.collaborator.ui.accurev/[5.0.5001.1048,5.0.5001.1048]
Unsatisfied dependency:
[com.smartbear.collaborator.base.feature.feature.group 5.0.5001.1048]
requiredCapability:
org.eclipse.equinox.p2.iu/com.smartbear.collaborator.ui.perforce/[5.0.5001.1048,5.0.5001.1048]
P2 is correct in a sense - those 3rd-party plugins ARE required by my
plugins, and they can't resolve. But this is working as designed,
and was not a problem before P2.
So how should this work? Is there a different way I should be
implementing this 3rd-party-plugin integration pattern? At any rate
it seems like a bug for P2 to allow my plugin to install and work,
but then complain later when I try to install something unrelated.
Thanks,
Roy Paterson
Smart Bear Software
I've re-routed to a group that's more in the "know"
PW