On Wed, 21 May 2025 01:44:48 GMT, Alexander Matveev <[email protected]>
wrote:
>> src/jdk.jpackage/windows/classes/jdk/jpackage/internal/WinMsiBundler.java
>> line 199:
>>
>>> 197: }
>>> 198: return version;
>>> 199: },
>>
>> I guess, this is a workaround for the case when the version comes from JDK's
>> release file. This is the wrong place for this workaround. It should be a
>> part of the code reading version from JDK's release file.
>
> Yes, this is workaround when the version comes from JDK's release file. In
> this case name will be customeJDK-25.0.0.0 for example if we change it when
> we read version form file. Other platform do not need it. Only
> PRODUCT_VERSION in MSI needs to be 2 or 4 components, so I think it is
> correct location for it.
For runtime packaging, the version can be taken from the command line or the
"release" file. In the latter case the version should be valid for the current
platform and packaging type. Version adjustments should be isolated in a
function that reads a version from the "release" file. The result of this
function call should be such that it will be used as-is without any
modifications.
Ideally, we should have `Optional<String>
readVersionFromRuntimeReleaseFile(String packageType, Path pathToReleaseFile)`
function that we can unit test and that will return a valid version for the
given packaging type ("packageType" parameter). It should return an empty
Optional instance if it fails.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25314#discussion_r2099180763