Alan,

Thanks for getting this fixed. I verified that the jpacakge ToolProvider implementation now works as expected.

-- Kevin


On 11/18/2019 12:13 PM, Mandy Chung wrote:

On 11/18/19 4:34 AM, Alan Bateman wrote:

This issue concerns the interaction of service binding with incubator modules, a left over from JDK 9 that resurfaces with the upcoming JEP 343 Packaging Tool (Incubator).

The summary on this issue is that service binding augments the module graph with the modules induced by the service-use relation. This happens irrespective of the incubating status of the observable modules because the incubating designation is a JDK rather than Java SE/specified concept. It shows up with module `jdk.incubator.jpackage` because this module wants to implement the `java.util.spi.ToolProvider` service interface, a service interface used by `java.base`. If service binding were to resolve `jdk.incubator.jpackage` then a warning would be emitted in all phases that java.base is resolved (so everywhere).

It's on my radar to more precisely specify service binding and also work out the specification changes needed to allow filtering of the observing modules but this is not needed at this time. Instead, we can limit the changes to the configuration for the boot layer as the set of observable modules when creating the configuration for the boot layer is not specified (it's up to the implementation). The change proposed here means that incubator modules are not candidates to add to the module graph during service binding for the boot layer's configuration. It has no impact on the general case where incubating modules may be observable when creating the configuration for custom layers.


Limiting this change to the boot layer's configuration is a good solution that allows time to work out the specification change.

:
  http://cr.openjdk.java.net/~alanb/8233922/webrev/

The patch looks good to me.

Mandy


Reply via email to