[java-idp-jetty-base] 01/11: IDP-2147 Investigate Wix V4

Rod Widdowson rdw at steadingsoftware.com
Fri Nov 3 13:03:10 UTC 2023


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch dev/IDP-2147
in repository java-idp-jetty-base.

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-jetty-base.git;a=commit;h=a8c1ab23f2f054d9d845028255f806ccb843735c

commit a8c1ab23f2f054d9d845028255f806ccb843735c
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Fri Sep 8 15:30:34 2023 +0100

    IDP-2147 Investigate Wix V4
    
    https://shibboleth.atlassian.net/browse/IDP-2147
    
    Preliminary conversion using "wix convert".
---
 src/main/wix/Jetty-Delete.wxs     |  12 ++--
 src/main/wix/Jetty-Gui.wxs        |  78 +++++++++-------------
 src/main/wix/Jetty-InstallDlg.wxs |  48 ++++---------
 src/main/wix/Jetty-Main.wxs       |  72 ++++++++++----------
 src/main/wix/Jetty-Procrun.wxs    |  71 +++++++++-----------
 src/main/wix/Jetty-User.wxs       | 137 ++++++++++++++++++--------------------
 6 files changed, 180 insertions(+), 238 deletions(-)

diff --git a/src/main/wix/Jetty-Delete.wxs b/src/main/wix/Jetty-Delete.wxs
index 999d704..13f396e 100644
--- a/src/main/wix/Jetty-Delete.wxs
+++ b/src/main/wix/Jetty-Delete.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -12,11 +10,11 @@
      implied.  See the License for the specific language governing
      permissions and limitations under the License.  -->
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
     <!-- Explicit delete behind ourselves on installs -->
     <Fragment>
         <ComponentGroup Id="DeleteFiles">
-            <Component Id="RemoveOldJetty" Guid="{871D0584-3000-4E39-9C1F-19586A6F70C6}" Win64="no" Directory="IDP_INSTALLDIR">
+            <Component Id="RemoveOldJetty" Guid="{871D0584-3000-4E39-9C1F-19586A6F70C6}" Directory="IDP_INSTALLDIR" Bitness="always32">
                 <RegistryValue Id="RemoveOldJettyBaseEtc" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="RemoveOldJettyBaseEtc" Value="TRUE" Type="string" KeyPath="yes" />
                 <util:RemoveFolderEx On="install" Property="OldJettyBaseEtc" />
                 <util:RemoveFolderEx On="install" Property="OldJettyBaseLib" />
@@ -25,12 +23,12 @@
                 <util:RemoveFolderEx On="both" Property="OldJettyBaseTmp" />
             </Component>
 
-            <Component Id="RemoveJettyDir" Guid="{35369D63-E95B-46B4-9431-7B8B35A7F85E}" Win64="no" Directory="TARGETDIR">
+            <Component Id="RemoveJettyDir" Guid="{35369D63-E95B-46B4-9431-7B8B35A7F85E}" Directory="TARGETDIR" Bitness="always32">
                 <RegistryValue Id="RemoveJettyDir" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettyDir" Value="TRUE" Type="string" KeyPath="yes" />
                 <util:RemoveFolderEx On="install" Property="JettyDir" />
             </Component>
 
-            <Component Id="RemoveProcRunDir" Guid="{687EFCD0-9B56-4086-84EB-33A3C74CFEE2}" Win64="no" Directory="TARGETDIR">
+            <Component Id="RemoveProcRunDir" Guid="{687EFCD0-9B56-4086-84EB-33A3C74CFEE2}" Directory="TARGETDIR" Bitness="always32">
                 <RegistryValue Id="RemoveProcRunDir" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="ProcRunDir" Value="TRUE" Type="string" KeyPath="yes" />
                 <util:RemoveFolderEx On="install" Property="ProcRunDir" />
             </Component>
diff --git a/src/main/wix/Jetty-Gui.wxs b/src/main/wix/Jetty-Gui.wxs
index 6b879cb..21ad36b 100644
--- a/src/main/wix/Jetty-Gui.wxs
+++ b/src/main/wix/Jetty-Gui.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -12,7 +10,7 @@
      implied.  See the License for the specific language governing
      permissions and limitations under the License.  -->
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" >
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
 <!-- This file controls the dispaying of the GUI dialogs (both WiX and custom) -->
   <Fragment>
     <WixVariable Id="WixUILicenseRtf" Value="$(var.ProjectDir)\license.rtf" />
@@ -62,50 +60,34 @@
         <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
 
         <!-- Events (from Orca\ControlEvent and from light"s complaints) -->
-        <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
-        <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4">
-            WIXUI_INSTALLDIR_VALID<>"1"
-        </Publish>
-
-        <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallJetty">
-            LicenseAccepted = "1"
-        </Publish>
-
-        <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-        <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
-
-        <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
-
-        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg">
-            (NOT Installed) AND (NOT ALREADYINSTALLED)
-        </Publish>
-        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallJetty">
-            (NOT Installed) AND ALREADYINSTALLED
-        </Publish>
-        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">
-            Installed AND PATCH
-        </Publish>
-
-        <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return">1</Publish>
-        <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
-        <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
-        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">
-            Installed AND PATCH
-        </Publish>
-        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallJetty">
-            NOT Installed OR PATCH
-        </Publish>
-        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg">
-            Installed AND NOT PATCH
-        </Publish>
-
-        <ProgressText Action="QtSetACEConf">Setting the ACLs on the idp conf directory</ProgressText>
-        <ProgressText Action="QtSetACECreds">Setting the ACLs on the idp credentials directory</ProgressText>
-        <ProgressText Action="QtSetACELogs">Setting the ACLs on the idp logs directory</ProgressText>
-        <ProgressText Action="QtSetACEJettyLog">Setting the ACLs on the jetty-base logs directory</ProgressText>
-        <ProgressText Action="QtSetACEJettyTmp">Setting the ACLs on the jetty-base tmp directory</ProgressText>
-        <ProgressText Action="QtSetACEJettyStart">Setting the ACLs on the jetty-base start.d directory</ProgressText>
-        <ProgressText Action="WixRemoveFoldrrsEx">Cleaning out previous install</ProgressText>
+        <Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath_$(sys.BUILDARCHSHORT)" Order="3" />
+        <Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4" Condition="WIXUI_INSTALLDIR_VALID<>"1"" />
+
+        <Publish Dialog="LicenseAgreementDlg" Control="Next" Event="NewDialog" Value="InstallJetty" Condition="LicenseAccepted = "1"" />
+
+        <Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg" />
+        <Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg" />
+
+        <Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg" />
+
+        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="LicenseAgreementDlg" Condition="(NOT Installed) AND (NOT ALREADYINSTALLED)" />
+        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallJetty" Condition="(NOT Installed) AND ALREADYINSTALLED" />
+        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Condition="Installed AND PATCH" />
+
+        <Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" />
+        <Publish Dialog="LicenseAgreementDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" />
+        <Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg" />
+        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Condition="Installed AND PATCH" />
+        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallJetty" Condition="NOT Installed OR PATCH" />
+        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Condition="Installed AND NOT PATCH" />
+
+        <ProgressText Action="QtSetACEConf" Message="Setting the ACLs on the idp conf directory" />
+        <ProgressText Action="QtSetACECreds" Message="Setting the ACLs on the idp credentials directory" />
+        <ProgressText Action="QtSetACELogs" Message="Setting the ACLs on the idp logs directory" />
+        <ProgressText Action="QtSetACEJettyLog" Message="Setting the ACLs on the jetty-base logs directory" />
+        <ProgressText Action="QtSetACEJettyTmp" Message="Setting the ACLs on the jetty-base tmp directory" />
+        <ProgressText Action="QtSetACEJettyStart" Message="Setting the ACLs on the jetty-base start.d directory" />
+        <ProgressText Action="WixRemoveFoldrrsEx" Message="Cleaning out previous install" />
 
     </UI>
   </Fragment>
diff --git a/src/main/wix/Jetty-InstallDlg.wxs b/src/main/wix/Jetty-InstallDlg.wxs
index afda9fa..8464b71 100644
--- a/src/main/wix/Jetty-InstallDlg.wxs
+++ b/src/main/wix/Jetty-InstallDlg.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -12,7 +10,7 @@
      implied.  See the License for the specific language governing
      permissions and limitations under the License.  -->
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
     <Fragment>
         <UI>
             <!-- This Dialog sets up INSTALL_JETTYD_USER, JETTYD_USER, JETTYD_DOMAIN, JETTYD_PASSWORD -->
@@ -24,51 +22,29 @@
                 <Control Id="TopDetailed" Type="Text" X="25" Y="24" Width="320" Height="12" Text="Please Select whether to run as a captive user" Transparent="yes" />
                 <Control Id="TopLine" Type="Line" X="0" Y="44" Width="370" Height="1" />
 
-                <Control Id="InstallJettyD" Type="CheckBox" X="25" Y="52" Height="20" Width="60"
-                         Property="INSTALL_JETTYD_USER" CheckBoxValue="TRUE" Text="Run As &User"/>
+                <Control Id="InstallJettyD" Type="CheckBox" X="25" Y="52" Height="20" Width="60" Property="INSTALL_JETTYD_USER" CheckBoxValue="TRUE" Text="Run As &User" />
 
-                <Control Id="DescriptionLine3A" Type="Text" X="25" Y="76"  Height="20" Width="60" Text="User Domain">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
-                <Control Id="Shibd_Domain" Type="Edit" X="85" Y="74" Height="17" Width="80"
-                         Property="JETTYD_DOMAIN" Text="[JETTYD_DOMAIN]">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
+                <Control Id="DescriptionLine3A" Type="Text" X="25" Y="76" Height="20" Width="60" Text="User Domain" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
+                <Control Id="Shibd_Domain" Type="Edit" X="85" Y="74" Height="17" Width="80" Property="JETTYD_DOMAIN" Text="[JETTYD_DOMAIN]" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
 
-                <Control Id="DescriptionLine3B" Type="Text" X="25" Y="96"  Height="20" Width="60" Text="Username">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
-                <Control Id="Shibd_User" Type="Edit" X="85" Y="94" Height="17" Width="80"
-                         Property="JETTYD_USER" Text="[JETTYD_USER]">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
+                <Control Id="DescriptionLine3B" Type="Text" X="25" Y="96" Height="20" Width="60" Text="Username" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
+                <Control Id="Shibd_User" Type="Edit" X="85" Y="94" Height="17" Width="80" Property="JETTYD_USER" Text="[JETTYD_USER]" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
 
-                <Control Id="DescriptionLine3C" Type="Text" X="25" Y="116"  Height="20" Width="60" Text="Password">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
-                <Control Id="Shibd_Pass" Type="Edit" X="85" Y="114" Height="17" Width="80"
-                         Property="JETTYD_PASSWORD" Password="yes">
-                    <Condition Action="hide">NOT INSTALL_JETTYD_USER</Condition>
-                    <Condition Action="show">INSTALL_JETTYD_USER</Condition>
-                </Control>
+                <Control Id="DescriptionLine3C" Type="Text" X="25" Y="116" Height="20" Width="60" Text="Password" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
+                <Control Id="Shibd_Pass" Type="Edit" X="85" Y="114" Height="17" Width="80" Property="JETTYD_PASSWORD" Password="yes" HideCondition="NOT INSTALL_JETTYD_USER" ShowCondition="INSTALL_JETTYD_USER" />
 
                 <!-- Stuff at the bottom: line, Back,Next, [space] Cancel -->
                 <Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="1" />
                 <Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
-                    <Publish Event="NewDialog" Value="LicenseAgreementDlg">1</Publish>
+                    <Publish Event="NewDialog" Value="LicenseAgreementDlg" />
                 </Control>
 
                 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Text="&Next" Default="yes">
-                    <Publish Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
+                    <Publish Event="NewDialog" Value="VerifyReadyDlg" />
                 </Control>
 
                 <Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Text="&Cancel" Cancel="yes">
-                    <Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
+                    <Publish Event="SpawnDialog" Value="CancelDlg" />
                 </Control>
             </Dialog>
 
diff --git a/src/main/wix/Jetty-Main.wxs b/src/main/wix/Jetty-Main.wxs
index e0c15d4..9cf354c 100644
--- a/src/main/wix/Jetty-Main.wxs
+++ b/src/main/wix/Jetty-Main.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -14,17 +12,15 @@
 
 <?define UpgradeUUID="FB2B7404-37B2-4CE5-8E2E-EEB53F9FF472"?>
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-    <Product Id="*" Name="Jetty Installer for the Shibboleth IdP V5" Language="1033" Version="11.0.13.0" Manufacturer="The Shibboleth Consortium" UpgradeCode="$(var.UpgradeUUID)">
-        <Package InstallerVersion="310" Compressed="yes" InstallScope="perMachine" Platform="x64" Description="Jetty Installation for Shibboleth IdP V5"
-                 Manufacturer="The Shibboleth Consortium" />
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
+    <Package Name="Jetty Installer for the Shibboleth IdP V5" Language="1033" Version="11.0.13.0" Manufacturer="The Shibboleth Consortium" UpgradeCode="$(var.UpgradeUUID)" InstallerVersion="310"><SummaryInformation Description="Jetty Installation for Shibboleth IdP V5" Manufacturer="The Shibboleth Consortium" />
 
         <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes" Schedule="afterInstallInitialize" />
         <MediaTemplate EmbedCab="yes" />
 
-        <Condition Message="C run time libraray not installed">UCRTBASE_DLL</Condition>
-        <Condition Message="JDK not installed">JAVA_EXECUTABLE</Condition>
-        <Condition Message="IDP not installed">IDP_INSTALLDIR</Condition>
+        <Launch Condition="UCRTBASE_DLL" Message="C run time libraray not installed" />
+        <Launch Condition="JAVA_EXECUTABLE" Message="JDK not installed" />
+        <Launch Condition="IDP_INSTALLDIR" Message="IDP not installed" />
 
         <!-- Information for the properties page of the msi -->
 
@@ -44,45 +40,26 @@
             <ComponentRef Id="Icon" />
         </Feature>
 
-        <Directory Id="TARGETDIR" Name="SourceDir">
-            <Directory Id="CommonAppDataFolder">
-                <Directory Id="ProgramDataShib" Name="Shibboleth">
-                    <Directory Id="IDPDISTDIR" Name="IdP"/>
-                </Directory>
-            </Directory>
-            <Directory Id="ProgramFilesFolder">
-                <Directory Id="SHIBBOLETHDIR" Name="Shibboleth" >
-                    <Directory Id="JETTYROOT" Name="Jetty" />
-                    <Directory Id="PROCRUNROOT" Name="ProcRun" />
-                </Directory>
-            </Directory>
-            <Directory Id="IDP_INSTALLDIR">
-                <Directory Id="JettyBaseFolder" Name="jetty-base">
-                    <Directory Id="StartDotD" Name="start.d" />
-                    <Directory Id="JettyLogs" Name="logs" />
-                    <Directory Id="JettyTmp" Name="tmp" />
-                </Directory>
-            </Directory>
-        </Directory>
+        
 
-        <Component Id="Icon" Guid="{C866B1EC-63E2-4379-BAA3-4D3936AE1BEC}" Directory="IDP_INSTALLDIR" Win64="yes">
+        <Component Id="Icon" Guid="{C866B1EC-63E2-4379-BAA3-4D3936AE1BEC}" Directory="IDP_INSTALLDIR" Bitness="always64">
             <RegistryValue Root="HKLM" Key="Software\Microsoft\Windows\CurrentVersion\Uninstall\[ProductCode]" Name="DisplayIcon" Value="[IDP_INSTALLDIR]\shib.ico,0" Type="string" />
         </Component>
 
         <CustomAction Id="SetFinalizeJetty" Property="QtFinalizeJetty" Value=""[JAVA_EXECUTABLE]" -cp "[IDPDISTDIR]\bin\lib\*;[IDPDISTDIR]\webapp\WEB-INF\lib\*" -Didp.home="[JAVA_IDP_HOME]" net.shibboleth.idp.installer.impl.FinalizeJettyBase" />
         <CustomAction Id="RunFinalizeJetty" Directory="SHIBBOLETHDIR" ExeCommand="[QtFinalizeJetty]" Execute="deferred" Impersonate="no" />
-        <CustomAction Id="QtFinalizeJetty" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
+        <CustomAction Id="QtFinalizeJetty" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
 
         <InstallExecuteSequence>
-            <Custom Action="SetFinalizeJetty" After="InstallFiles">(NOT Installed)</Custom>
-            <Custom Action="RunFinalizeJetty" After="SetFinalizeJetty">(NOT Installed) AND DEBUG_INSTALL</Custom>
-            <Custom Action="QtFinalizeJetty" After="RunFinalizeJetty">(NOT Installed)  AND (NOT DEBUG_INSTALL)</Custom>
+            <Custom Action="SetFinalizeJetty" After="InstallFiles" Condition="(NOT Installed)" />
+            <Custom Action="RunFinalizeJetty" After="SetFinalizeJetty" Condition="(NOT Installed) AND DEBUG_INSTALL" />
+            <Custom Action="QtFinalizeJetty" After="RunFinalizeJetty" Condition="(NOT Installed)  AND (NOT DEBUG_INSTALL)" />
         </InstallExecuteSequence>
 
         <!-- Parameters: See also Jetty-User -->
         <Property Id="ALWAYS_START_SERVICE" Value="TRUE" Secure="yes" />
         <Property Id="JAVA_JVMMX" Secure="yes">
-            <RegistrySearch Id="JvmMx" Root="HKLM" Key="SOFTWARE\Apache Software Foundation\Procrun 2.0\shibd_idp\Parameters\Java" Name="JvmMx" Type="raw" Win64="no" />
+            <RegistrySearch Id="JvmMx" Root="HKLM" Key="SOFTWARE\Apache Software Foundation\Procrun 2.0\shibd_idp\Parameters\Java" Name="JvmMx" Type="raw" Bitness="always32" />
         </Property>
 
         <!-- Environment -->
@@ -100,7 +77,7 @@
         </Property>
 
         <Property Id="IDP_INSTALLDIR" Secure="yes">
-            <RegistrySearch Id="OldInstallDir" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallDir" Type="directory" Win64="no" />
+            <RegistrySearch Id="OldInstallDir" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallDir" Type="directory" Bitness="always32" />
         </Property>
 
         <Upgrade Id="$(var.UpgradeUUID)">
@@ -109,5 +86,24 @@
 
         <UIRef Id="JettyInstallUI" />
 
-    </Product>
+    
+            <StandardDirectory Id="CommonAppDataFolder">
+                <Directory Id="ProgramDataShib" Name="Shibboleth">
+                    <Directory Id="IDPDISTDIR" Name="IdP" />
+                </Directory>
+            </StandardDirectory>
+            <StandardDirectory Id="ProgramFilesFolder">
+                <Directory Id="SHIBBOLETHDIR" Name="Shibboleth">
+                    <Directory Id="JETTYROOT" Name="Jetty" />
+                    <Directory Id="PROCRUNROOT" Name="ProcRun" />
+                </Directory>
+            </StandardDirectory>
+            <Directory Id="IDP_INSTALLDIR">
+                <Directory Id="JettyBaseFolder" Name="jetty-base">
+                    <Directory Id="StartDotD" Name="start.d" />
+                    <Directory Id="JettyLogs" Name="logs" />
+                    <Directory Id="JettyTmp" Name="tmp" />
+                </Directory>
+            </Directory>
+        </Package>
 </Wix>
diff --git a/src/main/wix/Jetty-Procrun.wxs b/src/main/wix/Jetty-Procrun.wxs
index 5c43b9c..247d521 100644
--- a/src/main/wix/Jetty-Procrun.wxs
+++ b/src/main/wix/Jetty-Procrun.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -12,8 +10,7 @@
      implied.  See the License for the specific language governing
      permissions and limitations under the License.  -->
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fw="http://schemas.microsoft.com/wix/FirewallExtension"
-     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs" xmlns:fw="http://wixtoolset.org/schemas/v4/wxs/firewall" xmlns:util="http://wixtoolset.org/schemas/v4/wxs/util">
     <?define ServiceStart="auto"?>
     <?define ServiceName="shibd_idp"?>
     <Fragment>
@@ -51,24 +48,22 @@
 
             <!-- Install the service. -->
 
-            <Component Id="procrun_service" Directory="dir64" Guid="{D5390673-A3C7-423A-975E-BB2684513ED0}">
-                <Condition>VersionNT64 And Not Intel64</Condition>
+            <Component Id="procrun_service" Directory="dir64" Guid="{D5390673-A3C7-423A-975E-BB2684513ED0}" Condition="VersionNT64 And Not Intel64">
+                
                 <File Id="file_procrun_AMD64_service" KeyPath="yes" Source="$(var.ProcrunSrc)\amd64\prunsrv.exe" Name="$(var.ServiceName).exe" />
-                <ServiceInstall Id="ServiceX64" Name="$(var.ServiceName)" DisplayName="Shibboleth IdP Daemon" Description="Runs the Jetty Container"
-                                Arguments="service $(var.ServiceName)" Type="ownProcess" Start="$(var.ServiceStart)" ErrorControl="ignore"
-                                Account="[SERVICE_USER]" Password="[JETTYD_PASSWORD]">
-                    <util:ServiceConfig FirstFailureActionType="none" SecondFailureActionType="none" ThirdFailureActionType="none"/>
+                <ServiceInstall Id="ServiceX64" Name="$(var.ServiceName)" DisplayName="Shibboleth IdP Daemon" Description="Runs the Jetty Container" Arguments="service $(var.ServiceName)" Type="ownProcess" Start="$(var.ServiceStart)" ErrorControl="ignore" Account="[SERVICE_USER]" Password="[JETTYD_PASSWORD]">
+                    <util:ServiceConfig FirstFailureActionType="none" SecondFailureActionType="none" ThirdFailureActionType="none" />
                 </ServiceInstall>
             </Component>
-            <Component Id="procrun_Firewall" Directory="dir64" Guid="{305B9114-289B-4D9B-B616-73082D659067}" KeyPath="yes">
-                 <Condition>NOT NO_FIREWALL And VersionNT64 And Not Intel64</Condition>
+            <Component Id="procrun_Firewall" Directory="dir64" Guid="{305B9114-289B-4D9B-B616-73082D659067}" KeyPath="yes" Condition="NOT NO_FIREWALL And VersionNT64 And Not Intel64">
+                 
                  <fw:FirewallException Id="Win64Shibd_idp" Program="[#file_procrun_AMD64_service]" Name="Win64Shibd_idp" Description="The Shibboleth IdP Daemon" Protocol="tcp" Scope="any" />
             </Component>
 
             <!-- Configure the service -->
 
-            <Component Id="ServiceParameters" Directory="PROCRUNROOT" Guid="{EBC566D8-0B22-4625-98E8-C8506A6892B5}" KeyPath="yes">
-                <Condition>NOT Installed</Condition>
+            <Component Id="ServiceParameters" Directory="PROCRUNROOT" Guid="{EBC566D8-0B22-4625-98E8-C8506A6892B5}" KeyPath="yes" Condition="NOT Installed">
+                
                 <!-- Start component here - that way if the start fails the user will be prompted and things will continue with the service declared. -->
                 <RegistryKey ForceDeleteOnUninstall="yes" ForceCreateOnInstall="yes" Key="SYSTEM\CurrentControlSet\services\$(var.ServiceName)\Parameters" Root="HKLM">
                     <Permission User="Administrators" GenericAll="yes" />
@@ -81,15 +76,15 @@
             <Component Id="StartParameters" Directory="PROCRUNROOT" Guid="{E9C5155E-F44D-4A10-9CEB-5CC2D683CD8A}" KeyPath="yes">
                 <!-- ForceDeleteOnUninstall stops us accumulating Stop keys -->
                 <RegistryKey ForceDeleteOnUninstall="yes" ForceCreateOnInstall="yes" Key="SOFTWARE\Apache Software Foundation\Procrun 2.0\$(var.ServiceName)\Parameters\Start" Root="HKLM">
-                    <RegistryValue Name="Class" Value="org.eclipse.jetty.start.Main" Type="string"/>
-                    <RegistryValue Name="Mode" Value="jvm" Type="string"/>
+                    <RegistryValue Name="Class" Value="org.eclipse.jetty.start.Main" Type="string" />
+                    <RegistryValue Name="Mode" Value="jvm" Type="string" />
                     <RegistryValue Name="Params" Type="multiString" Action="append">
-                        <MultiStringValue>STOP.PORT=8963</MultiStringValue>
-                        <MultiStringValue>STOP.Key=[JETTY_PASS]</MultiStringValue>
-                        <MultiStringValue>jetty.base=[IDP_INSTALLDIR]\jetty-base</MultiStringValue>
-                        <MultiStringValue>jetty.logging.dir=[IDP_INSTALLDIR]\jetty-base\logs</MultiStringValue>
+                        <MultiStringValue Value="STOP.PORT=8963" />
+                        <MultiStringValue Value="STOP.Key=[JETTY_PASS]" />
+                        <MultiStringValue Value="jetty.base=[IDP_INSTALLDIR]\jetty-base" />
+                        <MultiStringValue Value="jetty.logging.dir=[IDP_INSTALLDIR]\jetty-base\logs" />
                     </RegistryValue>
-                    <RegistryValue Name="WorkingPath" Type="string" Value="[IDP_INSTALLDIR]\jetty-base\"/>
+                    <RegistryValue Name="WorkingPath" Type="string" Value="[IDP_INSTALLDIR]\jetty-base\" />
                     <Permission User="Administrators" GenericAll="yes" />
                     <Permission User="SYSTEM" GenericAll="yes" />
                     <Permission Domain="[JETTYD_DOMAIN]" User="[PERMISSION_USER]" GenericRead="yes" GenericExecute="yes" Read="yes" />
@@ -97,16 +92,16 @@
             </Component>
             <Component Id="StopParameters" Directory="PROCRUNROOT" Guid="{F436CF79-B29E-45D7-B0D0-7181949CB9B3}" KeyPath="yes">
                 <RegistryKey ForceDeleteOnUninstall="yes" ForceCreateOnInstall="yes" Key="SOFTWARE\Apache Software Foundation\Procrun 2.0\$(var.ServiceName)\Parameters\Stop" Root="HKLM">
-                    <RegistryValue Name="Class" Value="org.eclipse.jetty.start.Main" Type="string"/>
-                    <RegistryValue Name="Mode" Value="jvm" Type="string"/>
+                    <RegistryValue Name="Class" Value="org.eclipse.jetty.start.Main" Type="string" />
+                    <RegistryValue Name="Mode" Value="jvm" Type="string" />
                     <RegistryValue Name="Params" Type="multiString" Action="append">
-                        <MultiStringValue>--stop</MultiStringValue>
-                        <MultiStringValue>STOP.PORT=8963</MultiStringValue>
-                        <MultiStringValue>STOP.Key=[JETTY_PASS]</MultiStringValue>
-                        <MultiStringValue>jetty.base=[IDP_INSTALLDIR]\jetty-base</MultiStringValue>
-                        <MultiStringValue>jetty.logging.dir=[IDP_INSTALLDIR]\jetty-base\logs</MultiStringValue>
+                        <MultiStringValue Value="--stop" />
+                        <MultiStringValue Value="STOP.PORT=8963" />
+                        <MultiStringValue Value="STOP.Key=[JETTY_PASS]" />
+                        <MultiStringValue Value="jetty.base=[IDP_INSTALLDIR]\jetty-base" />
+                        <MultiStringValue Value="jetty.logging.dir=[IDP_INSTALLDIR]\jetty-base\logs" />
                     </RegistryValue>
-                    <RegistryValue Name="WorkingPath" Type="string" Value="[IDP_INSTALLDIR]\jetty-base\"/>
+                    <RegistryValue Name="WorkingPath" Type="string" Value="[IDP_INSTALLDIR]\jetty-base\" />
                     <Permission User="Administrators" GenericAll="yes" />
                     <Permission User="SYSTEM" GenericAll="yes" />
                     <Permission Domain="[JETTYD_DOMAIN]" User="[PERMISSION_USER]" GenericRead="yes" GenericExecute="yes" Read="yes" />
@@ -128,11 +123,11 @@
                     <RegistryValue Name="Jvm" Value="auto" Type="string" />
                     <RegistryValue Name="Classpath" Value="[JETTYROOT]\start.jar" Type="string" />
                     <RegistryValue Name="Options" Type="multiString">
-                        <MultiStringValue>-Didp.home=[JAVA_IDP_HOME]</MultiStringValue>
-                        <MultiStringValue>-Djdk.tls.ephemeralDHKeySize=2048</MultiStringValue>
-                        <MultiStringValue>-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog</MultiStringValue>
-                        <MultiStringValue>-Djava.io.tmpdir=[JAVA_IDP_HOME]/jetty-base/tmp</MultiStringValue>
-                        <MultiStringValue>-XX:+UseG1GC</MultiStringValue>
+                        <MultiStringValue Value="-Didp.home=[JAVA_IDP_HOME]" />
+                        <MultiStringValue Value="-Djdk.tls.ephemeralDHKeySize=2048" />
+                        <MultiStringValue Value="-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.Slf4jLog" />
+                        <MultiStringValue Value="-Djava.io.tmpdir=[JAVA_IDP_HOME]/jetty-base/tmp" />
+                        <MultiStringValue Value="-XX:+UseG1GC" />
                     </RegistryValue>
                     <RegistryValue Name="JvmMx" Value="[JAVA_JVMMX]" Type="string">
                         <!-- Its an integer, but we added the # -->
@@ -145,16 +140,16 @@
         </ComponentGroup>
 
         <Binary Id="PropertyWorkSrc" SourceFile="scripts\jetty_script.vbs" />
-        <CustomAction Id="PropertyWork" BinaryKey="PropertyWorkSrc" VBScriptCall="" Execute="immediate" />
+        <CustomAction Id="PropertyWork" VBScriptCall="" Execute="immediate" BinaryRef="PropertyWorkSrc" />
         <CustomAction Id="SetJavaJvmMx" Property="JAVA_JVMMX" Value="#2048" />
 
         <InstallExecuteSequence>
             <!-- Do/Do Not not start service -->
-            <StartServices>(ALWAYS_START_SERVICE = "TRUE")</StartServices>
+            <StartServices Condition="(ALWAYS_START_SERVICE = "TRUE")" />
             <!-- Setup JAVA_IDP_HOME before we use it -->
             <Custom Action="PropertyWork" After="AppSearch" />
             <!-- Preserve Jetty parms -->
-            <Custom Action="SetJavaJvmMx" After="AppSearch">(NOT Installed) AND (NOT JAVA_JVMMX)</Custom>
+            <Custom Action="SetJavaJvmMx" After="AppSearch" Condition="(NOT Installed) AND (NOT JAVA_JVMMX)" />
         </InstallExecuteSequence>
 
 
diff --git a/src/main/wix/Jetty-User.wxs b/src/main/wix/Jetty-User.wxs
index d0084bb..38395ea 100644
--- a/src/main/wix/Jetty-User.wxs
+++ b/src/main/wix/Jetty-User.wxs
@@ -1,6 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!-- Licensed under the Apache License, Version 2.0 (the "License");
+<!-- Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
 
@@ -12,8 +10,7 @@
      implied.  See the License for the specific language governing
      permissions and limitations under the License.  -->
 
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fw="http://schemas.microsoft.com/wix/FirewallExtension"
-     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
+<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
 
     <!-- User management for a dedicate process.
          Input Properties- Created by the GUI.
@@ -44,26 +41,18 @@
                            used in icacls
     -->
 
-    <Fragment>
-
-        <!-- Restore saved settings -->
+    <Fragment><!-- Restore saved settings -->
         <Property Id="OLD_JETTYD_USER" Secure="yes">
-            <RegistrySearch Id="OldJettydUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydUser" Type="raw" Win64="no" />
+            <RegistrySearch Id="OldJettydUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydUser" Type="raw" Bitness="always32" />
         </Property>
         <Property Id="OLD_JETTYD_DOMAIN" Secure="yes">
-            <RegistrySearch Id="OldJettydDomain" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydDomain" Type="raw" Win64="no" />
+            <RegistrySearch Id="OldJettydDomain" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydDomain" Type="raw" Bitness="always32" />
         </Property>
         <Property Id="OLD_INSTALL_JETTYD_USER" Secure="yes">
-            <RegistrySearch Id="OldInstallJettydUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallJettydUser" Type="raw" Win64="no" />
+            <RegistrySearch Id="OldInstallJettydUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallJettydUser" Type="raw" Bitness="always32" />
         </Property>
         <!-- Save settings -->
-        <DirectoryRef Id="TARGETDIR">
-            <Component Id="SaveUserInfo" Guid="{E1E006C0-37D4-438B-97D0-64E1A089DCE8}" Win64="no">
-                <RegistryValue Id="targetRegShibUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydUser" Value="[JETTYD_USER]" Type="string" />
-                <RegistryValue Id="targetRegShibDomain" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydDomain" Value="[JETTYD_DOMAIN]" Type="string" />
-                <RegistryValue Id="targetRegInstallShibUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallJettydUser" Value="[INSTALL_JETTYD_USER]" Type="string" />
-            </Component>
-        </DirectoryRef>
+        
 
         <!-- Set up work properties for GUI -->
         <CustomAction Id="InheritJettydUser" Property="JETTYD_USER" Value="[OLD_JETTYD_USER]" />
@@ -73,28 +62,28 @@
         <CustomAction Id="SetInstallJettydUser" Property="INSTALL_JETTYD_USER" Value="TRUE" />
 
         <InstallUISequence>
-            <Custom Action="InheritJettydUser" After="AppSearch">OLD_JETTYD_USER AND NOT JETTYD_USER</Custom>
-            <Custom Action="InheritJettydDomain" After="AppSearch">OLD_JETTYD_DOMAIN AND NOT JETTYD_DOMAIN</Custom>
-            <Custom Action="SetJettydDomain" After="AppSearch">NOT OLD_JETTYD_DOMAIN AND NOT JETTYD_DOMAIN</Custom>
-            <Custom Action="InheritInstallJettydUser" After="InheritJettydUser">OLD_INSTALL_JETTYD_USER AND NOT JETTYD_USER</Custom>
-            <Custom Action="SetInstallJettydUser" After="InheritJettydUser">JETTYD_USER</Custom>
+            <Custom Action="InheritJettydUser" After="AppSearch" Condition="OLD_JETTYD_USER AND NOT JETTYD_USER" />
+            <Custom Action="InheritJettydDomain" After="AppSearch" Condition="OLD_JETTYD_DOMAIN AND NOT JETTYD_DOMAIN" />
+            <Custom Action="SetJettydDomain" After="AppSearch" Condition="NOT OLD_JETTYD_DOMAIN AND NOT JETTYD_DOMAIN" />
+            <Custom Action="InheritInstallJettydUser" After="InheritJettydUser" Condition="OLD_INSTALL_JETTYD_USER AND NOT JETTYD_USER" />
+            <Custom Action="SetInstallJettydUser" After="InheritJettydUser" Condition="JETTYD_USER" />
         </InstallUISequence>
 
         <!-- Set up work properties for the installer -->
-        <CustomAction Id="PermissionUserSpecified" Property="PERMISSION_USER" Value="[JETTYD_USER]"/>
-        <CustomAction Id="PermissionUserDefault" Property="PERMISSION_USER" Value="Administrators"/>
-        <CustomAction Id="DomainDefault" Property="JETTYD_DOMAIN" Value=""/>
-        <CustomAction Id="ServiceUser" Property="SERVICE_USER" Value="[JETTYD_DOMAIN]\[JETTYD_USER]"/>
-        <CustomAction Id="AceUserDomain" Property="ACE_USER" Value="[JETTYD_DOMAIN]\[PERMISSION_USER]"/>
-        <CustomAction Id="AceUserNoDomain" Property="ACE_USER" Value="[PERMISSION_USER]"/>
+        <CustomAction Id="PermissionUserSpecified" Property="PERMISSION_USER" Value="[JETTYD_USER]" />
+        <CustomAction Id="PermissionUserDefault" Property="PERMISSION_USER" Value="Administrators" />
+        <CustomAction Id="DomainDefault" Property="JETTYD_DOMAIN" Value="" />
+        <CustomAction Id="ServiceUser" Property="SERVICE_USER" Value="[JETTYD_DOMAIN]\[JETTYD_USER]" />
+        <CustomAction Id="AceUserDomain" Property="ACE_USER" Value="[JETTYD_DOMAIN]\[PERMISSION_USER]" />
+        <CustomAction Id="AceUserNoDomain" Property="ACE_USER" Value="[PERMISSION_USER]" />
 
         <InstallExecuteSequence>
-            <Custom Action="PermissionUserSpecified" Before="DomainDefault">INSTALL_JETTYD_USER</Custom>
-            <Custom Action="PermissionUserDefault" Before="DomainDefault">NOT INSTALL_JETTYD_USER</Custom>
-            <Custom Action="DomainDefault" Before="AceUserDomain">NOT INSTALL_JETTYD_USER</Custom>
-            <Custom Action="ServiceUser" After="DomainDefault">INSTALL_JETTYD_USER</Custom>
-            <Custom Action="AceUserDomain" Before="AceUserNoDomain">JETTYD_DOMAIN</Custom>
-            <Custom Action="AceUserNoDomain" Before="CreateFolders">NOT JETTYD_DOMAIN</Custom>
+            <Custom Action="PermissionUserSpecified" Before="DomainDefault" Condition="INSTALL_JETTYD_USER" />
+            <Custom Action="PermissionUserDefault" Before="DomainDefault" Condition="NOT INSTALL_JETTYD_USER" />
+            <Custom Action="DomainDefault" Before="AceUserDomain" Condition="NOT INSTALL_JETTYD_USER" />
+            <Custom Action="ServiceUser" After="DomainDefault" Condition="INSTALL_JETTYD_USER" />
+            <Custom Action="AceUserDomain" Before="AceUserNoDomain" Condition="JETTYD_DOMAIN" />
+            <Custom Action="AceUserNoDomain" Before="CreateFolders" Condition="NOT JETTYD_DOMAIN" />
         </InstallExecuteSequence>
 
         <!-- Actions to set acls
@@ -107,71 +96,77 @@
 icacls "C:\Program Files (x86)\Shibboleth\IdP\conf" /setowner administrators /t /inheritance:r /grant SYSTEM:F Administrators:F Administrators:(GR,RD,X)
         -->
 
-        <CustomAction Id="SetIcaclsVerb" Property="IcaclsVerb" Value=""c:\Windows\System32\icacls.exe""/>
-        <CustomAction Id="SetIcaclsPostFiles" Property="IcaclsPostFiles" Value="/t /inheritance:r /grant:r SYSTEM:F Administrators:F"/>
-        <CustomAction Id="SetIcaclsPostDirs" Property="IcaclsPostDirs" Value="/t /inheritance:r /grant:r SYSTEM:(CI)(OI)(F) Administrators:(CI)(OI)(F)"/>
+        <CustomAction Id="SetIcaclsVerb" Property="IcaclsVerb" Value=""c:\Windows\System32\icacls.exe"" />
+        <CustomAction Id="SetIcaclsPostFiles" Property="IcaclsPostFiles" Value="/t /inheritance:r /grant:r SYSTEM:F Administrators:F" />
+        <CustomAction Id="SetIcaclsPostDirs" Property="IcaclsPostDirs" Value="/t /inheritance:r /grant:r SYSTEM:(CI)(OI)(F) Administrators:(CI)(OI)(F)" />
 
         <!-- conf -->
-        <CustomAction Id="SetACEIdpWithout" Property="QtSetACEIdP" Value=""[IDP_INSTALLDIR]\bin\setacl.bat""/>
-        <CustomAction Id="SetACEIdpWith" Property="QtSetACEIdP" Value=""[IDP_INSTALLDIR]\bin\setacl.bat" [ACE_USER]"/>
-        <CustomAction Id="QtSetACEIdP" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
+        <CustomAction Id="SetACEIdpWithout" Property="QtSetACEIdP" Value=""[IDP_INSTALLDIR]\bin\setacl.bat"" />
+        <CustomAction Id="SetACEIdpWith" Property="QtSetACEIdP" Value=""[IDP_INSTALLDIR]\bin\setacl.bat" [ACE_USER]" />
+        <CustomAction Id="QtSetACEIdP" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
 
         <!-- Jetty tmp -->
-        <CustomAction Id="SetACEJettyTmpFiles" Property="QtSetACEJettyTmpFiles" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\tmp" [IcaclsPostFiles] [ACE_USER]:F"/>
-        <CustomAction Id="SetACEJettyTmpDirs" Property="QtSetACEJettyTmpDirs" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\tmp" [IcaclsPostDirs] [ACE_USER]:(CI)(OI)(F)"/>
-        <CustomAction Id="QtSetACEJettyTmpFiles" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
-        <CustomAction Id="QtSetACEJettyTmpDirs" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
+        <CustomAction Id="SetACEJettyTmpFiles" Property="QtSetACEJettyTmpFiles" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\tmp" [IcaclsPostFiles] [ACE_USER]:F" />
+        <CustomAction Id="SetACEJettyTmpDirs" Property="QtSetACEJettyTmpDirs" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\tmp" [IcaclsPostDirs] [ACE_USER]:(CI)(OI)(F)" />
+        <CustomAction Id="QtSetACEJettyTmpFiles" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
+        <CustomAction Id="QtSetACEJettyTmpDirs" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
 
         <!-- Jetty logs -->
         <CustomAction Id="SetACEJettyLogsFiles" Property="QtSetACEJettyLogsFiles" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\logs" [IcaclsPostFiles] [ACE_USER]:F" />
         <CustomAction Id="SetACEJettyLogsDirs" Property="QtSetACEJettyLogsDirs" Value="[IcaclsVerb] "[IDP_INSTALLDIR]\jetty-base\logs" [IcaclsPostDirs] [ACE_USER]:(CI)(OI)(F)" />
-        <CustomAction Id="QtSetACEJettyLogsFiles" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
-        <CustomAction Id="QtSetACEJettyLogsDirs" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
+        <CustomAction Id="QtSetACEJettyLogsFiles" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
+        <CustomAction Id="QtSetACEJettyLogsDirs" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
 
         <!-- Procmon Logs -->
         <CustomAction Id="SetACEProcrunLogOwner" Property="QtSetACEProcrunLogOwner" Value="[IcaclsVerb] "[SHIBBOLETHDIR]ProcRun\log" /t /setowner Administrators" />
         <CustomAction Id="SetACEProcrunLogFiles" Property="QtSetACEProcrunLogFiles" Value="[IcaclsVerb] "[SHIBBOLETHDIR]ProcRun\log" [IcaclsPostFiles] [ACE_USER]:F" />
         <CustomAction Id="SetACEProcrunLogDirs" Property="QtSetACEProcrunLogDirs" Value="[IcaclsVerb] "[SHIBBOLETHDIR]ProcRun\log" [IcaclsPostDirs] [ACE_USER]:(CI)(OI)(F)" />
-        <CustomAction Id="QtSetACEProcrunLogOwner" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
-        <CustomAction Id="QtSetACEProcrunLogFiles" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
-        <CustomAction Id="QtSetACEProcrunLogDirs" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Impersonate="no" />
+        <CustomAction Id="QtSetACEProcrunLogOwner" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
+        <CustomAction Id="QtSetACEProcrunLogFiles" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
+        <CustomAction Id="QtSetACEProcrunLogDirs" DllEntry="WixQuietExec" Execute="deferred" Impersonate="no" BinaryRef="Wix4UtilCA_X86" />
 
         <InstallExecuteSequence>
             <!-- Write the ACEs using the setacl command -->
-            <Custom Action="SetIcaclsPostDirs" Before="SetIcaclsPostFiles"/>
-            <Custom Action="SetIcaclsPostFiles" Before="SetIcaclsVerb"/>
-            <Custom Action="SetIcaclsVerb" Before="InstallFiles"/>
+            <Custom Action="SetIcaclsPostDirs" Before="SetIcaclsPostFiles" />
+            <Custom Action="SetIcaclsPostFiles" Before="SetIcaclsVerb" />
+            <Custom Action="SetIcaclsVerb" Before="InstallFiles" />
 
 	    <!-- Do the ACLS on the Shib install tree BEFORE we install the files
 	         That way the install will inherit the protections -->
-            <Custom Action="SetACEIdpWith" Before="QtSetACEIdP">INSTALL_JETTYD_USER</Custom>
-            <Custom Action="SetACEIdpWithout" Before="QtSetACEIdP">NOT INSTALL_JETTYD_USER</Custom>
-            <Custom Action="QtSetACEIdP" After="QtFinalizeJetty"/>
+            <Custom Action="SetACEIdpWith" Before="QtSetACEIdP" Condition="INSTALL_JETTYD_USER" />
+            <Custom Action="SetACEIdpWithout" Before="QtSetACEIdP" Condition="NOT INSTALL_JETTYD_USER" />
+            <Custom Action="QtSetACEIdP" After="QtFinalizeJetty" />
 
 	    <!-- Write the ACLS on the jetty-base, and procrun install tree.
 		 Do this AFTER we install the files, That way the install will inherit the protections -->
             <!-- jetty-base/tmp, files then dirs -->
-            <Custom Action="SetACEJettyTmpFiles" After="SetIcaclsVerb"/>
-            <Custom Action="SetACEJettyTmpDirs" After="SetIcaclsVerb"/>
+            <Custom Action="SetACEJettyTmpFiles" After="SetIcaclsVerb" />
+            <Custom Action="SetACEJettyTmpDirs" After="SetIcaclsVerb" />
 	    
-            <Custom Action="QtSetACEJettyTmpFiles" After="QtSetACEIdP"/>
-            <Custom Action="QtSetACEJettyTmpDirs" After="QtSetACEJettyTmpFiles"/>
+            <Custom Action="QtSetACEJettyTmpFiles" After="QtSetACEIdP" />
+            <Custom Action="QtSetACEJettyTmpDirs" After="QtSetACEJettyTmpFiles" />
 
             <!-- jetty-base/logs, files then dirs -->
-            <Custom Action="SetACEJettyLogsFiles" After="SetIcaclsVerb"/>
-            <Custom Action="SetACEJettyLogsDirs" After="SetIcaclsVerb"/>
-            <Custom Action="QtSetACEJettyLogsFiles" After="QtSetACEIdP"/>
-            <Custom Action="QtSetACEJettyLogsDirs" After="QtSetACEJettyLogsFiles"/>
+            <Custom Action="SetACEJettyLogsFiles" After="SetIcaclsVerb" />
+            <Custom Action="SetACEJettyLogsDirs" After="SetIcaclsVerb" />
+            <Custom Action="QtSetACEJettyLogsFiles" After="QtSetACEIdP" />
+            <Custom Action="QtSetACEJettyLogsDirs" After="QtSetACEJettyLogsFiles" />
 
             <!-- Procrun: log -->
-            <Custom Action="SetACEProcrunLogOwner" After="SetIcaclsVerb"/>
-            <Custom Action="SetACEProcrunLogFiles" After="SetIcaclsVerb"/>
-            <Custom Action="SetACEProcrunLogDirs" After="SetIcaclsVerb"/>
+            <Custom Action="SetACEProcrunLogOwner" After="SetIcaclsVerb" />
+            <Custom Action="SetACEProcrunLogFiles" After="SetIcaclsVerb" />
+            <Custom Action="SetACEProcrunLogDirs" After="SetIcaclsVerb" />
 
-            <Custom Action="QtSetACEProcrunLogOwner" After="QtFinalizeJetty"/>
-            <Custom Action="QtSetACEProcrunLogFiles" After="QtSetACEProcrunLogOwner"/>
-            <Custom Action="QtSetACEProcrunLogDirs" After="QtSetACEProcrunLogFiles"/>
+            <Custom Action="QtSetACEProcrunLogOwner" After="QtFinalizeJetty" />
+            <Custom Action="QtSetACEProcrunLogFiles" After="QtSetACEProcrunLogOwner" />
+            <Custom Action="QtSetACEProcrunLogDirs" After="QtSetACEProcrunLogFiles" />
         </InstallExecuteSequence>
 
-    </Fragment>
+    
+            <Component Id="SaveUserInfo" Guid="{E1E006C0-37D4-438B-97D0-64E1A089DCE8}" Directory="TARGETDIR" Bitness="always32">
+                <RegistryValue Id="targetRegShibUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydUser" Value="[JETTYD_USER]" Type="string" />
+                <RegistryValue Id="targetRegShibDomain" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="JettydDomain" Value="[JETTYD_DOMAIN]" Type="string" />
+                <RegistryValue Id="targetRegInstallShibUser" Root="HKLM" Key="SOFTWARE\Shibboleth\IdP" Name="InstallJettydUser" Value="[INSTALL_JETTYD_USER]" Type="string" />
+            </Component>
+        </Fragment>
 </Wix>

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list