Dear all,

People playing with JEP 476 - Module Import Declarations - have been surprised 
when importing an aggregator module such as `java.se`, that they also needed to 
`import module java.base`. This is because the `java.se` module which, as an 
aggregator module, consists of only `requires transitive` directives, does not 
contain the directive `requires transitive java.base`. Currently Java forbids 
any module declaring a transitive dependence on the `java.base` module.

This restriction was sensible in the original module system design as all 
modules have an implicit dependence on `java.base`, and so such a directive was 
pointless. But with the module import feature where module declarations are 
used to derive a set of packages to be imported, this directive is useful and 
so should be allowed.

We propose in the next preview of this feature to lift the language restriction 
on `requires transitive java.base`, and also to change the implementation of 
the `java.se` module so that it `requires transitive java.base`. (I have 
updated the draft JEP: https://openjdk.org/jeps/8335987)

Let me know your thoughts on this proposal either on this list, or direct to me.

Thanks,
Gavin 

Reply via email to