[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Newsgroup Home]
[news.eclipse.technology.equinox] Re: P2 and unresolved dependencies

Looks like this is the same problem reported in bug 236111 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=236111). See especially comments #4, #8, and #9. Also bug 225340 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=225340).

So it sounds like the "solution" for me is to use create separate features for each of my "adapter" plugins and then optionally include them from my main feature. That means my product would go from 1 feature to 12 features!

This is far from ideal - now I have lots of components that may or may not have been installed properly. Many more moving pieces to confuse my customers and provide potential for confusion and misconfiguration.

Frankly I'm pretty irritated with P2 here and trying really hard not to turn this in to a rant. I'm very tempted to add an install handler to my product as a workaround - this forces P2 to fail over to the old Upgrade Manager that still works...

Roy Paterson wrote:
Update - I tried converting my "adapter" plugins in to fragments but that didn't help - same result :-(

Paul Webster wrote:
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