The
...
<packs> Element
Packs in IzPack are bundles of files grouped under a certain package ID. Each file or set of files in a pack can be given certain attributes, which tell the compiler
...
which might embed a couple of possible nested elements describing the pack.
<pack>
Attributes
Attribute | Usage |
---|---|
id | unique id for the pack to be used for internationalization via packsLang.xml file |
|
the |
user-friendly name that will be displayed during the installation |
|
yes
or no
and specifies whether the pack must be installed ( | |
| optional. Lets you make the pack targeted to a specific operating system, |
see OS Restrictions. | |
| optional. Lets you choose whether the pack is selected for installation by default or not. Possible values are yes and no. A pack which is not preselected needs to be explicitly selected by the user during installation to get installed |
|
optional. Indicates that the files are not located in the installer Jar. The possible values are true or false, the default being false. |
For example, your application could be distributed on a CD so that the users could run it directly from |
the CD. In order to install the software locally without duplicating the files in a jar, you can set |
the CD rather than from the installer jar. Please make sure that your relative |
file paths are correct! |
id
this attribute is used to give a unique id to the pack to be used for internationalization via packsLang.xml file
packImgId
When using | |
| optional. reference to a resource that defines the pack's image for the ImgPacksPanel. The resource should be defined in the <resources> element of the installation XML using the same value for the |
|
optional. ID of a condition which has to be |
fulfilled to |
hidden
enable this package to be selected by the user. If the condition evaluates to false the package will be "greyed out" in the PacksPanel user view. The condition interacts with required in the following way:
Notice: if a package condition evaluates to false but it is marked | |||||||||
| optional. takes true or false and specifies whether the pack shall be shown in the packs panel. The size of a hidden pack will be used to calculate the required space, but the pack itself won't be shown. A hidden pack can be preselected or selected conditionally. For the latter, you have to specify a | ||||||||
size | optional. Specifies the size of the pack, in bytes. If not specified, the size will default to the sum of all file lengths in the pack. Since 5.0 | ||||||||
installGroups | optional. A comma separated list of groups, see InstallationGroupPanel for using them. | ||||||||
uninstall | optional. If "true ", the pack gets into the uninstaller's list of files to be uninstalled. This attribute has effect just in case of <uninstaller write="true"/> . Default: true |
Nested Elements
<singlefile>
- Adding/renaming a Single Pack File
See Pack SingleFile Adding or renaming a single file for more details.
<file>
- Adding a Set Of Files
See Pack File Adding or unpacking a single file to a target directory for more details.
<fileset>
- Adding a Set Of Files With Filtering
See Pack Fileset Adding a set of files for more details.
<description>
- Adding a Description
...
<depends>
- Defining Dependencies
This can be used to make specify that this pack selectable only is to be installed evaluated for installation only if some other pack is selected to be installed. If the dependency is not going to be installed based on condition, then this pack can not be installed.The pack can depend on more than one by specifying more than one <depends>
elements. Circular dependencies are not supported and the compiler reports will be detected and reported as an error if one occursis found.
This tag takes the following attribute:
| The name of the pack that this one depends on |
<updatecheck>
- Cleaning Up After Updates
This feature can update an already installed package, therefore removing superfluous files after an installation.
Each pack can now specify an <updatecheck>
tag. Includes and excludes can be defined as filesets, but no file name mappers can be used. If no include or exclude pattern is given all files are deleted in $INSTALL_Path on the target system, which were not part of the setup.
Be careful with this facility to not delete 3rd-party files coming from other installations, for instance plugins to a base application.
Example::
...
<updatecheck>
<include name="lib/**" />
<exclude name="config/local/** />
</updatecheck>
$INSTALL_PATH
is treated as the base path for include/exclude patterns with relative paths.
<parsable>
- Mark Text Files For Parsing / Substituting Variables
Pack files marked <parsable>
are parsed after copying them to the target system and substitute IzPack variables. Those variables can be defined in a syntax according to their file format, the default for plain files is ${<variable_name>} or $variable_name.
Files must be first added to the pack using <singlefile>, <file> or <fileset> before they can be marked parsable.
Attributes
Attribute | Description | Required | Values |
---|---|---|---|
| the file to parse, could be something like | yes |
|
| Specifies the text file type. | no |
|
| The file encoding | no | A valid Java encoding string |
| Limits this action on a particular OS, works like for | no |
|
| Limits this action on a particular condition with the specified ID which has to be fulfilled | no |
|
Nested Elements
- <os> - restrict parsing depending on the target operating system, see the OS Restriction element
<executable>
- mark file as executable and optionally execute it
The <executable>
tag is a very useful thing if you need to execute something during the installation process. It can also be used to set the executable flag on Unix-like systems.
Attributes
Attribute | Description | Required | Values |
---|---|---|---|
| the file to run, could be something like | yes | A previously added pack file path |
|
| no | "bin" | "jar" |
| If the executable is a jar file, this is the class to run for a Java program | no | A valid Java class within the jar file |
| Specifies at which stage when to launch the executable:
| no | "never" | "postinstall" | "uninstall" |
| specifies what to do when an error occurs:
| no | "ask" | "abort" | "warn" | "ignore" |
| specifies the operating system, works like for | no |
|
| Whether the file will be kept after execution | no | "true" | "false" |
| ID of a condition which has to be fulfilled to execute this file | no | A valid condition ID |
Nested Elements
- <os> - restrict parsing depending on the target operating system, see the OS Restriction element
- <args>
Pass one or more arguments with nested <arg> tags (one<arg>
tag per argument) to the executable
Attributes: value - the argument value
Example:
<args><arg value="-version"/></args>
Slashes are handled special (see attribute targetfile of tag<parsable>.
<additionaldata>
- Adding Customizing Data
This tag can also be specified in order to pass additional data related to a file tag for customizing.
Attribute | Description |
---|---|
| key to identify the data |
| value which can be used by a custom action |
<onSelect>
- Select/Deselect a pack when this pack is selected
<onDeselect>
- Select/Deselect a pack when this pack is deselected
Gives you the ability to select or deselect other packs upon selection or deselection of this pack.
Allows for flexible pack management.
These tags take may take the following attributes:
| Required. |
condition | Optional. |
<parsable>
- mark text files for variable replacement
See Marking files for variable replacement for more details.
<executable>
- mark files for execution
See Marking files for execution for more details.
<updatecheck>
- Cleaning up on updates
See Cleaning up unwanted files after updates for details.
<refpack>
The <refpack>
takes only one attribute file
, which contains the relative path (from the installation compiler) to an externally defined packs-definition. This external packs definition is a regular IzPack installation XML. However the only elements that are used from that XML file are the <packs> and the <resources> elements.
This enables a model in which a single developer is responsible for maintaining the packs and resources (e.g. separate packsLang.xml_xyz files providing internationalization; see Internationalization of the PacksPanel) related to the development-package assigned to him. The main install XML references these xml-files to avoid synchronization efforts between the central installation XML and the developer-maintained installer XMLs.
Attributes
Attribute | Description |
---|---|
| Relative path |
at compile-time to an externally defined packs-definition |
<refpackset>
The <refpackset>
tag can be used in situations were there is no predefined set of <refpack>
files, but a given directory should be scanned for <refpack>
files to be included instead. This element takes the following parameters:
Attribute | Description |
---|---|
| Relative base directory |
at compile-time for the refpackset | |
| Pattern of files in |
will be included |
Example:
Code Block |
---|
<refpackset dir="" includes="**/refpack.xml" /> |
...
In order to provide internationalization for the PacksPanel, so that your users can be presented with a different name and description for each language you support, you have to create a file named packsLang.xml_xyz where xyz is the ISO3 code of the language in lowercase. Please be aware that case is significant. This file has to be inserted in the resources section of `` install.xml`` with xml with the id and src attributes set at to the name of the file. The format of these files is identical with to the distribution langpack files located at `` $IZPACK_HOME/bin/langpacks/installer``installer. For the name of the panel you just use the pack id as the txt part of text id. For the description you use the pack id suffixed with .description.
...
The packsLang.xml_eng file:
Code Block | ||||
---|---|---|---|---|
| ||||
<langpack><izpack:langpack version="5.0" xmlns:izpack="http://izpack.org/schema/langpack" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://izpack.org/schema/langpack http://izpack.org/schema/5.0/izpack-langpack-5.0.xsd"> <str id="myApplication" txt="Main Application"/> <str id="myApplication.description" txt="A description of my main application"/> </izpack:langpack> |
Example
Code Block | ||
---|---|---|
| ||
<pack name="Core files" required="yes" id="pack.core" condition="Install">
<description>Core files</description>
<fileset dir="@{staging.dir}" override="true">
<exclude name="*.zip" />
<exclude name="conf/*.properties" />
<exclude name="conf/*.xml" />
</fileset>
<fileset dir="@{staging.dir}/config_files" targetdir="${INSTALL_PATH}/conf" override="true" overrideRenameTo="*.configbak">
<include name="*.properties" />
<include name="*.xml" />
<exclude name="special.xml" />
</fileset>
<parsable encoding="UTF-8">
<fileset targetdir="${INSTALL_PATH}/conf">
<include name="wrapper.conf" />
</fileset>
</parsable>
<parsable>
<fileset>
<include name="**/*.bat" />
<include name="**/*.cmd" />
</fileset>
</parsable>
<parsable type="shell">
<fileset>
<include name="**/*.sh" />
</fileset>
</parsable>
<executable>
<fileset>
<include name="**/*.sh" />
</fileset>
</executable>
</pack> |
Note: Previously dir might have appeared as an attribute to <fileset> nested in <executable> or <parsable>. This is no longer supported.