Community
Participate
Working Groups
This is a "side issue" blocking bug 400518 for the old 4.2.2+ stream. The goal was to change to have specific versions of Orbit bundles specified (via "target artifact") that matched what was released in 4.2.2, and then be able to change one of them (jsch) to a more recent version. I started be seeing which Orbit bundles were "shipped" with 4.2.2 (in Eclipse SDK, Equinox SDK, and Test framework) and from the R4_2_maintenance branch could see the Orbit repo used (for Juno SR2) was R20130118183705). After dozens of iterations of adding "hidden" dependencies (things built, but not shipped) and several "multiple level" dependencies (apparently back then some bundles would specify one range, something else (presumably not shipped) a lower range) I thought I had just about gotten to the "end" when encountered a "blocking" issue. If my guesses are half right, this will require a change a little larger than merely specifying exact versions of Orbit bundles to use, so wanted to document it well, in case others had other/better solutions. My local tests build current fails with: [INFO] Resolving class path of MavenProject: org.eclipse.equinox:org.eclipse.equinox.ip:1.1.300-SNAPSHOT @ /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.bundles/bundles/org.eclipse.equinox.ip/pom.xml [DEBUG] Equinox resolver state: Resolved OSGi state NOT RESOLVED org.eclipse.osgi_3.8.2.qualifier : /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.framework/bundles/org.eclipse.osgi Missing Constraint: Bundle-RequiredExecutionEnvironment: J2SE-1.5,OSGi/Minimum-1.2 NOT RESOLVED org.eclipse.osgi.services_3.3.100.qualifier : /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.framework/bundles/org.eclipse.osgi.services Missing Constraint: Bundle-RequiredExecutionEnvironment: OSGi/Minimum-1.2,CDC-1.1/Foundation-1.1,J2SE-1.4 NOT RESOLVED org.eclipse.equinox.ip_1.1.300.qualifier : /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.bundles/bundles/org.eclipse.equinox.ip Missing Constraint: Import-Package: javax.servlet; version="2.1.0" Missing Constraint: Import-Package: javax.servlet.http; version="2.1.0" NOT RESOLVED org.eclipse.equinox.servletbridge.extensionbundle_1.2.100.qualifier : /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.bundles/bundles/org.eclipse.equinox.servletbridge.extensionbundle Missing Constraint: Fragment-Host: org.eclipse.osgi; bundle-version="0.0.0" RESOLVED org.eclipse.equinox.util_1.0.401.qualifier : /home/davidw/builds/localaggr422/eclipse.platform.releng.aggregator/rt.equinox.bundles/bundles/org.eclipse.equinox.util [ERROR] Internal error: java.lang.RuntimeException: org.osgi.framework.BundleException: Bundle org.eclipse.equinox.ip cannot be resolved [ERROR] Resolution errors: [ERROR] Bundle org.eclipse.equinox.ip - Missing Constraint: Import-Package: javax.servlet; version="2.1.0" [ERROR] Bundle org.eclipse.equinox.ip - Missing Constraint: Import-Package: javax.servlet.http; version="2.1.0"
So, on the surface, this might be another case where we need to "filter out" servletbridge.extensionbundle. ? <build> <plugins> <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>target-platform-configuration</artifactId> <configuration> <filters> <!-- Workaround for https://bugs.eclipse.org/bugs/show_bug.cgi?id=348045 --> <filter> <type>osgi-bundle</type> <id>org.eclipse.equinox.servletbridge.extensionbundle</id> <removeAll/> </filter> </filters> </configuration> </plugin> </plugins> </build>
Created attachment 237634 [details] patch for 'ip' pom.xml This did fix "could not satisfy constraints" problem. The is for R3_8_maintenance branch (for Eclipse 4.2.2+, Juno SR2+) I don't recall operation and settings back in that stream, but a change to the pom.xml would not even change the qualifier as we currently have things set ... so my recommendation is not to worry about the "service field" ... but ... that's up to equinox committers. (not sure why this wouldn't normally show up when using whole Orbit repository ... but ... we've seen similar "changes in behavior" in other streams.)
(In reply to David Williams from comment #2) > Created attachment 237634 [details] > patch for 'ip' pom.xml > > This did fix "could not satisfy constraints" problem. > Released with: http://git.eclipse.org/c/equinox/rt.equinox.bundles.git/commit/?h=R3_8_maintenance&id=0772c6063946b12db0d933d1502561120ae05f14 > The is for R3_8_maintenance branch (for Eclipse 4.2.2+, Juno SR2+) > > I don't recall operation and settings back in that stream, but a change to > the pom.xml would not even change the qualifier as we currently have things > set ... so my recommendation is not to worry about the "service field" ... > but ... that's up to equinox committers. I did not increase the version of the bundle. > > (not sure why this wouldn't normally show up when using whole Orbit > repository ... but ... we've seen similar "changes in behavior" in other > streams.) I have no idea. In Kepler we stopped building the bad extension bundle altogether, so I assume this is only needed in the Juno (R3_8_maintenance) branch.
Thanks Tom (this might have been a side effect of me initially having a few versions wrong for our pre-reqs ... and if so sorry for causing extra work ... but somehow I sort of doubt it and best to exclude that bundle from everything :)