The plugin may have problems loading the class that p2 did not detect when it was installed.
In this case, you will see the plugin as installed because it is present in the p2 metadata of your Eclipse. However, the OSGi framework may not be able to resolve plug-in / package dependencies at run time. Such discrepancies are due to the fact that the p2 engine and OSGi infrastructure use different methods for resolving dependencies. The p2 engine is less accurate in the presence of several versions and may allow you to install plugins that cannot work. It is also possible to break up existing plugins by installing something completely unrelated, which brings additional versions of third-party libraries such as journaling. Usually, OSGi detects that a plugin / package should download two versions of the same Java package. This version conflict is called "uses restriction restrictions."
Open "View Error Log" with Window->Show View->Error log . Look for logs with "FrameworkEvent ERROR" in the header associated with the "org.eclipse.epp.mpc. *" Plugins.
Here is an example of a version conflict caused by the need for org.eclipse.epp.mpc.ui to download two versions of the org.apache.commons.logging package at the same time. I was able to solve this problem by removing jcl.over.slf4j jar from the "plugins" directory. This leaves Eclipse / p2 in that the remote bank is still installed, since p2 has a record of this in the metadata. In fact, we only load at run time one version of the package β one that is exported by the org.apache.commons.logging plugin.
org.osgi.framework.BundleException: Could not resolve module: org.eclipse.epp.mpc.ui [334] Unresolved requirement: Require-Bundle: org.eclipse.epp.mpc.core; bundle-version="1.3.0" -> Bundle-SymbolicName: org.eclipse.epp.mpc.core; bundle-version="1.3.1.v20140820-1706" org.eclipse.epp.mpc.core [332] No resolution report for the bundle. Bundle was not resolved because of a uses contraint violation. org.osgi.service.resolver.ResolutionException: Uses constraint violation. Unable to resolve resource org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"] because it is exposed to package 'org.apache.commons.logging' from resources org.apache.commons.logging [osgi.identity; osgi.identity="org.apache.commons.logging"; type="osgi.bundle"; version:Version="1.0.4.v201101211617"] and jcl.over.slf4j [osgi.identity; osgi.identity="jcl.over.slf4j"; type="osgi.bundle"; version:Version="1.7.2"] via two dependency chains. Chain 1: org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"] require: (&(osgi.wiring.bundle=org.apache.commons.logging)(bundle-version>=1.0.4)) | provide: osgi.wiring.bundle: org.apache.commons.logging org.apache.commons.logging [osgi.identity; osgi.identity="org.apache.commons.logging"; type="osgi.bundle"; version:Version="1.0.4.v201101211617"] Chain 2: org.eclipse.epp.mpc.core [osgi.identity; osgi.identity="org.eclipse.epp.mpc.core"; type="osgi.bundle"; version:Version="1.3.1.v20140820-1706"] import: (&(osgi.wiring.package=org.apache.http.impl.client)(version>=4.1.0)) | export: osgi.wiring.package=org.apache.http.impl.client; uses:=org.apache.commons.logging org.apache.httpcomponents.httpclient [osgi.identity; osgi.identity="org.apache.httpcomponents.httpclient"; type="osgi.bundle"; version:Version="4.2.6.v201311072007"] import: (&(osgi.wiring.package=org.apache.commons.logging)(version>=1.1.1)) | export: osgi.wiring.package: org.apache.commons.logging jcl.over.slf4j [osgi.identity; osgi.identity="jcl.over.slf4j"; type="osgi.bundle"; version:Version="1.7.2"]
source share