Documentation for ABT - Allan's build tool


This is the documentation page for the ABT - Allan's build tool.

General

The ABT - Allan's build tool is a tool that can compile / build Java source code files into a desktop application with many options.
All these options / properties have well considered default towards a desktop application, but can be changed to make ABT build other types of applications or libraries.
This tool's goal is to make it as simple as possible to compile Java and make it as easy as possible to distribute it. See KISS.
To see how easy it is to get started using this tool see the getting started page.

Philosophy

The application should run in the IDE (/Eclipse) as it does deployed / installed with a very minimal number of special cases, to make it easy to test and find bugs early.
The primary thing to handle is where files / directories are located and whether they are writable or not:
ABT will try to only build what needs to build to improve performance. This is done using file (or directory) last modified matched with other file(s) (or directories) last modified or the system clock.
It is therefore important these are correct and not modified in unexpected ways.
The unit test source code will also only be compiled if needed, but the unit test code is always run.

Definitions

The tool builds ABT modules which is defined as one or more Java source code file(s) that can be compiled into one jar file.
A ABT Module is specified in a file (with a property file like format) called the ABT Module Properties File.
General properties can be specified in the ABT Configuration File, which has a similar format as the ABT Module Properties File.
The module home directory is defined as the directory where the ABT Module Properties File is located. All (must) file or path properties are relative to this location.
When the term "deploy" is used it will (typically) mean copy a file(s) to a destination. Any file(s) with the same name will be overwritten without warning. All other files will remain untouched.
    All other file copying will (typically) delete all existing files in the destination directory (and all subdirectories) before any new files are copied.
    Some file copying uses the safe delete feature. See the Package.Desktop.ValidDeleteExtension property for details.
The download site is defined a first the value of the Package.DownloadSite.HtmlFile property.

Tips and tricks

Don't know the name of a property: Write a wrong property name and run ABT. It will list all valid properties in the exception.
Don't know valid values for a property: Write a wrong value and run ABT. It will list all valid values for that property (Works for some properties).
If an abt.property.ConfigurationException is thrown, then you configured something wrong.
If an RuntimeException is thrown, then I (the developer of ABT) have made a code error.
See examples of use of this tool in the various other projects on this site, as they are all build using ABT.
    Some of these projects are configured in a unique way to build.

Command line parameters

Command line syntax:
ABT [ Release ] [ <Task> ] [ <ABT Module Property File file name> | ( All [ <All search directory> ] ) ]

Task must be one of the ones listed below.
    If task is not specified the task is calculate using the default task table below.
ABT Module Property File file name must be an existing file in the ABT Module Property File format.
All search directory can be any existing directory (or subdirectories) containing ABT Module Property Files (.abt).
    Files are sorted alphabetically on full file name and are processed in that order.
    Directories can be exclude using the ExcludePathInAllSearch configuration file property. See below.
If the "Release" parameter is used, the version number will be updated as a release. See VersionStrategy property below.
The parameters can be written in any order, but the All search directory (If specified) must be specified after the "All" parameter.

If either ABT Module Property File file name nor All (with or without All search directory) are specified, then the current directory is search for ABT Module Property Files (.abt). If exactly one file is found it is used, otherwise an exception is thrown.

Task table

TaskDepends onSubtaskDependency type
Resolve dependencies
(Can't be invoked from
the command line)
-Resolve module dependencies
Check jar dependencies
-
CompileResolve dependenciesCompile module source
Create Jar
Create source zip
Create configuration backup
Deploy output
COMPILE
JAR
JAR_ABSOLUTE_PATH
Unit_testCompileCompile unit test source
Run unit test
UNIT_TEST
JavadocResolve dependenciesCreate javadoc
Deploy javadoc
JAVADOC
BuildUnit_test
Javadoc
--
ReleaseBuild(Version as release)-
RunBuildRun code-
Package <Name*>BuildPackage specificPackage specific
Package DesktopBuildCopy files
Create script files
Create installation files
Zip files
Deploy zip
Create installer jar
Deploy installer jar
Package.Desktop
Package DownloadSite[Package.Desktop][Package.Desktop] / Create zip
Create and copy files
Package.DownloadSite
Tasks are executed as shown in the table above from top to bottom. Each task is executed depth-first e.g. dependencies first.
*Package name may be "Default" to execute the default packaging. See DefaultPackageType property below. It may not be "None".

Default task table

Number of installed packagingDefault task
0Build
1Installed packaging
>1 (Default not set)Build
>1 (Default set)Default packaging

Dependency type

The dependency type controls where a module or jar dependency is used. If a dependency for example only has the COMPILE dependency type, the code in the dependency will only be available at compile time e.g. usage will compile, but it will not be a dependency in the jar, causing it not to be available at runtime.
A dependency that only has the UNIT_TEST dependency type, will only be available for "Compile unit test source" and "Run unit test" (See table above), but it will not be included in the installed application.

Properties

Properties are used to control / configure every thing in ABT. Properties are specified in the following format:
    <Property name> <Operator> <Property value>
For example:
    SourcePath=src\
    ModuleDependency=AR Common, auto
    ModuleDependency+=ABT - Update Checker, auto
Property name must be a valid property name. See tables below.
Operator must be "=" or "+=". See property types below for details.
Property value must be a valid property value for the property named Property name. See table below.

String substitution

All properties (including the StringSubstitution property it self) can be string substituted.
First a string substitution must be defined using the following format:
    StringSubstitution <Operator> <String substitution name> ; <String substitution value>
For example:
    StringSubstitution=JUnit;/usr/share/java/junit.jar;UNIT_TEST
Operator see above.
String substitution name can be any name. May not contain ';' and must be unique.
    It may not be one of the following reserved words: MODULE.HOME, MODULE.NAME, MODULE.NAME.PRETTY, TO_DAY, NOW and more. See the General replace strings table for a full list.
String substitution value can be any string. May contain ';'.

Then it can be used anywhere in a property value using the following format:
    ${<String substitution name>}
For example:
    JarDependency=${JUnit}
String substitution name must be a defined string substitution name.

Replace strings

ABT also supports replace strings, that is similar to String substitution above in use, but they a are little different.
They are defined by ABT, they can't be changed, they contain a dynamic value and they can't be used in all properties.
Some can be used in text / HTML file(s).
See the Replace string tables below for details.

Property types

All properties have a property type.
The basic types are The directory separator(s) ('/' and '\\') in values of properties of type "path" or "file" will be replaced with current operating system's directory separator (File.separator), to make the build cross-platform.
Values are also converted to a absolute path / file with full path, based of the module home directory. Unless the property is sub typed with "Relative". See table below.
The property types "path" or "file" comes in a relative variant, where the path or file is not converted to an absolute path.
All (most) property types comes is a list variant where the same property may be specified multiple types. Non list type properties may only be specified up till one time.
List / multiple values are specified using the "+=" operator. For example:
ModuleDependency=AR Common, auto// The += operator may be used here
ModuleDependency+=ABT - Update Checker, auto// The += operator must be used here
All property types
Property typeDescription
StringAny string
PathA path to a directory. Is converted to a absolute path based of module home directory.
Relative pathA path to a directory. Is NOT converted to a absolute path based of module home directory.
FileThe name of a file. Is converted to a absolute file name with full path based of module home directory.
Relative fileThe name of a file. Is NOT converted to a absolute file name with full path based of module home directory.
BooleanThe value "true" or "false" (Case sensitive)
LongAny integer. Range may be specified for the property.
String listA list of strings. Same as the "String" property type just as a list.
Path listSame as the "Path" property type just as a list
Relative path listSame as the "Relative path" property type just as a list
File listSame as the "File" property type just as a list
Relative file listSame as the "Relative file" property type just as a list

Properties for task Compile

Properties for subtask Compile module source

PropertyDescription
Name:
    SourcePath
Format:
    SourcePath=<Source path> [ ; ( INCLUDE: | EXCLUDE: ) <Filter> ] ...
Examples:
    SourcePath=src\
    SourcePath+=ABT_API_src\
    SourcePath=src;EXCLUDE:*FamilyTreeUnitTest.java
Property type:
    String list, Required
Usage:
    ABT Module Properties File only
Specifies the source file(s) to compile.
This property is required and can only be specified in the ABT Module Properties File.
The Source path is modified as a property of type "path". See above.
The Source path is search for Java files (.java). For each file found all filters are check from left to right.
If a file matches a filter the file is either included ("INCLUDE:") or excluded ("EXCLUDE:") and the check of filters are stop (for this file).
If the end of the filter list is reached (or no filters are specified) the file is included.
At least one file must be included from each Source path.
All Filters must match at least one file.
Filters must not be include only. If filter(s) are specified at least one must be exclude.
The * matches any string.
The ? matches any character.
An empty Filter matches any file.
If Filter starts with a ~ the remaining part of the filter is matched using regular expression.
Name:
    JdkHomeBinPath
Format:
    JdkHomeBinPath=<JDK bin path>;<JDK version>
Examples:
    JdkHomeBinPath=/usr/lib/jvm/java-11-openjdk-amd64/bin/;1.11
    JdkHomeBinPath+=/usr/lib/jvm/java-1.17.0-openjdk-amd64/bin/;1.17
Property type:
    String list
Usage:
    ABT Configuration File only
Specifies the location and version of installed JDKs.
This property can only be specified in the ABT Configuration File.
The JDK bin path specifies the location of Java compiler executable. E.g. the bin directory of the JDK.
The JDK version specifies the version of the JDK.
This version number is used to identify / select JDK. See the JdkVersion property.
If this property is not specified the installed JDK(s) will be autodetected in a platform dependent way (if implemented).
Name:
    JdkVersion
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies which JDK version to use.
The value must be one the ones specified (or autodetected) by the JdkHomeBinPath property (See above).
Is required if more than one JDK are specified (or autodetected) by the JdkHomeBinPath. Otherwise optional.
Name:
    TargetVersion
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the compile target version.
The value must valid for the -target option for the Java compiler.
If omitted the compiler default is used.
Name:
    SourceVersion
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the compile source version.
The value must valid for the -source option for the Java compiler.
If omitted the compiler default is used.
Note: This is not the same as JdkVersion. This value must be lower then (or equals to) the JdkVersion.
Name:
    SourceEncoding
Format:
    SourceEncoding=<Source encoding>
Examples:
    SourceEncoding=UTF-8
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the encoding of the source files.
The value must valid for the -encoding option for the Java compiler.
If omitted the compiler default is used.

Properties for dependencies control

PropertyDescription
Name:
    JarDependency
Format:
    JarDependency=<Jar file name> [ ; <Dependency type> ] [ ; <Dependency type> ] ...
Examples:
    JarDependency=ABT - Update Checker-1.0.4/abt---update-checker-1.0.4.jar
    JarDependency+=ABT - Update Checker-1.0.4/ar-common-1.1.7.jar
    JarDependency+=/usr/share/java/junit.jar;UNIT_TEST
    JarDependency+=/usr/share/java/junit.jar;UNIT_TEST;JAVADOC
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the jar dependencies for this module, and in which task(s) the jar dependencies are included.
The Jar file name must be an existing file.
    Unless the Dependency type JAR_ABSOLUTE_PATH is used. See below.
The Jar file name is modified as a property of type "path". See above.
    Unless the Dependency type JAR_ABSOLUTE_PATH is used.
A Jar file name may only be used by one jar dependency.
The Dependency type specifies in which task(s) a jar dependency is included.
The Dependency type must be one of COMPILE, JAR, JAR_ABSOLUTE_PATH, UNIT_TEST, JAVADOC (case sensitive)
    or one installed by a packaging (Must start with "Package."). See below.
A Dependency type may only be set once. JAR and JAR_ABSOLUTE_PATH may not be set on the same jar dependency.
If a jar dependency has Dependency type COMPILE it will be included in the class path when compiling module source.
If a jar dependency has Dependency type JAR it will be included in the class path in jar file's manifest file.
    The Jar file name is modified as a property of type "path".
If a jar dependency has Dependency type JAR_ABSOLUTE_PATH it will be included in the class path in jar file's manifest file.
    The Jar file name is not modified.
If a jar dependency has Dependency type UNIT_TEST it will be included in the class path when compiling unit source,
    and on the class path when the unit test is run.
If a jar dependency has Dependency type JAVADOC it will be included in the class path when the Javadoc is generated.
If a jar dependency has a packaging Dependency type it will be included in that packaging in a packing specific way.
    See the specific packaging for details.
See Task table above for an overview.
If no Dependency type's are set, it will default to all (Except JAR_ABSOLUTE_PATH).
    If the module doesn't have a unit test the Dependency type UNIT_TEST will not be set as default.
    If the module doesn't generate Javadoc (JavadocGenerate=false or not set. See below) the Dependency type JAVADOC will not be set as default.
Name:
    ModuleDependency
Format:
    ModuleDependency=<Module name>, <Module version> [ ; <Dependency type> ] [ ; <Dependency type> ] ...
Examples:
    ModuleDependency=AR Common, auto
    ModuleDependency=ABT - Update Checker, 1.0.auto
    ModuleDependency+=ABT, 1.0.18;COMPILE
    ModuleDependency+=SWS, auto;COMPILE;Package.DownloadSite
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the module dependencies for this module, and in which task(s) the module dependencies are included.
The Module name must be an existing module in the repository. See the Repository property below.
A Module name may only be used by one module dependency.
The Module version must match version of the dependent module.
    The word "auto" will match any version. It can be used as postfix or alone without any prefix. See examples.
The Dependency type specifies in which task(s) a module dependency is included.
The Dependency type is specified in the same way and with the same rules as Dependency type of the JarDependency property.
    With one exception: The dependency type JAR_ABSOLUTE_PATH may not be used.
    See above for details.
Name:
    Repository
Format:
    Repository=<ABT Module Property File Name>
Examples:
    Repository=/home/allan/Mit/Java/AR Common/AR Common/AR Common.abt
    Repository+=/home/allan/Mit/Java/ABT/ABT - Update Checker/ABT - Update Checker.abt
Property type:
    String list
Usage:
    ABT Configuration File only
Specifies the location of ABT Module Property File(s) than can used as module dependencies.
The ABT Module Property File Name must be an existing ABT Module Property File.
The existence of ABT Module Property Files in the repository is first validated when a module with a module dependency is processed.
The ABT Module Property File is first validated when it is directly process or indirectly by a module with a module dependency on it is processed.
Name:
    JarResource
Format:
    JarResource=<Resource name>
Examples:
    JarResource+=/home/allan/Mit/Java/ABT/ABT - Test/data4/data/JarResource.txt
    JarResource+=data4/data/JarResource.txt
    JarResource+=|data4/data/JarResource.txt
    JarResource+=data4/|data/JarResource.txt
    JarResource+=data4/data/|JarResource.txt
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the jar resources to included in / place inside the jar file.
Resource name may be a file or a directory, but it must exist.
If a directory is specified the entire content of the directory and all subdirectories will be included in the jar file.
If the Resource name contains a '|', is will be used to separate "resource path" and "resource name".
    Only one '|' may be used, and it must be placed after a path separator ('/' or '\').
    The "resource name" will be the name of the file(s) in the jar.
    For example:
        JarResource+=data4/|data/JarResource.txt
    will add the file located at (Relative the module home directory):
        data4/data/JarResource.txt
    as the following file in the jar:
        data/JarResource.txt
If the Resource name doesn't contains a '|':
    and Resource name is a directory, then the content of the directory (and sub directories) are placed in the root of the jar file.
    and Resource name is a file in the module home directory or subdirectories, the file will be placed in the jar as it is placed in the module home directory.
    and Resource name is a file that is not in the module home directory or subdirectories, the file will be placed in root of the jar.
For resources placed outside / beside the jar file(s) see the Package.Desktop.ResourceFile and Package.Desktop.ResourcePath properties below.
For resources only used by the download site / module home page see the Package.DownloadSite.ResourceFile property below.
Name:
    JarDependencyJarFiles.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the jar dependency jar files deploy destination.
All the jar files that this module have a jar dependency on, will be copied the specified directory.
See JarFile.Deploy below.
Name:
    ModuleDependencyJarFiles.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the module dependency jar files deploy destination.
All the jar files that are generated from this module's module dependencies, will be copied the specified directory.
See JarFile.Deploy property below.
Name:
    ModuleDependencySourceZipFiles.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the module dependency source zip files deploy destination.
All the source zip files that are generated from this module's module dependencies, will be copied the specified directory.

Properties for version control

PropertyDescription
Name:
    VersionFileClassName
Format:
    VersionFileClassName=<Version file class name>
Examples:
    VersionFileClassName=abt.AbtVersion
    VersionFileClassName=familytree.data.FamilyTreeVersion
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the class name of the version file.
Version file class name must be a valid Java class name with full package name.
If the file is missing it is created in the value of VersionFileSourcePath (if set) See below. Directories will be created if missing.
    If VersionFileSourcePath is not set, the file is created in the first location set by SourcePath. See above.
If the file exists, it's version and build number are read.
    If version and/or build number is changed by ABT, the file is written back again.
        See AutoChangeVersion and AutoChangeBuildNumberWhenVersionFileIsNewest below.
    NOTE: If anything other that version and/or build number are changed by the developer in this file, it will be LOST!
Name:
    VersionFileSourcePath
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the location of the version file.
See VersionFileClassName above for details.
Name:
    VersionStrategy
Default value:
    abt.version.FourVersionLevelStrategy
Property type:
    String
Usage:
    ABT Configuration File only
Specifies the class that handles the version strategy.
The class must extend the abt.version.AbstractVersionStrategy class and exist on ABT's class path.
This class is be responsible for the calculation of the default / first version, if version is not set,
    and calculating the next version from the current version, if version is set.
This class is also responsible for calculating the version for a release version.
    This done when the "Release" option is used on the command line. See above.
Name:
    AutoChangeVersion
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the if version and build number should be changed, if the module needs to be compile.
If the version file is newer that all other source files in the module, the version will not be changed,
    as it is assumed that this change is done be the developer and that this should not be overruled.
    The build number might be changed. See AutoChangeBuildNumberWhenVersionFileIsNewest property below.
Name:
    AutoChangeBuildNumberWhenVersionFileIsNewest
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the if the build number should be incremented, when the version file is the newest source file.
If the version file is the newest source file, the version number will not be changed, but if this property is "true" the build number will.
See AutoChangeVersion for details.
Name:
    VersionFileVersionFieldName
Default value:
    VERSION
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the field name of the version number in the version file.
The value must be a valid Java identifier.
Name:
    VersionFileBuildNumberFieldName
Default value:
    BUILD
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the field name of the build number in the version file.
The value must be a valid Java identifier.

Properties for subtask Create Jar

PropertyDescription
Name:
    JarFileMainClass
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the main class in the jar file's manifest file.
The class must exist in the source location(s) for this module. See the SourcePath property above.
If this property is set the jar file will be executable.
    This will also cause the execute bit to be set on Linux.
Name:
    JarFileNamePrefix
Default value:
    <Module name>
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the prefix of the jar file name.
The value of this property will be used as a prefix for the jar file name if a version file is used. See VersionFileClassName property above.
    If no version file is used, the value of this property will be the full jar file name (Added the value of the JarFileExtension property. See below).
If not specified the value will default to module name.
Note: The value (specified or default) will be modified to comply with the jar file name standard: All lower case and spaces are replaced with '-'.
Name:
    JarFileExtension
Default value:
    .jar
Property type:
    String
Usage:
    ABT Configuration File only
Specifies the file name extension (including the dot '.') of the jar file compiled.
Name:
    JarFile.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the jar file (for this module) deploy destination.
For dependencies see JarDependencyJarFiles.Deploy and ModuleDependencyJarFiles.Deploy properties above.
Name:
    ManifestPostfix
Default value:
    -manifest-addition.txt
Property type:
    String
Usage:
    ABT Configuration File only
Specifies the name addition of the file created to contain the manifest file content used by Java jar tool.
Name:
    JarFilePremainClass
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Premain-Class" manifest field in manifest file in the jar file.
The class must exist in the source location(s) for this module. See the SourcePath property above.
Name:
    JarFileAgentClass
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Agent-Class" manifest field in manifest file in the jar file.
The class must exist in the source location(s) for this module. See the SourcePath property above.
Name:
    JarFileBootClassPath
Property type:
    Relative file list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Boot-Class-Path" manifest field in manifest file in the jar file.
This may only be set if the JarFilePremainClass or JarFileAgentClass property is set.
Name:
    JarFileAgentCanRedefineClasses
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Can-Redefine-Classes" manifest field in manifest file in the jar file.
Name:
    JarFileAgentCanRetransformClasses
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Can-Retransform-Classes" manifest field in manifest file in the jar file.
Name:
    JarFileAgentCanSetNativeMethodPrefix
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of the "Can-Set-Native-Method-Prefix" manifest field in manifest file in the jar file.

Miscellaneous properties for task Compile

PropertyDescription
Name:
    CreateSourceZip
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the source zip file should be created.
The source zip will contain the source code from the source location(s) specified by the SourcePath property (See above) and the UnitTestSourcePath property (See below).
Name:
    SourceZipFileNamePostfix
Default value:
    -src
Property type:
    String
Usage:
    ABT Configuration File only
Specifies the source zip file name postfix.
Name:
    SourceZipFileExtension
Default value:
    .zip
Property type:
    String
Usage:
    ABT Configuration File only
Specifies the file extension (including the dot '.') of the source zip file.
Name:
    SourceZipFile.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the source zip file deploy destination.
Name:
    CreateBackupConfigurationFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the backup configuration file should be created.
The backup configuration file is a copy of the ABT Module Property File with lines added containing information about what the line above was expanded to.
    This is information like full file name (Path separators replaced), actually version (instead of "auto") and the result of string substitution (See above).
Name:
    CompileOutputPath.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the deploy destination of the compiled output of the source code in this module.
    This controls only source code output from source location(s) specified by the SourcePath property (See above).
    It doesn't control source code from the UnitTestSourcePath property (See below).

Properties for task Unit_test

PropertyDescription
Name:
    UnitTestSourcePath
Format:
    Same format as SourcePath. See above.
Examples:
    UnitTestSourcePath=src_2_unit_test\
    UnitTestSourcePath=src;INCLUDE:*FamilyTreeUnitTest.java;EXCLUDE:*
    UnitTestSourcePath=src;INCLUDE:sudoku\test*;EXCLUDE:
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the unit test source code files to compile.
The format and rules for this property are the same as for the SourcePath property. See above.
    Except that this property is not required.
If specified then one of the UnitTestMainClass or UnitTestTestCase properties must be specified. See below.
Note: This property specifies the source code that is only to be used in the unit test.
    This source code output will not be included in the jar file, running or installed application.
    The source code specified by the SourcePath property will be on the class path at compile and runtime of the unit test, and must not be respecified here.
Name:
    UnitTestMainClass
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the main class to run as a unit test.
The class must exist in the unit test source location(s) for this module. See the UnitTestSourcePath property above.
The class must contain a main method.
    The run of this main method in a separate process must return the exit code 0 (Zero) for the unit test to succeed.
    Otherwise the unit test will fail and ABT will exit.
If specified then the UnitTestSourcePath property must be specified. See above.
If specified then the UnitTestTestCase property must NOT be specified. See below.
Name:
    UnitTestTestCase
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Java test case class to run as a unit test.
The class must exist in the unit test source location(s) for this module. See the UnitTestSourcePath property above.
The class must contain a Java test case.
    The run of this Java test case class using junit.textui.TestRunner in a separate process must return the exit code 0 (Zero) for the unit test to succeed.
    Otherwise the unit test will fail and ABT will exit.
    The junit.textui.TestRunner class must be manually added be the developer.
        For example by this:
            JarDependency=/usr/share/java/junit.jar;UNIT_TEST
If specified then the UnitTestSourcePath property must be specified. See above.
If specified then the UnitTestMainClass property must NOT be specified. See above.

Properties for task Javadoc

PropertyDescription
Name:
    JavadocGenerate
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the Javadoc should be created.
Name:
    JavadocLogLevel
Default value:
    Normal
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc log level.
The value must be one of "Verbose", "Normal" or "Quiet".
If set to "Verbose" then the Javadoc tool is called with the command parameter "-verbose".
If set to "Quiet" then the Javadoc tool is called with the command parameter "-quiet".
If set to "Normal" then the Javadoc tool not is called with any command parameters related to logging, cause it to use it's default.
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocOutputPath.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc output deploy destination.
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocLinkSource
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the generated Javadoc should include the source code and links to it.
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocSourceTab
Property type:
    Long
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the size of a tab in unit of spaces in the Javadoc source code.
Must be in the range 1 to 32 (Both inclusive).
If not set the Javadoc tool not is called with the command line parameter "-sourcetab".
This property may only be specified if the JavadocLinkSource property is true. See above.
Name:
    JavadocWindowTitle
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc window title using the Javadoc tool command parameter "-windowtitle".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocDocTitle
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc doc title using the Javadoc tool command parameter "-doctitle".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocTop
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc top using the Javadoc tool command parameter "-top".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocHeader
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc header using the Javadoc tool command parameter "-header".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocFooter
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc footer using the Javadoc tool command parameter "-footer".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocBottom
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Javadoc bottom using the Javadoc tool command parameter "-bottom".
This property may only be specified if the JavadocGenerate property is true. See above.
Name:
    JavadocAdditionalParameter
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the additional parameter(s) for the Javadoc tool.
Each value of this property are "send" to the Javadoc tool as a separate command line parameter.
This property may only be specified if the JavadocGenerate property is true. See above.

Properties for task Package Desktop

The properties specified in the table below may only be used if the Package Desktop packaging (abt.packaging.desktop.PackageDesktop) is installed. See the PackagingClass property below.
PropertyDescription
Name:
    Package.Desktop.ApplicationType
Default value:
    Both
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the type of application to package as a desktop application.
The value must be one of "GUI", "TUI" or "Both".
If "GUI" is specified only a lunch / desktop icon without a console is generated.
If "TUI" is specified only a lunch / desktop icon with a console is generated.
If "Both" is specified a lunch / desktop icon with a console and one without are generated in the "menu" (Platform dependent).
    Only the one without a console is copied to the desktop as a desktop icon.
Name:
    Package.Desktop.ResourceFile
Property type:
    Relative file list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the resource file(s) to be included in the installer zip file.
The specified file(s) must exist.
These resource files will be place outside / beside jar file(s) for the application when installed or in stand-alone.
    For resources placed inside the jar file see the JarResource property above.
    For resources only used by the download site / module home page see the Package.DownloadSite.ResourceFile property below.
These resource files must be in the module home directory (or its subdirectories), as they are placed in the same relative location when installed or in stand-alone.
Name:
    Package.Desktop.ResourcePath
Property type:
    Relative path list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the path(s) to resource directories.
The directory specified by the path(s) must exist.
All file(s) from these directories (including all subdirectories in all levels) will be included as resource files. See above.
Name:
    Package.Desktop.BuildInstaller
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the GUI installer should be build.
If set to true the Package.Desktop.CompiledInstallerPath property must be set. See below.
    If Package.Desktop.CompiledInstallerPath is not set, it is not required to set this property to false.
If set to false only the zip file containing all the installation files is created.
Name:
    Package.Desktop.CompiledInstallerPath
Property type:
    Path
Usage:
    ABT Configuration File only
Specifies the path to the compiled GUI installer.
The specified the path must exist and contain the file downloaded from ABT - Installer project unzipped (Or equivalent).
Name:
    Package.Desktop.InstallerJarFileName
Default value:
    ${MODULE.NAME}/Package Desktop installer jar/Installer for ${MODULE.NAME_VERSION_VERSION}.jar
Property type:
    Relative file
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the GUI installer jar file.
The value is modified according to the rules described in the Temporary output path properties below.
Name:
    Package.Desktop.Windows.Icon
Property type:
    File
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Windows desktop and menu icon file name.
The file must exist and be in the Windows ICO file format.
Name:
    Package.Desktop.Linux.Icon
Property type:
    File
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Linux desktop and application list icon file name.
The file must exist and be in the Portable Network Graphic (PNG) file format (And maybe other formats).
Name:
    Package.Desktop.Mac.Icon
Property type:
    File
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Mac desktop and menu (maybe) icon file name.
The file must exist and be in the Apple Icon Image format (icns).
Name:
    Package.Desktop.Deploy.Packed
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the zip file deploy destination.
Note: This property may be set to the empty value.
Name:
    Package.Desktop.Deploy.Unpacked
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the deploy destination for all the files that goes into the zip file.
See Package.Desktop.Deploy.Prefix.Unpacked below for a prefixed version.
See Package.Desktop.Deploy.Packed for a zipped version.
Name:
    Package.Desktop.Deploy.Prefix.Unpacked
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the deploy destination for all the files that goes into the zip file.
The files will be copied into a sub directory named "<Module name> [ - <Version> ]" e.g. "ABT-1.0.18".
    If the module doesn't use a version file the "- <Version>" part is omitted.
Note: This property may be set to the empty value.
See Package.Desktop.Deploy.Unpacked above for a non-prefixed version.
See Package.Desktop.Deploy.Packed for a zipped version.
Name:
    Package.Desktop.Deploy.Unpacked.Echo
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the copying of files from the two properties above should be echoed.
See the Package.Desktop.Deploy.Unpacked and Package.Desktop.Deploy.Prefix.Unpacked properties.
Name:
    Package.Desktop.Deploy.Installer
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the GUI installer deploy destination.
Existing older / newer versions of the GUI installer are left untouched.
Note: This property may be set to the empty value.
See Package.Desktop.Deploy.Newest.Installer property below.
Name:
    Package.Desktop.Deploy.Newest.Installer
Property type:
    Path
Usage:
    ABT Configuration File only
Specifies the GUI installer deploy destination.
NOTE: Existing older / newer versions of the GUI installer are deleted!
See Package.Desktop.Deploy.Installer property above.
Name:
    Package.Desktop.LaunchAfterInstall
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the application is launched after the GUI installer has successfully installed the application.
It also controls the visibility of the launch menu in the GUI installer.
See the ABT - Installer project for details.
Name:
    Package.Desktop.HeapSize
Property type:
    Long
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the heap size for the application when run installed or stand-alone.
This sets the command line parameter "-Xmx" in the launch scripts. If not specified the command line parameter is not set.
The specified value is in megabytes (MB) and must be greater than 0.
Name:
    Package.Desktop.GenerateLaunchEchos
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to generate echo command lines in the launch scripts.
Name:
    Package.Desktop.Windows.GenerateInstallationVariablesEchos
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to generate installation variables echo command lines in the install script on Windows.
Name:
    Package.Desktop.AddOpens
Examples:
    Package.Desktop.AddOpens=java.desktop/sun.awt.X11=ALL-UNNAMED
    Package.Desktop.AddOpens+=java.base/java.lang=ALL-UNNAMED
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the Java Platform Module System (JPMS) command line parameter "--add-opens" when run installed or stand-alone.
The specified value(s) must be a valid "add-opens" parameter value.
All AddOpens values from all dependencies are added (except duplicates) to the launch scripts for this module.
NOTE: Currently only supported on Linux.
Name:
    Package.Desktop.Windows.AddPathHackFile
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to create a batch file on PATH on Windows.
The batch file is created in the "%USERPROFILE%\AppData\Local\Microsoft\WindowsApps\" directory, and named <Module name.bat>.
This hack makes it possible to start the application in a command prompt without specifying full path.
The uninstaller script will delete the batch file again.
See Package.Desktop.Linux.CreateSymlink for similar feature on Linux.
Specifies whether or not to create a symbolic link on Linux.
The symbolic link is created in the "/usr/bin/" directory, and named <Module name> in lower case with no extension.
The uninstaller script will delete the symbolic link again.
See Package.Desktop.Windows.AddPathHackFile for similar feature on Windows.
Name:
    Package.Desktop.DoNotifySendIfLaunchFailsOnWindows
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not failing to launch the application on Windows should cause a notification.
If the application returns a non zero exit code, a notification message box is shown on Windows.
The notification will only be shown for GUI applications in the non command prompt version.
Note: PowerShell notifications must be on for this to work.
See Package.Desktop.DoNotifySendIfLaunchFailsOnLinux for similar feature on Linux.
Name:
    Package.Desktop.DoNotifySendIfLaunchFailsOnLinux
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not failing to launch the application on Linux should cause a notification.
If the application returns a non zero exit code, a notification message box is shown using notify-send on Linux.
The notification will only be shown for GUI applications in the non terminal version.
See Package.Desktop.DoNotifySendIfLaunchFailsOnWindows for similar feature on Windows.
Name:
    Package.Desktop.Windows.AddFileAssociation
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies which file extension(s) that should be associated with this application on Windows.
The file extension(s) are made by calling the "assoc" and "ftype" commands.
See Package.Desktop.Linux.MimeType and Package.Desktop.Linux.MimeTypesFiles for similar feature on Linux.
Name:
    Package.Desktop.Linux.MimeType
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies which mime type(s) that should be associated with this application on Linux.
The specified mime type(s) will be set in the desktop's MimeType property.
Note: Mime types must be seperated by semicolon ';', and the property must end in a semicolon (if not empty).
See Package.Desktop.Windows.AddFileAssociation for similar feature on Windows.
The Package.Desktop.Linux.MimeTypesFiles can be used to create new mime type(s).
Name:
    Package.Desktop.Linux.MimeTypesFiles
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies file(s) that contains new mime type(s) that should be created when installing the application on Linux.
The specified XML file(s) must conform to the http://www.freedesktop.org/standards/shared-mime-info standard.
Note: The specified file name(s) may not contain a space.
It is highly recommended to add the created mime type(s) to the Package.Desktop.Linux.MimeType property.
Icon(s) for the new mime type(s) can be configured by setting the Package.Desktop.Linux.MimeTypeIconFiles property.
Name:
    Package.Desktop.Linux.MimeTypeIconFiles
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies which icon the new mime type should have on Linux.
Note: The specified file extension must be "png" or "xpm".
Note: The Package.Desktop.Linux.MimeTypesFiles property must be set, before this property can be set.
It is currently only supported to set an icon on the first mime type specified by the Package.Desktop.Linux.MimeTypesFiles property.
Specifying size is also not supported. The specified icon will be used for all sizes.
Name:
    Package.Desktop.Linux.AddActions
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to use the dektop file action feature on Linux.
If true the created desktop files will contain an action to launch the other desktop files.
That is for GUI applications:
    The non terminal desktop file will contain an action to launch the terminal desktop / "with console" file and one to launch the uninstaller.
    The terminal desktop / "with console" file will contain an action to launch the non terminal desktop file and one to launch the uninstaller.
    The uninstaller desktop file will not contain any actions
Name:
    Package.Desktop.Linux.UseExitWithPause
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to use the exit with pause / "smart pause" feature on Linux.
If true the created bash script files will contain code that will cause an "Press any key to terminate" before the script stops.
The "Press any key to terminate" is only shown if the terminal window will close when the script stops.
Running the script in a manually opened terminal, will not cause any messages or require any key press.
Note: This is a bit of a hack that might not work on all Linux distributions or for all terminals.
See Package.Desktop.Linux.UseNoPauseParameters for a manual version of this.
Name:
    Package.Desktop.Linux.UseNoPauseParameters
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to use the "pause parameters" environment variables on Linux.
The "pause parameters" controls what happens when the script stops.
If the "NO_PAUSE" environment variable is set to "TRUE", no "Press any key to terminate" message will be shown, when the script stops normally (exit code = 0)
If the "NO_ERROR_PAUSE" environment variable is set to "TRUE", no "Press any key to terminate" message will be shown, if the script fails (exit code != 0)
If this property is set to false, setting the two environment variables will have not effect.
See Package.Desktop.Linux.UseExitWithPause for an automatic version of this.
Name:
    Package.Desktop.Linux.Categories
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the value of desktop file field "Categories" in the desktop file on Linux.
Name:
    Package.Desktop.Linux.AddAbtUpdateCheckerWaitForUpgrade
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to add the wait for the ABT - Update Checker automatic installation of upgrades for finish.
If the ABT - Update Checker project is not used, this property should probably be set to false.
If the ABT - Update Checker project is used and this property is to false,
    then Linux will terminate the installer process before it completes, causing the upgrade to fail.
See the ABT - Update Checker project for details.
Name:
    Package.Desktop.SettingsFileNameSystemProperty
Examples:
    Package.Desktop.SettingsFileNameSystemProperty=SettingsFileName
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the system property for the settings file name.
To get the name of the settings file name use the following code:
String settingsFileName = System.getProperty(<Value of the Package.Desktop.SettingsFileNameSystemProperty>);
For example:
    ABT Module Property File:     
Package.Desktop.SettingsFileNameSystemProperty=SettingsFileName
    Java source code:     
String settingsFileName = System.getProperty("SettingsFileName");
The settings file name is calculated in a platform depended way and depending on the Package.Desktop.SettingsFileNamePostfix property.
    It is not required to set the Package.Desktop.SettingsFileNamePostfix property. See below.
This property may not be set if Package.Desktop.UserDataPathSystemProperty is set.
Name:
    Package.Desktop.SettingsFileNamePostfix
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the postfix of the settings file name placed in the system property defined by Package.Desktop.SettingsFileNameSystemProperty.
The settings file name is calculated from this property in a platform depended way, to make it follow the standard for the platform.
    If not set a platform depended default is used.
If this property is set the Package.Desktop.SettingsFileNameSystemProperty property must also be set. The reversed is not required.
Name:
    Package.Desktop.UserDataPathSystemProperty
Examples:
    Package.Desktop.UserDataPathSystemProperty=UserDataPath
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the system property for the user data path.
To get the name of the user data path use the following code: (Or use ApplicationUtil.USER_DATA_PATH)
String userDataPath = System.getProperty(<Value of the Package.Desktop.UserDataPathSystemProperty>);
For example:
    ABT Module Property File:     
Package.Desktop.UserDataPathSystemProperty=UserDataPath
    Java source code:     
String userDataPath = System.getProperty("UserDataPath", "");
The user data path is calculated in a platform depended way and depending on the Package.Desktop.UserDataPathPostfix property when running installed.
    It is not set when running from IDE (/Eclipse) or standard-alone (Note the: , "" in the code above).
This property may not be set if Package.Desktop.SettingsFileNameSystemProperty property is set.
Name:
    Package.Desktop.UserDataPathPostfix
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the postfix of the user data path placed in the system property defined by Package.Desktop.UserDataPathSystemProperty.
The user data path is calculated from this property in a platform depended way, to make it the location of user specified data for the platform.
If this property is set the Package.Desktop.UserDataPathSystemProperty property must also be set. The reversed is not required.
Name:
    Package.Desktop.UserHomeSystemProperty
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the system property for the user home path.
To get the name of the user home path use the following code: (Or use ApplicationUtil.USER_HOME)
String userHome = System.getProperty(<Value of the Package.Desktop.UserHomeSystemProperty>);
For example:
    ABT Module Property File:     
Package.Desktop.UserHomeSystemProperty=UserHome
    Java source code:     
String userHome = System.getProperty("UserHome", "");
The user home path is calculated in a platform depended way when running installed.
    It is not set when running from IDE (/Eclipse) or standard-alone (Note the: , "" in the code above).
Name:
    Package.Desktop.ApplicationStartPathSystemProperty
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the system property for the application start path.
To get the name of the application start path use the following code: (Or use ApplicationUtil.APPLICATION_START_PATH)
String applicationStartPath = System.getProperty(<Value of the Package.Desktop.ApplicationStartPathSystemProperty>);
For example:
    ABT Module Property File:     
Package.Desktop.ApplicationStartPathSystemProperty=ApplicationStartPath
    Java source code:     
String applicationStartPath = System.getProperty("ApplicationStartPath", "");
The application start path is calculated in a platform depended way when running installed.
    It is not set when running from IDE (/Eclipse) (Note the: , "" in the code above).
    It is set when running standard-alone.
Name:
    Package.Desktop.ZipFileName
Default value:
    ${MODULE.NAME}/Package Desktop zip/${MODULE.NAME_DASH_VERSION}.zip
Property type:
    Relative file
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the file name of the zip file containing all the files needed to install the application.
The value is modified according to the rules described in the Temporary output path properties below.
Name:
    Package.Desktop.JarsPath
Default value:
    Jars/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the path of the jar(s) directory in the installed application.
This directory will contain all the jar files for the application when installed.
Note: This property may be set to the empty value. This places all the jar files in the root of the installer zip file.
Note: Changing this will cause the ABT - Installer to be unable to calculate the currently installed version,
    when current installed version is using the old jar files location, and the running installer is using the new location.
Name:
    Package.Desktop.ValidDeleteExtension
Examples:
    Package.Desktop.ValidDeleteExtension=gif
    Package.Desktop.ValidDeleteExtension+=PNG
    Package.Desktop.ValidDeleteExtension+=JpG
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the extra valid delete file extension(s) for the safe delete feature.
When ABT delete a directory it will only delete the directory, if the directory and all it's subdirectories don't contain an unexpected file extension.
This is done to make sure the ABT doesn't delete the wrong directory, because of a miss configuration or a program bug.
By specifying this property it is possible to add extra file extension that ABT also may delete.
Extensions are writing without '.' and they are not case sensitive. See examples on the left.
See the DeleteLimit property below for a limit of the number of files deleted.
Name:
    Package.Desktop.IncludeSource
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to include the source code in the installer.
If set to true the source zip file is included in the installer zip.
Source zip files from all dependent modules are included from those modules that have this property set to true.
It is not used by the installer. It is only included for a developer to unzip and use.
The CreateSourceZip property must be true, if this property is set to true.
Name:
    Package.Desktop.SourcesPath
Default value:
    Sources/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the path for the source zip file in the installer zip file.
If this property is set the Package.Desktop.IncludeSource property must be set to true.
Note: This property may be set to the empty value. This places the source zip files in the root of the installer zip file.
Name:
    Package.Desktop.IncludeConfigurationBackupFile
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to include the configuration backup file in the installer zip.
It is not used by the installer. It is only included for a developer to find and use.
The CreateBackupConfigurationFile property must be true, if this property is set to true.

Properties for task Package Download site

The properties specified in the table below may only be used if the Package Download site packaging (abt.packaging.downloadsite.PackageDownloadSite) is installed. See the PackagingClass property below.
PropertyDescription
Name:
    Package.DownloadSite.SubPackageType
Default value:
    Desktop
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the sub packaging type.
It must be set to one of the following values: "Desktop", "Zip", "Jar" or "None" (Case sensitive).
ValueDescription
DesktopBuild a cross-platform GUI installer using the Package Desktop packaging and copy it to the download site.
ZipCreate a zip file contain all the jar files required to run this module and copy it to the download site.
        This include jar files for all dependent modules in all levels.
        Must be more that one jar file.
JarCopy this module's jar file to the download site.
        This module must not depend on other modules or jar files.
NoneNo executable files from this module (or dependent) are copied to the download site.
Name:
    Package.DownloadSite.HtmlFile
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the HTML file template(s) for the download site.
This is required for the module to be package download sited.
Note: The first file specified is used as the destination for links to this module by the release notes file link feature. See below.
The file template(s) specified by this property will be copied to the download site after various replace strings have been replaced.
    See the General replace strings table and HTML template replace strings table below.
    If a HTML template file contains an unreplaced replace string an exception is thrown.
        This includes any string that matches the regular expression "\$\{[A-Z_.0-9]+\}".
For file(s) (e.g images) that are needed by the download site in unmodified form, see the Package.DownloadSite.ResourceFile property below.
Name:
    Package.DownloadSite.HtmlIcon
Property type:
    File
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the file name of the favicon for the download site.
The specified file is copied to the download site and can be referenced in the HTML template files using the replace string ${MODULE.HTML.ICON}.
    For HTML template file see Package.DownloadSite.HtmlFile above.
    For replace strings see the HTML template replace strings table below.
This icon will also be used as the favicon for the release notes HTML file (If used). See below.
Name:
    Package.DownloadSite.HtmlIconUseLinuxIconAsDefault
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to use the Linux icon as HTML favicon, if the HTML icon is not set.
If this property is true and Package.DownloadSite.HtmlIcon property is not set, the Package.Desktop.Linux.Icon is used as HTML favicon (If set).
It is not required to set this property to false, if both the Package.DownloadSite.HtmlIcon and Package.Desktop.Linux.Icon properties are not set.
This also also applies for the favicon for the release notes HTML file (If used). See below.
Name:
    Package.DownloadSite.ResourceFile
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the resource(s) (Images, CSS, JavaScript and other) for the download site.
The specified files are copied to the download site unmodified.
    For HTML file(s) that needs to be modified, see the Package.DownloadSite.HtmlFile property above.
Name:
    Package.DownloadSite.Deploy
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the download site deploy destination.
After that the entire download site has been compile it is copied / deployed to the specified location.
See the Package.DownloadSite.DeployReleaseOnly property for deploy only if release.
Name:
    Package.DownloadSite.DeployReleaseOnly
Property type:
    Path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the download site deploy destination if the version is a release.
The download site is only deployed to the specified destination, if the version is a release as defined by the VersionStrategy property.
See the Package.DownloadSite.Deploy property for an "always" deploy destination.
See VersionStrategy property for the definition of a release version.
Name:
    Package.DownloadSite.CreateOtherProjectFilesZipFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not to create the other project files zip file.
If set to true a zip file is created that containing other project files that source and byte code.
This file will automatically include the following file(s) (If the controlling property is set):
    The ABT Module Property File (.abt).
    HTML file(s) defined by the Package.DownloadSite.HtmlFile property.
    HTML favicon defined by the Package.DownloadSite.HtmlIcon property.
    HTML resource(s) defined by the Package.DownloadSite.ResourceFile property.
    Release notes file defined by the Package.DownloadSite.ReleaseNotesFile property.
    Jar resource(s) defined by the JarResource property.
    If the Package.DownloadSite.SubPackageType property is set to "Desktop", this also include the following file(s):
        Package Desktop resource file(s) defined by the Package.Desktop.ResourceFile and Package.Desktop.ResourcePath properties.
        Windows desktop icon defined by the Package.Desktop.Windows.Icon property.
        Linux desktop icon defined by the Package.Desktop.Linux.Icon property.
        Mac desktop icon defined by the Package.Desktop.Mac.Icon property.
More files can be added using the Package.DownloadSite.OtherProjectFile property. See below.
Only files in the module home directory or subdirectories are included, as the relative location is preserved in the zip file.
Name:
    Package.DownloadSite.OtherProjectFile
Property type:
    File list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies extra file(s) to include in the other project files zip file.
See the Package.DownloadSite.CreateOtherProjectFilesZipFile property for above details.
If this property is specified, the Package.DownloadSite.CreateOtherProjectFilesZipFile property must be true (It default value).
Name:
    Package.DownloadSite.OtherProjectFilesZipFileName
Default value:
    ${MODULE.NAME}/Other project files/Other project files for ${MODULE.NAME_DASH_VERSION}.zip
Property type:
    Relative file
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the file name of the other project files zip file.
The value is modified according to the rules described in the Temporary output path properties below.
Name:
    Package.DownloadSite.CopySourceZipFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the source zip file is copied to the download site.
The CreateSourceZip property must be true, if this property is set to true.
Name:
    Package.DownloadSite.CopyConfigurationBackupFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the configuration backup file is copied to the download site.
The CreateBackupConfigurationFile property must be true, if this property is set to true.
Name:
    Package.DownloadSite.CreateDownloadSiteNameFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the download site file name file is created and placed on the download site.
The file contains the name of the download site HTML landing page.
    This is the first file name (no path) specified by the Package.DownloadSite.HtmlFile property.
The file is always named "Download site file name.txt", and this can't be changed.
This file name and it's content is used by the ABT - Update Checker project to link to this module's download site.
    If this feature / project is not used, it is recommended to set this property to false.
See the ABT - Update Checker project for details.
Name:
    Package.DownloadSite.CreateInstallerNameFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the installer file name file is created and placed on the download site.
The file contains the name of the cross-platform GUI installer.
    This is the file name (no path, but with version) specified by the Package.Desktop.InstallerJarFileName property.
The file is always named "Installer file name.txt", and this can't be changed.
This file name and it's content is used by the ABT - Update Checker project to download the installer for this module.
    If this feature / project is not used, it is recommended to set this property to false.
See the ABT - Update Checker project for details.
The Package.Desktop.BuildInstaller property must be true, if this property is set to true.
Name:
    Package.DownloadSite.CreateVersionFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the version file is created and placed on the download site.
The file contains the newest version of this module.
The file is always named "Version.txt", and this can't be changed.
This file name and itøs content is used by the ABT - Update Checker project to check if a newer version this module is available.
    If this feature / project is not use, it is recommended to set this property to false.
See the ABT - Update Checker project for details.
The VersionFileClassName property must be set, if this property is set to true.
Name:
    Package.DownloadSite.IncludeJavadoc
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the Javadoc should be copied to the download site.
The JavadocGenerate property must be set to true, if this property is set to true.
Name:
    Package.DownloadSite.JavadocDirectoryName
Default value:
    Javadoc
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the Javadoc destination directory in the download site.
If this property is specified the Package.DownloadSite.IncludeJavadoc must be true.
Name:
    Package.DownloadSite.ReleaseNotesFile
Property type:
    File
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the name of the release notes file template used for the HTML release notes file in the download site.
This file must exist and follow the following strict text format:
    The first line is the release format line. This may contain replace strings. See below.
        This line is string replaced in the top of the output and for every release.
        This line must contain the replace string "${MODULE.VERSION}".
        Example:
            Version ${MODULE.VERSION} (${TO_DAY} ${NOW})
    Subsequently lines must: (Can be deactivated per line by starting it with a '-')
        Start with one of more tabs (Not spaces).
            The number of tabs must be lower, the same or at max one higher that the previous line.
            If the previous line was a release (No tabs), this line must start with exactly one tab.
            This indenting is reflected in the output HTML file.
        Start with an upper case letter (or a non letter).
        Not contain a double space or tab.
        Not end with space or tab (After those in the start).
        End with a dot ('.').
    A new release line must not start with a space or tab and the line must be preceded by exactly two empty lines.
See the General replace strings table below for a list of possible replace strings in the release format line.
NOTE: This file might be updated by ABT depending on the values of the Package.DownloadSite.AddDependencyChangesToReleaseNotes and Package.DownloadSite.ModifyReleaseNotesFileOnReleaseOnly properties. See below for details.
See examples of this file format in the various other projects on this site.
Name:
    Package.DownloadSite.AddDependencyChangesToReleaseNotes
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not dependency changes should be added to release notes.
Dependency changes are calculate by searching through the release notes file from top to bottom.
The first dependency change found (per module) is considered as the newest / last version.
This is compared with the dependencies defined by the ModuleDependency property.
    If the version number is changed a "Module dependency changed" line (for that module) is added.
    If a dependency is only found in the ModuleDependency property a "Module dependency added" line is added.
    If a dependency is only found in the release notes a "Module dependency removed" line is added.
    If the version number is not changed nothing is added.
All the lines added will be modified according to the Release notes template replace strings table below.
See the following properties below for the default content of the various dependency change lines:     Package.DownloadSite.ModuleDependencyChangedReleaseNotesText
    Package.DownloadSite.ModuleDependencyAddedReleaseNotesText
    Package.DownloadSite.ModuleDependencyRemovedReleaseNotesText
    Package.DownloadSite.ModuleDependencyNoVersionAddedReleaseNotesText
    Package.DownloadSite.ModuleDependencyNoVersionRemovedReleaseNotesText
Note: If the content of one of these properties are changed, it may cause the last version of a dependency not to be found, causing all current dependencies to be seen as added.
If this property is set to true, the Package.DownloadSite.ReleaseNotesFile property must be specified.
Name:
    Package.DownloadSite.AddDependencyChangesToReleaseNotesHtmlFileOnReleaseOnly
Default value:
    false
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not dependency changes should be added to release notes for release versions only.
If this property is set to true dependency changes will only be added to the release notes if the version is a release.
    It is defined by the VersionStrategy property if a version is a release. See above for details.
If this property is set to true the Package.DownloadSite.AddDependencyChangesToReleaseNotes must be true.
Name:
    Package.DownloadSite.ModifyReleaseNotesFileOnReleaseOnly
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not the calculated dependency changes should be saved in the release notes text file for release versions only.
If this property is set to true, the calculated dependency changes are saved to the release notes text file if the version is a release.
If this property is set to false, the calculated dependency changes are always saved to release notes text file.
Note: The release notes text file (The input file) is modified by ABT. Any unsaved changed might be lost!
It is defined by the VersionStrategy property if a version is a release. See above for details.
Name:
    Package.DownloadSite.AddLinkToDownloadSiteInReleaseNotesFile
Default value:
    true
Property type:
    Boolean
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies whether or not a link to the download site is added to the top of the release notes HTML file.
The download site is defined by the first value of the Package.DownloadSite.HtmlFile property.
If this property is set to true the Package.DownloadSite.ReleaseNotesFile property must be specified.
Name:
    Package.DownloadSite.ModuleDependencyChangedReleaseNotesText
Default value:
    Changed from using ${MODULE.NAME.PRETTY} version ${MODULE.VERSION.FROM} to version ${MODULE.VERSION.TO}. See ${RELEASE_NOTES_LINK} for ${MODULE.NAME.PRETTY} for details.
    Note: This value starts with a tab.
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the "Module dependency changed" text line used when adding dependency changes to release notes.
This line is used when the version of a dependency module is changed.
This line must contain the replace strings "${MODULE.NAME.PRETTY}", "${MODULE.VERSION.FROM}" and "${MODULE.VERSION.TO}".
See the Package.DownloadSite.AddDependencyChangesToReleaseNotes property for details.
Name:
    Package.DownloadSite.ModuleDependencyAddedReleaseNotesText
Default value:
    Dependency of ${MODULE.NAME.PRETTY} version ${MODULE.VERSION} has been added.
    Note: This value starts with a tab.
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the "Module dependency added" text line used when adding dependency changes to release notes.
This line is used when a dependency of a module (With version) is added.
This line must contain the replace strings "${MODULE.NAME.PRETTY}" and "${MODULE.VERSION}".
See the Package.DownloadSite.AddDependencyChangesToReleaseNotes property for details.
Name:
    Package.DownloadSite.ModuleDependencyRemovedReleaseNotesText
Default value:
    Dependency of ${MODULE.NAME.PRETTY} version ${MODULE.VERSION} has been removed.
    Note: This value starts with a tab.
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the "Module dependency removed" text line used when adding dependency changes to release notes.
This line is used when a dependency of a module (With version) is removed.
This line must contain the replace strings "${MODULE.NAME.PRETTY}" and "${MODULE.VERSION}".
See the Package.DownloadSite.AddDependencyChangesToReleaseNotes property for details.
Name:
    Package.DownloadSite.ModuleDependencyNoVersionAddedReleaseNotesText
Default value:
    Dependency of ${MODULE.NAME.PRETTY} has been added.
    Note: This value starts with a tab.
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the "Module dependency added" text line when the module doesn't have a version, used when adding dependency changes to release notes.
This line is used when a dependency of a module (Without version) is added.
This line must contain the replace string "${MODULE.NAME.PRETTY}".
See the Package.DownloadSite.AddDependencyChangesToReleaseNotes property for details.
Name:
    Package.DownloadSite.ModuleDependencyNoVersionRemovedReleaseNotesText
Default value:
    Dependency of ${MODULE.NAME.PRETTY} has been removed.
    Note: This value starts with a tab.
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the "Module dependency removed" text line when the module doesn't have a version, used when adding dependency changes to release notes.
This line is used when a dependency of a module (Without version) is removed.
This line must contain the replace string "${MODULE.NAME.PRETTY}".
See the Package.DownloadSite.AddDependencyChangesToReleaseNotes property for details.

Replace string tables

General replace strings table
The following replace strings can be used in:
Replace string nameFormatExampleDescription
${MODULE.HOME}<Path>/home/allan/Mit/Java/ABT/ABT/
/home/allan/Mit/Java/ABT/ABT - Test/
/home/allan/Mit/Java/Family Tree/
Module home directory
${MODULE.NAME}<Module name>ABT
ABT - Test - 1
Family Tree
Module name (Unmodified)
${MODULE.NAME.PRETTY}<Module name pretty>ABT
ABT Test 1
Family Tree
Module name.
'-' and '_' are replaced with a space.
All double spaces are removed.
${MODULE.VERSION}[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?1.0.19
1.0.25.1188
1.0.21
Module version.
VersionFileClassName must be set.
${MODULE.BUILD}[0-9]+807
1300
917
Module build number.
VersionFileClassName must be set.
Doesn't work in release notes file.
${MODULE.NAME_DASH_VERSION}<Module name> - <Module version>ABT-1.0.19
ABT - Test - 1-1.0.25.1188
Family Tree-1.0.21
Module name (Unmodified) followed by a dash '-' and version
${MODULE.NAME_DASH_VERSION_FILE_SEPARATOR}<Module name> - <Module version> <File.separator>ABT-1.0.19/
ABT - Test - 1-1.0.25.1188/
Family Tree-1.0.21/
Module name (Unmodified) followed by a dash '-', version and '/' (or '\')
${MODULE.NAME_DOT_VERSION}<Module name> . <Module version>ABT.1.0.19
ABT - Test - 1.1.0.25.1188
Family Tree.1.0.21
Module name (Unmodified) followed by a dot '.' and version
${MODULE.NAME_SPACE_VERSION}<Module name> <Module version>ABT 1.0.19
ABT - Test - 1 1.0.25.1188
Family Tree 1.0.21
Module name (Unmodified) followed by a space ' ' and version
${MODULE.NAME_VERSION_VERSION}<Module name> version <Module version>ABT version 1.0.19
ABT - Test - 1 version 1.0.25.1188
Family Tree version 1.0.21
Module name (Unmodified) followed by " version " and version
${TO_DAY}yyyy-MM-dd2024-07-26To day in yyyy-MM-dd format.
The format can't be changed.
${NOW}HH:mm:ss19:07:25The time of now in HH:mm:ss format.
The format can't be changed.
HTML template replace strings table
The following replace strings can only be used in the HTML template file(s) defined by Package.DownloadSite.HtmlFile property.
All file names are URL encoded (' ' => %20), to make them work in links like <a href="${MODULE.DOWNLOAD_FILE_NAME}">Download this file</a>
Replace string nameFormatExampleDescription
${MODULE.INSTALLER_FILE_NAME}<Installer file name>Installer%20for%20ABT%20version%201.0.19.jar
Installer%20for%20ABT%20-%20Test%20-%201%20version%201.0.25.1188.jar
Installer%20for%20Family%20Tree%20version%201.0.21.jar
The file name (No path, URL encoded) of the cross-platform installer jar on the download site.
The Package.DownloadSite.SubPackageType must be "Desktop".
${MODULE.JAR_FILE_NAME}<This module's jar file name>abt-1.0.19.jar
abt---test---1-1.0.25.1188.jar
family-tree-1.0.21.jar
The jar file name (No path, URL encoded) of this module.
NOTE: The file will only exist in the download if Package.DownloadSite.SubPackageType is "Jar".
${MODULE.DOWNLOAD_FILE_NAME}<"The download file name">Installer%20for%20ABT%20version%201.0.19.jar
Installer%20for%20ABT%20-%20Test%20-%201%20version%201.0.25.1188.jar
Installer%20for%20Family%20Tree%20version%201.0.21.jar
GUI%20Finder-1.2.3.zip
The download file name (No path, URL encoded) of this module.
If Package.DownloadSite.SubPackageType is "Desktop", it will be the name of the installer (See ${MODULE.INSTALLER_FILE_NAME}).
If Package.DownloadSite.SubPackageType is "Zip", it will be the name of the zip file containing all the jar files.
If Package.DownloadSite.SubPackageType is "Jar", it will be the name of the jar file (See ${MODULE.JAR_FILE_NAME}).
${MODULE.SOURCE_FILE_NAME}<The source zip file name">abt-1.0.19-src.zip
abt---test---1-1.0.25.1188-src.zip
family-tree-1.0.21-src.zip
The source zip file name (No path, URL encoded) of this module.
The CreateSourceZip and Package.DownloadSite.CopySourceZipFile must be true.
${MODULE.CONFIGURATION_BACKUP_FILE_NAME}<The configuration backup file name>ABT-1.0.19.abt
ABT%20-%20Test%20-%201-1.0.25.1188.abt
Family Tree-1.0.21.abt
The configuration backup file name (No path, URL encoded) of this module.
The CreateBackupConfigurationFile and Package.DownloadSite.CopyConfigurationBackupFile must be true.
${MODULE.RELEASE_NOTES_FILE_NAME}<The release notes file name>ABT%20Release%20notes.html
ABT%20-%20Test%20-%201%20Release%20notes.html
Family%20Tree%20Release%20notes.html
The release notes HTML file name (No path, URL encoded) generated from release notes template file.
The Package.DownloadSite.ReleaseNotesFile must be set.
${MODULE.JAVADOC_INDEX_FILE_NAME}<The Javadoc index file name>Javadoc/index.htmlThe Javadoc index file name (with relative path in download site, URL encoded) for this module.
JavadocGenerate and Package.DownloadSite.IncludeJavadoc must be true.
${MODULE.OTHER_PROJECT_FILES_ZIP_FILE_NAME}<The other project files zip file name>Other%20project%20files%20for%20ABT-1.0.19.zip
Other%20project%20files%20for%20ABT%20-%20Test%20-%201-1.0.25.1188.zip
Other%20project%20files%20for%20Family%20Tree-1.0.21.zip
The other projects zip file name (No path, URL encoded) for this module.
The Package.DownloadSite.CreateOtherProjectFilesZipFile must be true.
${MODULE.HTML.ICON}<The HTML icon file name>Family%20Tree.gifThe HTML icon file name (No path, URL encoded) for this module.
The Package.DownloadSite.HtmlIcon must be set.
or (Package.Desktop.Linux.Icon must set and Package.DownloadSite.HtmlIconUseLinuxIconAsDefault must be true).
${HTML_FILE.LAST_MODIFIED}yyyy-MM-dd HH:mm:ss2024-07-27 16:02:11The last modified of the HTML template file used to generated this HTML file
${MODULE.JRE.VERSION}[0-9]+\.[0-9]+(\.[0-9]+)*1.6
1.8
The JRE version target version of this module.
Set by TargetVersion or default.
${ABT.NAME.PRETTY}ABT - Allan's Build ToolABT - Allan's Build ToolThe pretty name of ABT (a constant string)
${ABT.VERSION}1\.0\.[0-9]+1.0.19The version of ABT that build this HTML file
${ABT.BUILD}[1-9][0-9]*809The build number of ABT that build this HTML file
${AR_COMMON.NAME.PRETTY}AR CommonAR CommonThe pretty name of AR Common that ABT depends on
${AR_COMMON.VERSION}1\.1\.[0-9]+1.1.7The version of AR Common that ABT depends on that build this HTML file
${AR_COMMON.BUILD}[1-9][0-9]*1489The build number of AR Common that ABT depends on that build this HTML file
For each HTML template replace strings table
The following replace strings can only be used in a For each section of the HTML template file(s) defined by Package.DownloadSite.HtmlFile property.
These replace strings must be used between a "For each" and an "${END_FOR_EACH}".
Each section between a "For each" and an "${END_FOR_EACH}" is applied one time for each module dependency defined by the ModuleDependency property.
The "For each" have tree variants:
    ${FOR_EACH: MODULE_DEPENDENCY_WITH_SOURCE} - All module dependencies (with and without a source zip file)
    ${FOR_EACH: MODULE_DEPENDENCY_WITH_SOURCE_WITH_VERSION} - Only module dependencies with a source zip file
    ${FOR_EACH: MODULE_DEPENDENCY_WITH_SOURCE_WITHOUT_VERSION} - Only module dependencies without a source zip file
Replace string nameFormatExampleDescription
${MODULE_DEPENDENCY.NAME}<The module name of the dependency>ABT - Test - 2 - ÆÅØThe name of the module dependency
${MODULE_DEPENDENCY.NAME.PRETTY}<The module name of the dependency>ABT Test 2 ÆÅØThe pretty name of the module dependency
${MODULE_DEPENDENCY.NAME.URL_ENCODED}<The module name of the dependency>ABT%20-%20Test%20-%202%20-%20%C3%86%C3%85%C3%98The URL encoded name of the module dependency
${MODULE_DEPENDENCY.VERSION}[0-9]+\.[0-9]+(\.[0-9]+)*1.0.29.34The version of the module dependency
${MODULE_DEPENDENCY.FIRST_HTML_FILE_NAME}<The first HTML file name of the module dependency>ABT%20-%20Test%20-%202%20-%20%C3%86%C3%85%C3%98%20Download%20site.htmlThe first HTML file name / download site (No path, URL encoded) of the module dependency
${MODULE_DEPENDENCY.JAR_FILE_NAME}<The jar file name of the module dependency>abt---test---2---æåø-1.0.19.148.jarThe jar file name (No path, URL encoded) of the module dependency.
The Package.DownloadSite.SubPackageType in the module dependency must be "Jar".
${MODULE_DEPENDENCY.SOURCE_FILE_NAME}<The source zip file name of the module dependency>abt---test---2---%C3%A6%C3%A5%C3%B8-1.0.29.34-src.zipThe source zip name (No path, URL encoded) of the module dependency.
The CreateSourceZip in the module dependency must be true.
${MODULE_DEPENDENCY.CONFIGURATION_BACKUP_FILE_NAME}<The configuration backup file name of the module dependency>ABT%20-%20Test%20-%202%20-%20%C3%86%C3%85%C3%98-1.0.29.34.abtThe configuration backup file name (No path, URL encoded) of the module dependency.
The CreateBackupConfigurationFile in the module dependency must be true.
Release notes template replace strings table
The following replace strings can only be used in the release notes template file defined by Package.DownloadSite.ReleaseNotesFile property.
All the default replace strings from the General replace strings table above can be used in the release format line and in the Package.DownloadSite.ModuleDependencyAddedReleaseNotesText property.
The "Description" column for each of the replace strings in the table below contains where the replace string may be used.
See the Package.DownloadSite.ReleaseNotesFile property for a definition of the release format line.
See the properties table above for the following property to see default value / example of options:
    Package.DownloadSite.ModuleDependencyChangedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyAddedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyRemovedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyNoVersionAddedReleaseNotesText and
    Package.DownloadSite.ModuleDependencyNoVersionRemovedReleaseNotesText.
Replace string nameFormatExampleDescription
${MODULE.NAME.PRETTY}<Module name pretty>ABT
ABT Test 1
Family Tree
Dependency module name.
'-' and '_' are replaced with a space.
Can be used in all of the following places:
    Release format line,
    Package.DownloadSite.ModuleDependencyChangedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyAddedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyRemovedReleaseNotesText,
    Package.DownloadSite.ModuleDependencyNoVersionAddedReleaseNotesText and
    Package.DownloadSite.ModuleDependencyNoVersionRemovedReleaseNotesText.
${MODULE.VERSION}[0-9]+\.[0-9]+(\.[0-9]+)*1.0.29.34The version of the module dependency.
    Can only be used in release format line,
    Package.DownloadSite.ModuleDependencyAddedReleaseNotesText and
    Package.DownloadSite.ModuleDependencyRemovedReleaseNotesText.
${MODULE.VERSION.FROM}[0-9]+\.[0-9]+(\.[0-9]+)*1.0.29.34The changed from version of the module dependency.
Can only be used in the Package.DownloadSite.ModuleDependencyChangedReleaseNotesText property.
${MODULE.VERSION.TO}[0-9]+\.[0-9]+(\.[0-9]+)*1.0.29.35The changed to version of the module dependency.
Can only be used in the Package.DownloadSite.ModuleDependencyChangedReleaseNotesText property.
${RELEASE_NOTES_LINK}<Link to the release notes of the module dependency>Release notesLink to the release notes of the module dependency.
Can only be used in release format line and Package.DownloadSite.ModuleDependencyAddedReleaseNotesText.

Log control properties (Configuration file only)

PropertyDescription
Name:
    Log
Default value:
    true
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not to log all log messages to the console.
Name:
    SimpleExceptionLogging
Default value:
    true
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not to do simple exception logging to the console.
If this property is true the same exception will (typically) be logged twice.
if this property is false some exception might be lost / hidden.
Name:
    Verbose
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not to log verbose log messages to the console.
The Log property must be true for this property have effect.
Name:
    VerboseCompile
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not to call the Java compile with the "-verbose" command line option.
It will also cause the deploy of some compile related files to be echoed to the console.
The Log property must be true for this property have effect.
Name:
    VerboseJar
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not to call the Java jar tool with the "v" command line option.
The Log property must be true for this property have effect.
Name:
    VerboseDelete
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not the deletion of entire directory trees are echoed to the console.
The Log property must be true for this property have effect.
Name:
    VerboseZip
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not the creation of zip files are echoed to the console.
The Log property must be true for this property have effect.
Name:
    VerboseChange
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not the change (of a file) that is causing the compile / build / creating of a file is logged to the console.
The Log property must be true for this property have effect.
This message can also be seen in the summary report in the "Processing caused by" column.
Name:
    VerbosePropertyAdjustments
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not the adjustment of file and path properties are logged to the console.
This includes (but is not limited to) adjustments like '/' to '\\' (or vice versa).
The Log property must be true for this property have effect.
Name:
    VerboseStringSubstitutionChange
Default value:
    false
Property type:
    Boolean
Usage:
    ABT Configuration File only
Specifies whether or not the result of string substitution of properties are logged to the console.
The Log property must be true for this property have effect.


Miscellaneous properties

PropertyDescription
Name:
    StringSubstitution
Format:
    StringSubstitution <Operator> <String substitution name> ; <String substitution value>
Examples:
    StringSubstitution=JUnit;/usr/share/java/junit.jar;UNIT_TEST
Property type:
    String list
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies string substitutions. See String substitution above for details.
Name:
    PackagingClass
Examples:
    PackagingClass=abt.packaging.desktop.PackageDesktop
    PackagingClass+=abt.packaging.downloadsite.PackageDownloadSite
Property type:
    String list
Usage:
    ABT Configuration File only
Specifies the Packaging class(es) to be loaded / installed.
The specified class must exist on ABT's class path and must implement the abt.packaging.core.PackageInterface interface.
The implementation of the abt.packaging.core.PackageInterface.getName() method must return a queue name that is not "None" or "Default".
Name:
    DefaultPackageType
Examples:
    DefaultPackageType=DownloadSite
Property type:
    String
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the default package type used if the command line Package Default option is used.
The specified package type must be load / installed. See the PackagingClass property for details.
This may not be set to "Default".
See Command line parameters and Default task table above.
Name:
    ExcludePathInAllSearch
Property type:
    Path list
Usage:
    ABT Configuration File only
Specifies the directories to exclude in all search used by the command line option "All <path>".
See Command line parameters above.
Name:
    SummaryReportSavePath
Property type:
    Path
Usage:
    ABT Configuration File only
Specifies the location where the summary report is saved.
If not specified the summary report is not saved. It is only logged to console.
Name:
    DeleteLimit
Default value:
    100
Property type:
    Long
Usage:
    ABT Configuration File only
Specifies the delete limit of files deleted using the safe delete feature.
If the total number of files in a directory and it's subdirectories exceeds this limit an exception is thrown before any files are deleted.
See the Package.Desktop.ValidDeleteExtension property for details on the safe delete feature.
Name:
    LibraryPath
Default value:
    Lib/
Property type:
    Relative path
Usage:
    ABT Configuration File only
Specifies the name of the directory used for library jar defined by the JarDependency property in the installed application.

Temporary output path properties

The following table contains the temporary output path properties.
These properties determine the output destination for various temporary output files and directories in ABT.
All these properties (except TemporaryOutputBasePath) are calculated as follows:
  1. The property value is string replace using the replace strings in the General replace strings table above
  2. If the resulting value is an absolute path, the calculation is done
  3. Otherwise the value is calculated based on the value of TemporaryOutputBasePath property:
  4. The property value is converted to an absolute path with the base calculated above as base
The USER_DATA_PATH is the user's data directory for ABT with "Temporary output" (+ File.separator) added, when ABT is running installed.
When ABT is running standard-alone, the USER_DATA_PATH is the current directory with "Temporary output" (+ File.separator) added.

The calculation for the Temporary output file name properties is done in a similar way:
  1. The path of the property value is calculated
  2. This path is used as input for the algorithm above
  3. If property value contains a file name, it is added to the result from above and the calculation is done
  4. If property value doesn't contains a file name, the file name only part from the default value is added to the result from above and the calculation is done
The temporary output file names properties are the following. See the individual property above for details.
PropertyDescription
Name:
    TemporaryOutputBasePath
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the base path for all temporary output path properties.
The value is used as described above the table.
Name:
    CompileOutputPath
Default value:
    ${MODULE.NAME}/Compile - Module source/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the compile output path.
The value is calculated as described above the table.
Name:
    JarManifestAdditionOutputPath
Default value:
    ${MODULE.NAME}/Jar - Manifest addition/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the file used for the manifest addition.
The value is calculated as described above the table.
Name:
    JarOutputPath
Default value:
    ${MODULE.NAME}/Jar/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the jar file.
The value is calculated as described above the table.
Name:
    SourceZipOutputPath
Default value:
    ${MODULE.NAME}/Source zip/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the source zip file.
The value is calculated as described above the table.
Name:
    ConfigurationBackupOutputPath
Default value:
    ${MODULE.NAME}/Configuration backup/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for configuration backup file.
The value is calculated as described above the table.
Name:
    UnitTestOutputPath
Default value:
    ${MODULE.NAME}/Compile - Unit test/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the compile of the unit test.
The value is calculated as described above the table.
Name:
    JavadocOutputPath
Default value:
    ${MODULE.NAME}/Javadoc/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the generated Javadoc.
The value is calculated as described above the table.
Name:
    Package.Desktop.ZipContentOutputPath
Default value:
    ${MODULE.NAME}/Package Desktop zip content/${MODULE.NAME_DASH_VERSION_FILE_SEPARATOR}
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the directory that contains all the files that will be zipped into the installer zip file.
The value is calculated as described above the table.
Name:
    Package.Desktop.InstallerContentOutputPath
Default value:
    ${MODULE.NAME}/Package Desktop installer content/${MODULE.NAME_DASH_VERSION_FILE_SEPARATOR}
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path for the directory that contains all the files that will be zipped into the cross-platform GUI installer jar file.
The value is calculated as described above the table.
Name:
    Package.DownloadSite.DownloadSiteOutputPath
Default value:
    Package Download Site Download site output/${MODULE.NAME}/
Property type:
    Relative path
Usage:
    Both ABT Module Properties File and ABT Configuration File
Specifies the output path the download site(s).
The value is calculated as described above the table.
Note: The default value is a bit different from the other default values, to make links between modules work.

Copyright Allan Rasmussen©