[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.platform] P2 and unresolved dependencies

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