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