Refactor the Windows installer to allow for branding and customisations
The Windows installers code should allow for full branding and customisation by third-parties so that the code can be reused in other circumstances. By default, the installers will be branded for installing Adoptium Temurin and coded to install the binaries produced by the project; however, there is value in reusing common behavior and logic across participants who are installing Temurin as a different branded binary, or even a different custom build.
The customisation code should not be stored in the Adoptium repository for users other than Temurin. At the moment there are customisations that require developers to update the Adoptium installer repository for their own use - this should not be necessary.
This issue is to capture requirements for the refactoring of the existing code to permit current external requirements, and ensure that those currently using the code can include their requirements, and track any changes undertaken.
(Raising on behalf of @karianna . Please amend or update as required.)
@jmjaffe37 please have a look at this and weigh in for @tellison to understand how we rebrand the installer for the Microsoft Build of OpenJDK.
One added observation @tellison: There are no Windows installer customizations contained in the customization link you've posted above... those are all Linux package customizations per-vendor.
(And I think those should be removed from the Adoptium repo as well)
@tellison, @d3r3kk, you can find the customizations for windows at the following link: https://github.com/adoptium/installer/tree/master/wix/Lang
These customizations mostly specify variables used in templates to make the MSI installer. If we would like to remove these, then these variables would either be specified by the user/infrastructure pipeline through environment variables or cli
@jmjaffe37 - Have a chat to @d3r3kk about priorities etc, but it would be interesting to see a spec written up on the exact changes required (for these and the Linux / Mac installers).