Adding a set of files

The <fileset> element

The <fileset> tag is a nested element to the <pack> element and allows files to be added to that pack by selecting them similar like in an Apache Ant fileset.

Attributes

Attribute

Description

Required

Values
(Default)

dir

A base directory for the fileset (relative paths are treaten against the compiler base directory)

yes


file

A single file to copy, can be relative to the directory specified in dir. If not given, the whole directory dir is recursively included, filtered by the include and exclude expressions below.

no


targetdir

the destination path, works like for <file>

no

("${INSTALL_PATH}")

os

specifies the operating system, works like for <file>

no

"unix" | "windows" | "mac"

override

Whether to overwrite existing files.
Use asktrue or askfalse if the user should be interactively asked what to do and supply default value for non-interactive use. Another possible value is update. It means that the new file is only installed if it's modification time is newer than the modification time of the already existing file (note that this is not a reliable mechanism for updates - you cannot detect whether a file was altered after installation this way.)

no

"true" | "false" | "asktrue" | "askfalse" | "update"
("update")

overrideRenameTo

Globmapper to rename a conflicting file to. This works similar like the <globmapper> in File Name Mappers, whereby the mapper's from attribute is set to "" and the to attribute exactly to the value given here.
Example "*.bak" will rename the target file by appending the suffix .bak before overwriting it. The override attribute must be set "true" to activate this feature. 

Since IzPack 5.0

no

String - valid globmapper target expression

blockable

For Windows only, ignored on non-Windows systems: 
Defines whether and how blocked target files on Windows should be handled. This might result in pending file operations which require a system reboot.

Pending file operations are introduced during the installation in two phases:

  1. The blockable attribute marks files pending to be replaced after a system reboot if they are blocked. Blocked files are recognized during physically installing them.
  2. How and whether the system should be really rebooted directly from the installer in case there are such pending file operations at the end of the installation can be controlled by the <rebootaction> tag nested to <info>.

Note:
Using blockable does not necessarily force you to limit such files on Windows systems. For multi-platform installations there is a compiler warning shown that blockable will be ignored on non-Windows systems.
The native library WinSetupAPI must be explicitely included using this feature.

Possible values:

  • none
    No recognition of blocked target files will be done at all, this is the default behavior of previous IzPack versions.
  • auto
    Automatic recognition of a blocked target file by the operating system, resulting in leaving a pending file operation to be finished after system reboot. Using auto this applies only for files that are really blocked, the other files are copied normally, which can result in mixed, old and new target files at the end of the installation, unless the system won't be really rebooted.
  • force
    Forces target file to be always assumed a blocked, resulting in leaving a pending file operation to be finished after system reboot. Using force this applies for each file, regardless whether it is really blocked during installation. This makes sense if you don't want to mix files old and new files at the end of the installation to not disturbing a running process, but having the complete set of target files installed after system reboot.


Since IzPack 5.0

no

"none" | "auto" | "force"
("none")

includes

comma- or space-separated list of patterns of files that must be included; all files are included when omitted. This is an alternative for multiple include tags.



excludes

comma- or space-separated list of patterns of files that must be excluded; no files (except default excludes) are excluded when omitted. This is an alternative for multiple exclude tags.



condition

an id of a condition which has to be fulfilled to install the files in this fileset



casesensitive

Whether to treat the file name case-sensitive.

no

"true" | "false"
("true")

defaultExcludes

Whether to use global default excludes.
Implicit default exclude patterns are typically:

*/~{}
*/##
*/.#
*/%%
*/._
**/CVS
*/CVS/*
**/.cvsignore
**/SCCS
*/SCCS/*
**/vssver.scc
**/.svn
*/.svn/*
**/.DS_Store

Since IzPack 5.0

no

"true" | "false"
("true")

followSymLinks

Whether to follow symbolic links on target systems which support them.
Since IzPack 5.0

no

"true" | "false"
("true")

Nested Elements

The following nested elements can be used in the <fileset> tag:

<os>

Limit the installation of this file to conditions depending on the target OS, see OS Restrictions.

<additionaldata>

This tag can also be specified in order to pass additional data related to a file tag for customizing.

Attribute

Description

key

key to identify the data

value

value which can be used by a custom action

;<additionaldata> is an element which may provide additional information as key-value pairs to certain custom actions. The particular key-value pairs you might use depend on the particular custom action.

 Currently, there are two built-in custom actions consuming such data, ChmodCompilerListener and ChmodInstallerListener, where relevant keys are

  • permission.dir,
  • permission.file

with integer values interpreted as permissions like in the Unix chmod:

If value begins with "0" -> octal number,

otherwise is is a decimal number representing some permission.

These permissions are applied to the appropriate files either during the compilation of the package or while installing them later, depending on whether the consumer implements a CompilerListener or InstallerListener.

<include>

Explicitely include files by pattern, similar like Ant fileset patterns. For more information see the FileSet core type.
Note: There is currently no file name mapper support in pack filesets.

<exclude>

Explicitely exclude files by pattern, similar like Ant fileset patterns. For more information see the FileSet core type.

Note: There is currently no file name mapper support in pack filesets.

Fileset Selectors

There can be used all fileset selectors defined in FileSet as nested elements.

<pack200>

The <pack200> element adds Java bytecode compression to all files in this fileset.

Make sure to apply it only to JAR files or similar files containing Java bytecode.

See Compressing pack files for more information how to cutomize this feature.

Since: IzPack 5.1