Community
Participate
Working Groups
When running java 1.5 the javax.xml.stream bundle is not provisioned when there is a package dependency on it, resulting in a bad configuration and non-functional plugins. Running with Java6 does not have this issue as this package is included in the jdk. This could be related to the package dependency being transitive. The bugzilla feature has a plugin import for javax.xml.bind which is the bundle that has a package import for javax.xml.stream. These bundles are from Orbit. I have tried this with both Eclipse 3.5.2 and 3.6.1 with the same results. Steps to reproduce: # start Eclipse using a java 5 VM # add the Mylyn release repository to p2 (http://download.eclipse.org/mylyn/releases/latest) # expand the "Mylyn Integrations" category # select only the "Mylyn Tasks Connector: Bugzilla" # complete the install and restart # see that you are unable to add a bugzilla repository from within Mylyn and when running the osgi console and executing diag on org.eclipse.mylyn.bugzilla.core that the javax.xml.stream bundle is not resolved Are there any workarounds that we should use for this?
Here are some more technical details when when installing the Mylyn Bugzilla connector into the Eclipse SDK 3.6.2 running on Java 1.5.0-22: osgi> ss mylyn Framework is launched. id State Bundle 198 RESOLVED org.eclipse.mylyn_3.5.0.v20110316-0100 199 INSTALLED org.eclipse.mylyn.bugzilla.core_3.5.0.v20110316-0100 200 INSTALLED org.eclipse.mylyn.bugzilla.ui_3.5.0.v20110316-0100 201 RESOLVED org.eclipse.mylyn.commons.core_3.5.0.v20110316-0100 202 ACTIVE org.eclipse.mylyn.commons.net_3.5.0.v20110316-0100 203 RESOLVED org.eclipse.mylyn.commons.repositories_0.1.0.v20110316-0100 204 RESOLVED org.eclipse.mylyn.commons.screenshots_1.0.0.v20110316-0100 205 <<LAZY>> org.eclipse.mylyn.commons.team_0.1.0.v20110316-0100 206 ACTIVE org.eclipse.mylyn.commons.ui_3.5.0.v20110316-0100 207 INSTALLED org.eclipse.mylyn.commons.xmlrpc_3.5.0.v20110316-0100 208 ACTIVE org.eclipse.mylyn.context.core_3.5.0.v20110316-0100 209 RESOLVED org.eclipse.mylyn.discovery.core_3.5.0.v20110316-0100 210 RESOLVED org.eclipse.mylyn.discovery.ui_3.5.0.v20110316-0100 211 RESOLVED org.eclipse.mylyn.monitor.core_3.5.0.v20110316-0100 212 ACTIVE org.eclipse.mylyn.monitor.ui_3.5.0.v20110316-0100 213 RESOLVED org.eclipse.mylyn.tasks.core_3.5.0.v20110316-0100 214 RESOLVED org.eclipse.mylyn.tasks.search_3.5.0.v20110316-0100 215 ACTIVE org.eclipse.mylyn.tasks.ui_3.5.0.v20110316-0100 osgi> diag 199 reference:file:plugins/org.eclipse.mylyn.bugzilla.core_3.5.0.v20110316-0100.jar [199] Direct constraints which are unresolved: Missing required bundle org.eclipse.mylyn.commons.xmlrpc_[3.4.0,4.0.0). Missing required bundle org.apache.xmlrpc_0.0.0. Leaf constraints in the dependency chain which are unresolved: reference:file:plugins/javax.xml.bind_2.2.0.v201103041518.jar [194] Missing imported package javax.xml.stream_0.0.0. This is what I found in the content.jar: <unit id="javax.xml.bind" version="2.2.0.v201103041518" singleton="false"> <requires size="3"> <required namespace="java.package" name="javax.xml" range="[1.3.0,2.0.0)"/> <required namespace="java.package" name="javax.activation" range="[1.1.0,1.2.0)"/> <required namespace="java.package" name="javax.xml.stream" range="0.0.0"/> </requires> The other dependencies where installed but not javax.xml.stream. osgi> ss javax Framework is launched. id State Bundle 4 RESOLVED javax.servlet_2.5.0.v200910301333 5 RESOLVED javax.servlet.jsp_2.0.0.v200806031607 192 RESOLVED javax.activation_1.1.0.v201005080500 193 RESOLVED javax.xml_1.3.4.v201005080400 194 INSTALLED javax.xml.bind_2.2.0.v201103041518
Essentially the transitive dependency from org.eclipse.mylyn.bugzilla.core to javax.xml.bind to javax.xml.stream is not resolved by p2. We worked around it by making the javax.xml.stream bundle an explicit dependency of the Bugzilla connector feature but I would have expected p2 to resolve this?
Could you please attach the profile file of an install where the package / bundle is missing. Thx.
Created attachment 192642 [details] p2/org.eclipse.equinox.p2.engine/profileRegistry
Pascal, let me know if you need anything else.
This is because the SDK product includes an IU representing the JRE: <unit id='a.jre.javase' version='1.6.0' singleton='false'> This IU is generated based on 1.6 and so provides the javax.xml.stream package. The code that generates the jre IU for product builds just creates a 1.6 profile by default, there is an open bug somewhere about allowing products to choose a different jre level.
Thanks for the explanation! That's good to know.
The only way to address this definitively would be to have the provisioning to actually consider the real set of packages provided by the JRE. We have been discussing that for a while but looks like we never had a bug for it, so I opened one (https://bugs.eclipse.org/bugs/show_bug.cgi?id=346174) and closing this as a dupe. *** This bug has been marked as a duplicate of bug 346174 ***