<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><b>From: </b>"Tagir Valeev" <amaembo@gmail.com><br><b>To: </b>"Gavin Bierman" <gavin.bierman@oracle.com><br><b>Cc: </b>"amber-dev" <amber-dev@openjdk.org>, "amber-spec-experts" <amber-spec-experts@openjdk.org><br><b>Sent: </b>Wednesday, September 25, 2024 11:44:12 AM<br><b>Subject: </b>Re: [module-import] Modules transitively requiring module java.base<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="auto"><div dir="auto">I support this change, thank you! </div><div dir="auto"><br></div><div dir="auto">Tagir</div></div></blockquote><div><br></div><div>I agree, this is a useful addition.<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>RĂ©mi<br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><blockquote style="border-left:2px solid #1010FF;margin-left:5px;padding-left:5px;color:#000;font-weight:normal;font-style:normal;text-decoration:none;font-family:Helvetica,Arial,sans-serif;font-size:12pt;"><div dir="auto"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Sep 25, 2024, 11:30 Gavin Bierman <<a href="mailto:gavin.bierman@oracle.com" target="_blank" rel="noreferrer">gavin.bierman@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear all,<br>
<br>
People playing with JEP 476 - Module Import Declarations - have been surprised when importing an aggregator module such as `<a href="http://java.se" rel="noreferrer noreferrer noreferrer" target="_blank">java.se</a>`, that they also needed to `import module java.base`. This is because the `<a href="http://java.se" rel="noreferrer noreferrer noreferrer" target="_blank">java.se</a>` 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.<br>
<br>
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.<br>
<br>
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 `<a href="http://java.se" rel="noreferrer noreferrer noreferrer" target="_blank">java.se</a>` module so that it `requires transitive java.base`. (I have updated the draft JEP: <a href="https://openjdk.org/jeps/8335987" rel="noreferrer noreferrer noreferrer" target="_blank">https://openjdk.org/jeps/8335987</a>)<br>
<br>
Let me know your thoughts on this proposal either on this list, or direct to me.<br>
<br>
Thanks,<br>
Gavin <br>
<br>
</blockquote></div></div><br></blockquote></div></div></body></html>