Dynamic Installer Requirements -
This feature was introduced Introduced in IzPack 5.0.The main goal was , the <
dynamicinstallerrequirements> element is used to enhance the "classic" installer requirement of IzPack, which has been checked checking that IzPack does at the early beginning of an installation process to stop it, . This stops the installation unless a certain condition is met.
With this enhancementthe dynamicinstallerrequirements element, you will be able to can check a certain set of installer requirements conditions on each panel change, using a panel data validator for dynamic installer requirements.
to check if the required conditions are met.
<dynamicinstallerrequirements> <installerrequirement severity="ERROR" condition="this.condition.must.not.happen" messageid="this.condition.must.not.happen.translation.id"/> <installerrequirement severity="ERROR" condition="this.condition.may.happen" messageid="this.condition.may.happen.translation.id"/> ... </dynamicinstallerrequirements>
The installer requirement is actively checked on changing from each panel the DynamicInstallerRequirementValidator is assigned to.
If a condition applies, a messagebox is shown with the appropriate content from translation. Depending on the value of severity attribute the installation might be continued or is aborted:
The messagebox is shown and the installation aborts.
The messagebox is shown and the installation can continue after the OK button is pressed.
A more detailed example:
<condition type="variable" id="isNew"> <name>previous.version</name> <value>XX.XX.XX</value> </condition> <condition type="not" id="isUpgrade"> <condition type="ref" refid="isNew"/> </condition> ... <dynamicinstallerrequirements> <installerrequirement condition="isUpgrade" severity="warningWARNING" messageid="not.an.upgrade.warning.message"/> </dynamicinstallerrequirements> ... <panels> <panel classname="HelloPanel"/> <panel classname="TargetPanel"> <validator classname="DynamicInstallerRequirementValidator"/> </panel> <panel classname="PacksPanel"/> <panel classname="InstallPanel"/> <panel classname="FinishPanel"/> </panels>
Each On each panel the with a DynamicInstallerRequirementValidator is assigned to will be evaluated according to the requirements given as nested elements in
<installerrequirement> - Attributes
The severity the validator should apply in case of the condition gets true.
Possible values: "WARNING" | "ERROR"
|A valid condition ID defined within the <conditions/> element.||none||yes|
|A valid message ID from the appropriate translation file. If it can't be found the mentioned ID itself is displayed instead of the translated text.||none||yes|
Installer Expiration -
In addition to <
dynamicinstallerrequirements>, the entire installer can easily expire on a specified date. This is configured with the expiresdate info element.
<info> ... <!-- Make the installer expire --> <expiresdate>2016-06-29</expiresdate> ... </info>
The value of expiresdate is a date formatted as "YYYY-MM-DD". If expiresdate is not specified, the installer will not expire. If expiresdate is specified incorrectly, installation compilation will fail with a relevant message. If expiresdate is correctly specified and the system date is on or later than the specified date, the installer will expire with a brief message.