- Generally, a configurable permits automatic patching and manual definition.
- Automatic patching involves a source ("from") and a destination ("to"). Attributes will generally exist to fine-tune the patching behaviour, e.g. to allow old entries and/or values to be preserved or discarded.
- Manual definition involves a destination ("to") and explicit settings declared in the XML spec file as nested elements.
- Configurable types should allow the specification of a target destination, where the new configuration will ultimately be written. This allows the original configuration files and artifacts to be backed up and thus preserved unmodified, e.g. for automating rollback. Note that ConfigurationInstallerListener does not currently have built-in support for automated rollback or uninstallation.
- Manual definitions a configurable type should include support for deleting named config entries.
- Where possible, configurable types allow entry values to be treated as numbers, dates, etc, to allow addition and subtraction operations for manual definitions.
- A configurable type may support bulk operations, e.g. patching all config files in a directory from a fileset, as well as single-operation "to"-"from"-"target" actions.
- All configurable types should be capable of conditional execution using the
conditionattribute (see IzPack Conditions).