[module-import] Modules transitively requiring module java.base
Gavin Bierman
gavin.bierman at oracle.com
Wed Sep 25 09:30:18 UTC 2024
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
More information about the amber-spec-experts
mailing list