RFR: 8342035: jlink plugins for setting java.vendor, java.vm.vendor and java.vendor.url

Henry Jen henryjen at openjdk.org
Mon Dec 2 18:55:40 UTC 2024


On Mon, 2 Dec 2024 18:34:49 GMT, Alan Bateman <alanb at openjdk.org> wrote:

>> Add jlink plugins to allow branding change for java.vendor, java.vm.vendor and java.vendor.url.
>> 
>> The jlink plugin will change the value in java.lang.VersionProps, which will set those property values. The `java.vm.vendor` was initialized by VM with value set at build time, and then later be replaced with value from VersionProps.
>> 
>> To keep current behavior, we treat 'N/A' value as no-op to mimic current build behavior. Perhaps we don't really need this, as proper value should be set with `branding.conf` in official build.
>
> src/hotspot/share/runtime/threads.cpp line 654:
> 
>> 652:   initialize_java_lang_classes(main_thread, CHECK_JNI_ERR);
>> 653:   // Update the java.vm.vendor property with java.lang.VersionProps.VM_VENDOR
>> 654:   Arguments::update_vm_vendor(VM_Version::vm_vendor());
> 
> It seems very ad hoc to update this after initPhase1 has run, need to think through if there is a better way to do this.

I agree. This is to minimize change on behavior. 

Not sure what kind of requirement is there for java.vm.vendor, would it be OK for VM not the set this value and wait until loading of VersionProps class?

The update is needed for the assertion in statSampler, I don't see other reference to the property in the repo. So the question is when we need the property to be available and exposure scope.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/21964#discussion_r1866420143


More information about the core-libs-dev mailing list