Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 422302 - complications using target artifact in 4.2.2+ stream
Summary: complications using target artifact in 4.2.2+ stream
Status: RESOLVED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 4.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 3.8.2+   Edit
Assignee: Thomas Watson CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 400518 422366
  Show dependency tree
 
Reported: 2013-11-21 21:30 EST by David Williams CLA
Modified: 2013-11-22 14:14 EST (History)
2 users (show)

See Also:


Attachments
patch for 'ip' pom.xml (973 bytes, patch)
2013-11-21 22:42 EST, David Williams CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description David Williams CLA 2013-11-21 21:30:35 EST
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"
Comment 1 David Williams CLA 2013-11-21 21:35:47 EST
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>
Comment 2 David Williams CLA 2013-11-21 22:42:42 EST
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.)
Comment 3 Thomas Watson CLA 2013-11-22 08:41:46 EST
(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.
Comment 4 David Williams CLA 2013-11-22 14:14:42 EST
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 :)