On Tue, 14 Nov 2023 15:58:57 GMT, Severin Gehwolf <sgehw...@openjdk.org> wrote:

> > The current implementation `--system-modules` re-applies for every jlink 
> > invocation since the transformation depends on the set of modules to be 
> > linked in the resulting image.
> 
> Yes. The same is true for a run-time image based link for the system modules 
> plugin.
>
> > OTOH `--vendor-bug-url`, `--vendor-version` and `--vendor-vm-bug-url` 
> > plugins are auto-applied to the new image created via this run-time image 
> > based linking when these options are not specified.
> 
> Since some of those things are also possible to specify at build-time (with ` 
> --with-vendor-name` and friends), this applies to the packaged-modules link 
> as well.

Better to explain with an example:


$ jdk22/bin/jlink --add-modules jdk.compiler,jdk.jlink --output image1 
--vendor-bug.url https://xyz.com/bugs --save-jlink-argfiles argfile 
--generate-jli-classes jli_trace.txt --strip-debug --add-options 
"-Dcom.foo.XYZ=true"

$ image1/bin/jlink --add-modules jdk.jlink --output image2 --add-options 
"-Dcom.acme.name=BAR"


How can the user know what plugins are applied to `image2`?   i.e. what is the 
jlink command to produce `image2` if running from `jdk22` with the packaged 
modules present?

Reading the changes, I'm not sure but I think it's not equivalent to:

jdk22/bin/jlink --add-modules jdk.jlink --output image2 --vendor-bug.url 
https://xyz.com/bugs --save-jlink-argfiles argfile --generate-jli-classes 
jli_trace.txt --strip-debug --add-options "-Dcom.foo.XYZ=true" --add-options 
"-Dcom.acme.name=BAR"


I think this behavior should be documented.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14787#issuecomment-1810820190

Reply via email to