Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-dev] Reusing (config.)a.jre.javase from TP

This was implemented by Tobias but here is my understanding:

I think the point was that those IUs provide packages independent of whether they are actually available for a given BREE or not.

E.g. a bundle with BREE JavaSE-1.6 would be able to resolve and compile against packages only introduced with JavaSE-9.
Arguably this case could just as well be checked by compiling against the JDK matching the bundle BREE (useJDK=BREE)

But it could also be the other way around, a bundle with BREE JavaSE-9 explicitly requiring packages in the manifest which were only introduced in JavaSE-9 would not be able to resolve if using a p2 repo that provides a.jre.javase version 1.6.0 only.

Regards
Jan



On 20.02.18, 18:13, "tycho-dev-bounces@xxxxxxxxxxx on behalf of Mickael Istria" <tycho-dev-bounces@xxxxxxxxxxx on behalf of mistria@xxxxxxxxxx> wrote:

    I found that StandardEEResolutionHints.isNonApplicableEEUnit() does exclude existing (config.)a.jre.avase from resolution for the following reason
    
       "p2 repositories are polluted with useless a.jre/config.a.jre IUs. These IUs do not represent current/desired JRE and can expose resolver to packages that are not actually available."
    
    
    I looked at the IU definition in the Eclipse Platform repo:
    
        <unit id='a.jre.javase' version='9.0.0' singleton='false'>
          <provides size='182'>
            <provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='9.0.0'/>
            <provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
            <provided namespace='java.package' name='javax.activation' version='0.0.0'/>
            <provided namespace='java.package' name='javax.activity' version='0.0.0'/>
            <provided namespace='java.package' name='javax.annotation' version='0.0.0'/>
            <provided namespace='java.package' name='javax.annotation.processing' version='0.0.0'/>
            <provided namespace='java.package' name='javax.crypto' version='0.0.0'/>
            <provided namespace='java.package' name='javax.crypto.interfaces' version='0.0.0'/>
            <provided namespace='java.package' name='javax.crypto.spec' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.event' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.metadata' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.plugins.bmp' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.plugins.jpeg' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.imageio.stream' version='0.0.0'/>
            <provided namespace='java.package' name='javax.jws' version='0.0.0'/>
            <provided namespace='java.package' name='javax.jws.soap' version='0.0.0'/>
            <provided namespace='java.package' name='javax.lang.model' version='0.0.0'/>
            <provided namespace='java.package' name='javax.lang.model.element' version='0.0.0'/>
            <provided namespace='java.package' name='javax.lang.model.type' version='0.0.0'/>
            <provided namespace='java.package' name='javax.lang.model.util' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.loading' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.modelmbean' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.monitor' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.openmbean' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.relation' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.remote' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.remote.rmi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.management.timer' version='0.0.0'/>
            <provided namespace='java.package' name='javax.naming' version='0.0.0'/>
            <provided namespace='java.package' name='javax.naming.directory' version='0.0.0'/>
            <provided namespace='java.package' name='javax.naming.event' version='0.0.0'/>
            <provided namespace='java.package' name='javax.naming.ldap' version='0.0.0'/>
            <provided namespace='java.package' name='javax.naming.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.net <http://javax.net>' version='0.0.0'/>
            <provided namespace='java.package' name='javax.net.ssl' version='0.0.0'/>
            <provided namespace='java.package' name='javax.print' version='0.0.0'/>
            <provided namespace='java.package' name='javax.print.attribute' version='0.0.0'/>
            <provided namespace='java.package' name='javax.print.attribute.standard' version='0.0.0'/>
            <provided namespace='java.package' name='javax.print.event' version='0.0.0'/>
            <provided namespace='java.package' name='javax.rmi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.rmi.CORBA' version='0.0.0'/>
            <provided namespace='java.package' name='javax.rmi.ssl' version='0.0.0'/>
            <provided namespace='java.package' name='javax.script' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth.callback' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth.kerberos' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth.login' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.auth.x500' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.cert' version='0.0.0'/>
            <provided namespace='java.package' name='javax.security.sasl' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sound.midi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sound.midi.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sound.sampled' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sound.sampled.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sql' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sql.rowset' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sql.rowset.serial' version='0.0.0'/>
            <provided namespace='java.package' name='javax.sql.rowset.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.border' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.colorchooser' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.event' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.filechooser' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf.basic' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf.metal' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf.multi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf.nimbus' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.plaf.synth' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.table' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.text' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.text.html' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.text.html.parser' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.text.rtf' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.tree' version='0.0.0'/>
            <provided namespace='java.package' name='javax.swing.undo' version='0.0.0'/>
            <provided namespace='java.package' name='javax.tools' version='0.0.0'/>
            <provided namespace='java.package' name='javax.transaction' version='0.0.0'/>
            <provided namespace='java.package' name='javax.transaction.xa' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind.annotation' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind.annotation.adapters' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind.attachment' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind.helpers' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.bind.util' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto.dom' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto.dsig' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto.dsig.dom' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto.dsig.keyinfo' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.crypto.dsig.spec' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.datatype' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.namespace' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.parsers' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.soap' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.stream' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.stream.events' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.stream.util' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.transform' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.transform.dom' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.transform.sax' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.transform.stax' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.transform.stream' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.validation' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws <http://javax.xml.ws>' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.handler' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.handler.soap' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.http' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.soap' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.spi' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.spi.http' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.ws.wsaddressing' version='0.0.0'/>
            <provided namespace='java.package' name='javax.xml.xpath' version='0.0.0'/>
            <provided namespace='java.package' name='org.ietf.jgss' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA_2_3' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA_2_3.portable' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA.DynAnyPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA.ORBPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA.portable' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CORBA.TypeCodePackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CosNaming' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CosNaming.NamingContextExtPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.CosNaming.NamingContextPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.Dynamic' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.DynamicAny' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.DynamicAny.DynAnyFactoryPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.DynamicAny.DynAnyPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.IOP' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.IOP.CodecFactoryPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.IOP.CodecPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.Messaging' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableInterceptor' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableInterceptor.ORBInitInfoPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer.CurrentPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer.POAManagerPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer.POAPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer.portable' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.PortableServer.ServantLocatorPackage' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.SendingContext' version='0.0.0'/>
            <provided namespace='java.package' name='org.omg.stub.java.rmi' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.bootstrap' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.css' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.events' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.html' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.ls <http://org.w3c.dom.ls>' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.ranges' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.stylesheets' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.traversal' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.views' version='0.0.0'/>
            <provided namespace='java.package' name='org.w3c.dom.xpath' version='0.0.0'/>
            <provided namespace='java.package' name='org.xml.sax' version='0.0.0'/>
            <provided namespace='java.package' name='org.xml.sax.ext' version='0.0.0'/>
            <provided namespace='java.package' name='org.xml.sax.helpers' version='0.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='OSGi/Minimum' version='1.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='OSGi/Minimum' version='1.1.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='OSGi/Minimum' version='1.2.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JRE' version='1.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JRE' version='1.1.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.1.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.2.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.3.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.4.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.5.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.6.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.7.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='1.8.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE' version='9.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact1' version='1.8.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact1' version='9.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact2' version='1.8.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact2' version='9.0.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact3' version='1.8.0'/>
            <provided namespace='osgi.ee <http://osgi.ee>' name='JavaSE/compact3' version='9.0.0'/>
          </provides>
          <touchpoint id='org.eclipse.equinox.p2.native' version='1.0.0'/>
        </unit>
    
    
    Which one of the packages is erroneous here to justify exclusion of the IU? Or maybe the erroneous packages was an issue that was fixed upstream in Platform/p2 and as a consequence the more recent versions of the IUs shouldn't be excluded anymore?
    
    


Back to the top