This is an approach to fix the bug (currently being revied by Java Installer team):
Registry.idt creates during build process registry entry templates in installation bundle
(i.e for example in jre-6u12-windows-i586-p.exe )
When installation bundle runs it creates msi file and puts these registry entries templates to it.
When msiexec.exe executes msi file it creates a real windows registries based on
entry templates (originating from Registry.idt) and on predefined msi properties like for example
[JDK_VERSION] or [MODE]
There is a way to pass additional properties (or modify values of existing ones) to msi
by specifying them in command line parameter while running either a wrapper:
msiexec.exe /i jre1.6.0_12.msi PROPERTY_NAME=VALUE
So if I run
then UNREGJQS propert will be accessible by Regutils.dll
BOOL FindMSIProperty(LPCTSTR lpszVersion, LPCTSTR lpszProperty, LPTSTR lpszPropertyValue, DWORD dwCount, const int installType, LPTSTR lpszAltPropertyValue)
defined in RegInstall.cpp
and as a result if I check UNREGJQS in InstallJQS() function in regUtill.dll I will be able to decide wherever to start or not JQS service.