diff -r 31ec3e55fa3d -r 6c255334120d src/java.base/share/classes/java/lang/VersionProps.java.template --- a/src/java.base/share/classes/java/lang/VersionProps.java.template Tue Oct 29 11:33:25 2019 +0100 +++ b/src/java.base/share/classes/java/lang/VersionProps.java.template Tue Oct 29 08:26:55 2019 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,9 +42,11 @@ private static final String java_version_date = "@@VERSION_DATE@@"; + // This field is read by HotSpot private static final String java_runtime_name = "@@RUNTIME_NAME@@"; + // This field is read by HotSpot private static final String java_runtime_version = "@@VERSION_STRING@@"; @@ -69,22 +71,26 @@ private static final String CLASSFILE_MAJOR_MINOR = "@@VERSION_CLASSFILE_MAJOR@@.@@VERSION_CLASSFILE_MINOR@@"; - private static final String VENDOR_VERSION_STRING = - "@@VENDOR_VERSION_STRING@@"; - - private static final String vendor_version = - (!VENDOR_VERSION_STRING.isEmpty() - ? " " + VENDOR_VERSION_STRING : ""); - private static final String VENDOR = "@@VENDOR@@"; private static final String VENDOR_URL = "@@VENDOR_URL@@"; - private static final String VENDOR_URL_BUG = + // The remaining VENDOR_* fields must not be final, + // so that they can be redefined by jlink plugins + + // This field is read by HotSpot + private static String VENDOR_VERSION = + "@@VENDOR_VERSION_STRING@@"; + + private static String VENDOR_URL_BUG = "@@VENDOR_URL_BUG@@"; + // This field is read by HotSpot + private static String VENDOR_URL_VM_BUG = + "@@VENDOR_URL_VM_BUG@@"; + /** * Initialize system properties using build provided values. * @@ -95,8 +101,8 @@ props.put("java.version.date", java_version_date); props.put("java.runtime.version", java_runtime_version); props.put("java.runtime.name", java_runtime_name); - if (!VENDOR_VERSION_STRING.isEmpty()) - props.put("java.vendor.version", VENDOR_VERSION_STRING); + if (!VENDOR_VERSION.isEmpty()) + props.put("java.vendor.version", VENDOR_VERSION); props.put("java.class.version", CLASSFILE_MAJOR_MINOR); @@ -216,6 +222,9 @@ jdk_debug_level = jdk_debug_level + " "; } + String vendor_version = (VENDOR_VERSION.isEmpty() + ? "" : " " + VENDOR_VERSION); + ps.println(java_runtime_name + vendor_version + " (" + jdk_debug_level + "build " + java_runtime_version + ")");