RFE: https://bugs.openjdk.java.net/browse/JDK-8232080
CSR: https://bugs.openjdk.java.net/browse/JDK-8232753
Webrev: https://cr.openjdk.java.net/~mr/rev/8232080/

This change implements jlink plugins, and associated changes in the VM
and libraries, to support the following new jlink options:

  - --vendor-bug-url=<vendor-bug-url> overrides the vendor bug URL baked
    into the build.  The value of the system property "java.vendor.url.bug"
    will be <vendor-bug-url>.

  - --vendor-vm-bug-url=<vendor-vm-bug-url> overrides the vendor VM bug
    URL baked into the build.  This value will be displayed in VM error
    logs.

  - --vendor-version=<vendor-version> overrides the vendor version string
    baked into the build, if any.  The value of the system property
    "java.vendor.version" will be <vendor-version>.  This value will be
    displayed in the output of java --version.

  - --add-options=<options> prepends the specified <options> string,
    which may include whitespace, before any other options when invoking
    the VM in the resulting image.

The vendor-information plugins work by using the JDK’s internal ASM
library to redefine static fields in the java.lang.VersionProps class.
The VM reads the vendor-version and vendor-vm-bug-url strings from that
class during startup.

The add-options plugin works by storing the requested options in an
internal resource, /java.base/jdk/internal/vm/options.  The VM loads that
resource from the lib/modules jimage file during startup and prepends any
options found there to those given on the command line.

Passes tier1-3 and JCK on {linux,macos,windows}-x64.

Thanks,
- Mark

Reply via email to