<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The whole point of this JEP is to give the choice of enabling JNI to the<br>user. If a library developer can enable JNI by saying `requires native;`<br>in a module, then the choice isn't given to the user.</blockquote><div><br></div><div>Let the user make a choice? What do you let them choose? They can't choose to be safe or not. </div><div>If they choose not to --enable-native-access for some modules, the app will often break in unknown places.<br></div><div>Therefore, they can only choose to use it or not.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">The main module is not the user. The user is the person who develops,<br>maintains, or otherwise "owns" the application. The main module is part<br>of the application. The point of the JEP is to let the user, outside the<br>application, acknowledge the risk arising from use of JNI inside the<br>application (whether in the main module or six levels down).<br></blockquote><div><br></div><div>I realize that your definition of "end user" is even crazier than I originally thought.<br></div><div><br></div><div>If the "user" you're talking about isn't even a developer, then what you're saying doesn't make sense.<br></div><div>The way users avoid risks is containers and virtual machines. Java programs without --enable-native-access are just as dangerous for them.<br></div><div><br></div><div>Glavo</div><div><br></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 30, 2023 at 12:33 AM Alex Buckley <<a href="mailto:alex.buckley@oracle.com">alex.buckley@oracle.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 8/29/2023 9:29 AM, Attila Kelemen wrote:<br>
> <br>
>     The whole point of this JEP is to give the choice of enabling JNI to<br>
>     the<br>
>     user. If a library developer can enable JNI by saying `requires<br>
>     native;`<br>
>     in a module, then the choice isn't given to the user.<br>
> <br>
> <br>
> It is not about the library developer enabling JNI to the user (though I <br>
> do remember that somebody mentioned that possibility as well). Glavo, <br>
> and many others (including me) want the *main* module to be able to <br>
> declare it, and the main module is the user.<br>
<br>
The main module is not the user. The user is the person who develops, <br>
maintains, or otherwise "owns" the application. The main module is part <br>
of the application. The point of the JEP is to let the user, outside the <br>
application, acknowledge the risk arising from use of JNI inside the <br>
application (whether in the main module or six levels down).<br>
<br>
Alex<br>
</blockquote></div>