-
Bug
-
Resolution: Done
-
Major
-
4.11.0.AM1
-
None
-
devex #163 March 2019
The bundle fails to load with this error:
!ENTRY org.jboss.tools.openshift.ui 4 0 2019-03-18 18:56:49.104 !MESSAGE FrameworkEvent ERROR !STACK 0 org.osgi.framework.BundleException: Could not resolve module: org.jboss.tools.openshift.ui [1088] Bundle was not resolved because of a uses constraint violation. org.apache.felix.resolver.reason.ReasonException: Uses constraint violation. Unable to resolve resource org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"] because it is exposed to package 'javax.xml.bind.annotation' from resources org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.13.300.v20190218-1622"; singleton:="true"] and javax.xml.bind [osgi.identity; type="osgi.bundle"; version:Version="2.2.0.v201105210648"; osgi.identity="javax.xml.bind"] via two dependency chains. {code:java} Chain 1: org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"] require: (osgi.wiring.bundle=org.eclipse.core.runtime) | provide: osgi.wiring.bundle: org.eclipse.core.runtime org.eclipse.osgi [osgi.identity; osgi.identity="org.eclipse.osgi"; type="osgi.bundle"; version:Version="3.13.300.v20190218-1622"; singleton:="true"] Chain 2: org.jboss.tools.openshift.ui [osgi.identity; type="osgi.bundle"; version:Version="3.6.0.v20190220-1733"; osgi.identity="org.jboss.tools.openshift.ui"; singleton:="true"] require: (&(osgi.wiring.bundle=com.spotify.docker.client)(bundle-version>=3.4.0)) | provide: osgi.wiring.bundle; bundle-version:Version="8.11.7.v20180731-1413"; osgi.wiring.bundle="com.spotify.docker.client" com.spotify.docker.client [osgi.identity; type="osgi.bundle"; version:Version="8.11.7.v20180731-1413"; osgi.identity="com.spotify.docker.client"] import: (&(osgi.wiring.package=javax.ws.rs)(version>=2.0.0)) | export: osgi.wiring.package=javax.ws.rs; uses:=javax.xml.bind.annotation javax.ws.rs [osgi.identity; type="osgi.bundle"; version:Version="2.0.1.v201504171603"; osgi.identity="javax.ws.rs"] import: (&(osgi.wiring.package=javax.xml.bind.annotation)(&(version>=2.2.0)(!(version>=3.0.0)))) | export: osgi.wiring.package: javax.xml.bind.annotation javax.xml.bind [osgi.identity; type="osgi.bundle"; version:Version="2.2.0.v201105210648"; osgi.identity="javax.xml.bind"] at org.eclipse.osgi.container.Module.start(Module.java:452) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1784) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1763) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1726) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1657) at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:233) at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:343)
This does not happen with Java11. This seems to be cause because org.eclipse.osgi exports javax.xml.bind packages and the new Docker stuff is requesting a specific version of javax.xml.bind thus we have two versions of the packages.
Solution is to replace require bundle org.eclipse.core.runtime by import package