RFR: 8345259: Disallow ALL-MODULE-PATH without explicit --module-path [v11]
Severin Gehwolf
sgehwolf at openjdk.org
Wed Dec 18 11:37:41 UTC 2024
On Tue, 17 Dec 2024 22:28:10 GMT, Mandy Chung <mchung at openjdk.org> wrote:
> > So this means `--limit-modules` has no meaning when `ALL-MODULE-PATH` is specified. It will be ignored.
>
> I can't tell how it will be ignored. Maybe missing something.
>
> The transitive dependences of the modules specified to `--limit-modules` plus the modules specified to `--add-modules` are observable. See the implementation of `limitFinder` method which do not compute the dependences of the modules specified to `--add-modules`.
>
> > ```
> > * `jlink --add-modules ALL-MODULE-PATH --module-path MP --limit-modules java.base`
> > ```
> This jlink command should fail as jdk.net required by b is not observable.
Maybe I'm missing something, too. It seems we have a different understand of *what* the transitive closure is being taken of.
`[...] plus the modules specified to '--add-modules' are observable`. So in the above case `MP` has `{a,b,c}` as observable because ALL-MODULE-PATH has been specified. Thus, since I understood it as the "transitive closure of `{a, b, c}` and `java.base`" => `{a, b, jdk.net, c, java.base}` it would not fail.
It sounds to me that you interpret "transitive closure of named modules plus the modules added with --add-modules" as `{java.base, a, b, c}`. Is that it?
Anyway, lets continue this discussion on a separate issue if possible.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22494#issuecomment-2551086758
More information about the core-libs-dev
mailing list