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'
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'
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'
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' name='OSGi/Minimum' version='1.0.0'/>
<provided namespace='osgi.ee' name='OSGi/Minimum' version='1.1.0'/>
<provided namespace='osgi.ee' name='OSGi/Minimum' version='1.2.0'/>
<provided namespace='osgi.ee' name='JRE' version='1.0.0'/>
<provided namespace='osgi.ee' name='JRE' version='1.1.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.0.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.1.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.2.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.3.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.4.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.5.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.6.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.7.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='1.8.0'/>
<provided namespace='osgi.ee' name='JavaSE' version='9.0.0'/>
<provided namespace='osgi.ee' name='JavaSE/compact1'
version='1.8.0'/>
<provided namespace='osgi.ee' name='JavaSE/compact1'
version='9.0.0'/>
<provided namespace='osgi.ee' name='JavaSE/compact2'
version='1.8.0'/>
<provided namespace='osgi.ee' name='JavaSE/compact2'
version='9.0.0'/>
<provided namespace='osgi.ee' name='JavaSE/compact3'
version='1.8.0'/>
<provided namespace='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?