8233922: Service binding augments module graph with observable incubator modules

Alan Bateman Alan.Bateman at oracle.com
Tue Nov 19 13:51:03 UTC 2019


On 19/11/2019 12:43, Chris Hegarty wrote:
> :
>
> I’m surprise to see the resolver use `mres.hasIncubatingWarning() == false`, rather than ModuleResolution.doNotResolveByDefault(mres).
>
I think you are asking about the semantics of the two flags in the 
JDK-specific ModuleResolution class file attribute. Some day we should 
probably document it although I'm not sure if it's the j.l.module 
package description, JEP 11, or somewhere else.

The warn-incubating flag is used in all phases to indicate that a module 
is an incubator module and to warn when the module is resolved. 
Technically these two concerns could be separated but this need hasn't 
arisen to date.

The do-not-resolve-by-default flag excludes modules exporting APIs from 
the default set of named modules to resolve when the initial module is 
the unnamed module, i.e. class path applications. Technically this could 
be used to exclude modules that aren't incubator modules (and I think 
we've got close once or two to doing that).

-Alan.


More information about the jigsaw-dev mailing list