We need you!

Icon

The IzPack documentation needs work, and you are invited to edit it!

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Dynamic Installer Requirements - <dynamicinstallerrequirements>

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.

Example:

...

to check if the required conditions are met.

Code Block
titleCommon Example
languagehtml/xml
<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:

  • "ERROR"
    The messagebox is shown and the installation aborts.
  • "WARNING"
    The messagebox is shown and the installation can continue after the OK button is pressed.

A more detailed example:

Code Block
languagehtml/xml
<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 <dynamicinstallerrequirements>.

installerrequirement attributes:

...

<installerrequirement> - Attributes

AttributeDescriptionDefaultRequired
severity
Note

Please see the note in the code above about severity vs status.

The severity the validator should apply in case of the condition gets true.

Possible values: "WARNING" | "ERROR"

  •  "WARNING"
    Shows a warning message but does not abort

...

  • .
  • "

...

  • ERROR"

...


  • Shows a message and aborts the installation

...

  • .
noneyes
condition
A valid condition ID defined within the <conditions/> element.noneyes
messageid
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.noneyes