## Description

Expands an archive file (jar/war/tar) to a specified location.

## Usage

Use ${ARCHIVE_ROOT}/path/to/archive for the archiveFilePath or destinationPath if the archive is in the deployment package. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description archiveFilePath java.lang.String /path/to/archive false The path denoting the location of the archive to be exploded. Use${ARCHIVE_ROOT}/path/to/archive if the archive is in the deployment package.
destinationPath java.lang.String   false The path to the directory on target server to expand the compressed file to.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Ear Expander

Sets: operationDir

## Description

Java based task that expands/collapses an ear file into/from a temporary location. Any contained archive (war/jar) files held within the ear will also be expanded/collapse (based on a fileset pattern) to facilitate other tasks such as search/replace. Please see ANT documentation for how to use filesets.

## Usage

This task will typically be used in groups of two instances of this task. Firstly in expand mode and then in collapse mode. Other tasks will be used in-between these two tasks that work on the expanded ear file. These intermediate tasks must support operationDir, the location of the expanded ear file, unless the destination parameter is specified.
.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
earFileRelativePath java.lang.String relative/path/to/archive false The path, relative to the archive root, denoting the location of the archive to be expanded from or collapsed back to. The operationDir key may be used to reference the root of the temporary location where the archive has been expanded into.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filesetExcludes java.lang.String   false ANT FileSet Style list of jar/war files inside the ear to exclude from the expansion.
filesetIncludes java.lang.String **/*.war false ANT FileSet Style list of jar/war files inside the ear to include in the expansion.
operation java.util.List expand false One of: expand, collapse.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

# Expand File In To Archive Root Task.

Supports: archiveRoot

## Description

Uncompress an archive file that is in Zip, Tar, Jar, Ear, War format to a directory specified relative to the archive root..
This task is useful when you need to orchestrate copying files from a zip file into different locations on the target server. This task uncompresses the file and subsequent tasks in the orchestration can use (such as copy or read) the expanded files.

## Parameters

The following parameters or parameters may be set on this task:

Name Type Default Value Optional Description
expandPathRelativeToArchiveRoot java.lang.String   true The relative path to the directory in the archive root to expand the compressed file to. If the directory does not exist in the archive root, this task will create it.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
zipFilePathRelativeToArchiveRoot java.lang.String   false The relative path to the compressed file to expand in the archive root.

## Description

Compress or Uncompress a file to/from gzip format.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /path/to/file/to/gzip false The file to compress (gzip operation), or the directory location of the uncompressed file to create (gunzip operation).
operation java.util.List expand false One of [compress|expand|zip|unzip|gzip|gunzip]
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
zipFilePath java.lang.String /path/to/zipFile false The zip file to be created (compress operation) or unzipped (uncompress operation), depending on operation.

## War Expander

Sets: operationDir

## Description

Java based task that expands/collapses a War/Ear/Jar file into/from a temporary location.

## Usage

This task will typically be used in groups of two instances of this task. Firstly in expand mode and then in collapse mode. Other tasks will be used in-between these two tasks that work on the expanded war file. These intermediate tasks must support operationDir, the location of the expanded war file, unless the destination parameter is specified.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
deleteSrcAfterOperation java.lang.Boolean false true Indicates if the source directory or war file will be deleted after the collapse or expand operation.
destination java.lang.String   true Optional destination to expand to and collapse from. If not set, defaults to a random directory (GUID) in the system dependent temporary directory (operationDir).
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
operation java.util.List expand false One of: expand, collapse.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
warFileRelativePath java.lang.String relative/path/to/archive false The path, relative to the archive root, denoting the location of the archive to be expanded from or collapsed back to. The operationDir key may be used to reference the root of the temporary location where the archive has been expanded into (see destination).

## Description

Compress or Uncompress an archive file that is in Zip, Tar, Jar, Ear, War format.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
archiveType java.util.List zip true The type or archive to create. One of [zip|tar|jar|war|ear]. Note that tar is an uncompressed format that will not save any space.
directory java.lang.String /path/to/zipOrUnzip false The directory to zip (compress operation), or to unzip to (uncompress operation), depending on operation.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
operation java.util.List expand false One of [compress|expand]. Use compress to jar, zip or tar -c a set of files to an archive. Use uncompress to unzip, unjar, or tar -x an archive back to the original files.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
zipFilePath java.lang.String /path/to/zipFile false The zip file to be created (compress operation) or unzipped (uncompress operation), depending on operation.

# Check File or Directory Task

## Description

This task tests whether a file or directory exists on the file system. If the file or directory does not exist then an exception is raised (if failOnError is true) or the false result is written to fileExistsOutputParam. Note that if the file doesn't exist - isDirectoryOutputParam, checksumOutputParam, isMD5OutputParam and versionTestOutputParam will not be set even if you configure task to perform these tests. This task is useful as a pre-requisite to check the file system is in the state it should be. This task can also test if the path is readable, writable or executable by the user running the job/orchestration.
If failOnError is set to true, a failing test will fail the current job. If failOnError is set to false, a failing test will not fail the current job, but the outputParameter for that test will be set to false.

### Checksum

This task can also check (compare) a given checksum with the file checksum. A difference in values will cause an error to be raised. You can find the CRC checksum of a file on linux or with GNU tools using:
                     				cksum file

For MD5:
                     				md5sum file


### Jar file version

For versioned Jar files, this task can compare a file version (given in the MANIFEST.MF file) to a supplied one. A difference in version causes an exception to be raised.

## Usage

This task can be used in a binary or codeDeploy project.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
checksum java.lang.String   true The expected checksum of the file, either CRC32 or MD5.
checksumOutputParam java.lang.String ${checksumTestResult} true The result of checksum test.If the file doesn't exist - this param will be not be set. failOnError java.lang.Boolean false false If failOnError is set to true, a failing test will fail the current job. If failOnError is set to false, a failing test will not fail the current job, but the outputParameter for that test will be set to false. fileExistsOutputParam java.lang.String${fileExistsResult} true The result of fileExists test.
fileOrDirectoryPathToCheck java.lang.String   false This is the path to the file or directory to check. If the file is inside the project deployment package, reference the path using ${ARCHIVE_ROOT}/path/to/file. isDirectory java.lang.Boolean false true If this is set to true then the path is tested as a directory, otherwise it is tested as a file. isDirectoryOutputParam java.lang.String${isDirectoryResult} true The result of isDirectory test. If the file doesn't exist - this param will be not be set.
isExecutableOutputParam java.lang.String ${isExecutableResult} true The result of isExecutable test.If the file doesn't exist - this param will be set to false. isMD5 java.lang.Boolean true true If this is set to true then an MD5 checksum is performed. Otherwise a CRC32 checksum is performed. isMD5OutputParam java.lang.String${isMD5Result} true The result of isMD5 test.If the file doesn't exist - this param will be not be set.
isReadableOutputParam java.lang.String ${isReadableResult} true The result of isReadable test. If the file doesn't exist - this param will be set to false. isWritableOutputParam java.lang.String${isWritableResult} true The result of isWritable test.If the file doesn't exist - this param will be set to false.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
testChecksum java.lang.Boolean false true If this is set to true then the file or directory is tested for a checksum match with the checksum value.
testExecutable java.lang.Boolean false true If this is set to true then the file or directory is tested if it is executable by the user running the job.
testReadable java.lang.Boolean false true If this is set to true then the file or directory is tested if it is readable by the user running the job.
testVersion java.lang.Boolean false true If this is set to true then the file or directory is tested for a version match with the version value. The file must be a Jar file to perform this check.
testWritable java.lang.Boolean false true If this is set to true then the file or directory is tested if it is writable by the user running the job.
version java.lang.String   true The expected version of the file.
versionKey java.lang.String Implementation-Version true The key to identify the version in the MANIFEST.MF file.
versionTestOutputParam java.lang.String ${versionTestResult} true The result of version test.If the file doesn't exist - this param will be not be set. Back to Top ## Check Signed Jars  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.CheckSignedJarsTask Category File - Attributes # Verify Signed Jars Task. Supports: archiveRoot ## Description This task Verifies a signed Jar file set of files in a directory from a target location using ANT filesets. ## Usage Setting the following parameters:  targetDirectory: /tmp/test fileSetIncludes: **/*.jar  Will recursively verify all files ending in ".jar" under /tmp/test ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filesetExcludes java.lang.String true ANT FileSet Style list of files to exclude from the verify. filesetIncludes java.lang.String **/* false ANT FileSet Style list of files to include in the verify. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. targetDirectory java.lang.String /tmp/directory/to/verify/ true The full path to the verify target directory. targetFile java.lang.String /tmp/file/to/verify true The full path to the verify target file. Back to Top ## Directory Write Check  Class Name com.midvision.rapiddeploy.orchestration.tasks.DirectoryWriteCheckTask Category File - Attributes # Directory Write Check Task ## Description Check that a directory is writeable by the current process. If failOnError is set to true, a directory that is not writeable will fail the current job. If failOnError is set to false, a directory that is not writeable will not fail the current job, but the resultParameter will be set to false. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description directoryToCheck java.lang.String /tmp/path/to/check false The directory below which the write check is performed. failOnError java.lang.Boolean true false If failOnError is set to true, a directory that is not writeable will fail the current job. If failOnError is set to false, a directory that is not writeable will not fail the current job, but the resultParameter will be set to false. resultParameter java.lang.String${directoryWriteCheckResult} false The name of the output parameter, which can pass the return value from the task (true if the write check is successful or false if not). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (later tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter${directoryWriteCheckResult}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Check that there is sufficient free disk space in the given directory. If failOnError is set to true, a directory that has insufficient space will fail the current job.
If failOnError is set to false, a directory that has insufficient space will not fail the current job, but the resultParameter will be set to false.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
directoryToCheck java.lang.String /tmp/path/to/check true The directory below which the disk space is checked. The disk space allocation is that found for the File System in which the specified directory is located. If not set then the installPath parameter is used by default.
failOnError java.lang.Boolean true false If failOnError is set to true, a directory that has insufficient space will fail the current job. If failOnError is set to false, a directory that has insufficient space will not fail the current job, but the resultParameter will be set to false.
requiredFreeSpace java.lang.String 500 false The free space required in Mb.
resultParameter java.lang.String ${diskSpaceCheckResult} false The name of the output parameter, which can pass the return value from the task (true if the space check is successful or false if not). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter ${diskSpaceCheckResult}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Get File Access Times  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.GetFileAccessTimesTask Category File - Attributes # Get file access times Task ## Description Retrieves the access times of given file and print it into specified output parameter The following output parameters will be populated: createTimeOutputParameter - The create date/time of the file modifyTimeOutputParameter - The last modified date/time of the file accessTimeOutputParameter - The last accessed date/time of the given file The date/time format is given as: YYYY-MM-DDThh:mm:ss[.s+]Z ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description accessTimeOutputParameter java.lang.String${fileAccessTime} false The name of the output parameter, which can pass the return value from the task. This will be the last access date/time of the file. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${fileAccessTime}.
createTimeOutputParameter java.lang.String ${fileCreateTime} false The name of the output parameter, which can pass the return value from the task. This will be the creation date/time of the file. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${fileCreateTime}. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The file to be investigated. modifyTimeOutputParameter java.lang.String${fileModifyTime} false The name of the output parameter, which can pass the return value from the task. This will be the last modification date/time of the file. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${fileModifyTime}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Retrieves the checksum of given file and print it into specified output parameter

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/check false The file to be investigated.
outputParameter java.lang.String ${fileChecksum} false The name of the output parameter, which can pass the return value from the task (file group). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${fileSize}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. type java.util.List MD5 false The file checksum type. Back to Top ## Get File Content Type  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.GetFileContentTypeTask Category File - Attributes # Get File Content Type Task ## Description Retrieves the content type of given file and print it into specified output parameter. ## Mac OS/X If running on Mac OS/X, you need a .mime.types file present in the user home directory for the user running this orchestration, otherwise null will be returned for every file check. You can find suitable files by searching the internet, for example here. You could add a 'Wget Task' to pull the file into the user home directory as the first step in job running on Mac OS/X. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The file to be investigated. outputParameter java.lang.String${fileContentType} false The name of the output parameter, which can pass the return value from the task (file group). The retiurn value will be the file type. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${fileContentType}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Retrieves the group of given file and print it into specified output parameter

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/check false The file to be investigated.
outputParameter java.lang.String ${fileGroup} false The name of the output parameter, which can pass the return value from the task (file group). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${fileSize}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Get File Owner  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.GetFileOwnerTask Category File - Attributes # Get File Owner Task ## Description Retrieves the owner of given file and print it into specified output parameter ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The file to be investigated. outputParameter java.lang.String${fileOwner} false The name of the output parameter, which can pass the return value from the task (file owner). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${fileSize}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Retrieves the parent of given file and print it into specified output parameter. The file does not need to exist.

In the case of a file, the parent is the directory in which the file resides.
In the case of a directory, the parent is the directory holding the specified directory

If numberOfParents is set, the directory tree will be climbed by the given number of parents and the resulting directory path returned.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/check false The path to the file or directory to be investigated.
numberOfParents java.lang.Integer 1 true The number of parent requests to make. By default this is set to 1, and therefore returns the immediate parent of the file or directory.
outputParameter java.lang.String ${parentFile} false The name of the output parameter, which can pass the return value from the task. It will hold the parent directory of the given file or directory. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${parentFile}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Get File Permissions  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.GetFilePermissionsInfoTask Category File - Attributes # Get File Permissions Task ## Description Retrieves an info about file permissions for current user ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The file to be investigated. outputParameter java.lang.String${filePermissionInfo} false The name of the output parameter, which can pass the return value from the task (info about file permissions). The task output will be the script output value. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${filePermissionInfo}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Retrieves the size of given file and print it into specified output parameter

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/check false The file to be investigated.
maximumFractionDigits java.lang.Integer 2 true The maximum fraction digits used to format the result.
outputParameter java.lang.String ${fileSize} false The name of the output parameter, which can pass the return value from the task (file size). Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${fileSize}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. unit java.util.List MB false The file to be investigated. Back to Top ## Get Filesystem Information  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.GetFsInfoTask Category File - Attributes # Get Filesystem Information ## Description Returns information about the filesystem for the given file path. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The path to the file or directory to be investigated. outputParameter java.lang.String${filesystemInfo} false The name of the output parameter, which can pass the return value from the task. It will return information about the filesystem of the given path. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${filesystemInfo}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

# Get the target of a file that is a symbolic link.

## Description

This task gets the path to the target of the symbolic link, and writes it to the outputParameter

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/link/from false The full path to the symbolic link source.
outputParameter java.lang.String ${symLinkTarget} false The name of the output parameter, which can pass the return value from the task. The output will be the target of the symlink. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${symLinkTarget}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## isHfs Filesystem  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.IsHfsTask Category File - Attributes # Check if the filesystem is an HFS filesystem ## Description Checks if the given file path resides in a (Mac) HFS filesystem. If the filesystem type cannot be determined, returns true. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/check false The path to the file or directory to be investigated. outputParameter java.lang.String${isHfs} false The name of the output parameter, which can pass the return value from the task. It will return true if the file path is on an NFS filesystem, or false if not. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${isHfs}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

# Check if the filesystem is an NFS filesystem

## Description

Checks if the given file path resides in an NFS filesystem.

If the filesystem type cannot be determined, assumes the worst case scenario and sets the result parameter to true.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String /tmp/path/to/check false The path to the file or directory to be investigated.
outputParameter java.lang.String ${isNfs} false The name of the output parameter, which can pass the return value from the task. It will return true if the file path is on an NFS filesystem, or false if not. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${isNfs}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## isSymbolicLink Test  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.IsSymLinkTask Category File - Attributes # Test if a file is a symbolic link. ## Description This task tests if the file at the given path is a symbolic link to another file. ## Usage ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filePath java.lang.String /tmp/path/to/test false The full path to the file to test source. outputParameter java.lang.String${isSymLink} false The name of the output parameter, which can pass the return value from the task. The output will true if the file is a symbolic link or false if the file does not exist or is not a symbolic link. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${isSymLink}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Change ownership of files or directories on the target server.
If the directoryName value denotes a directory, the ownerships will be changed recursively below this path name.
If directoryName denotes a filesystem file, this file will be changed.

## Usage

Warning: This task may recursively change file ownerships. Care should be taken when specifying directories and new owners as in certain circumstances it is possible to make changes on a server so as to render that server unusable. In the worst case scenario, the server may need to be rebuilt, resored from backup or booted from external disk.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
directoryName java.lang.String /tmp/path/to/change true OPTIONAL: Path to a file or directory to use when changing ownership. Ownerships are changed recursively below this directory.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
fileList java.lang.String /path/to/file1,/path/to/file2 true OPTIONAL: Comma separated list of absolute paths of files to change ownership of.
newOwner java.lang.String newUsername false The new owner.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Description

Unix style chmod (change file permissions) of a file or directory. The target file/directory must exist.

## Usage

Warning: This task may recursively change file permissions. Care should be taken when specifying directories and octal numbers as in certain circumstances it is possible to change permissions on a server so as to render that server unusable. In the worst case scenario, the server may need to be rebuilt, resored from backup or booted from external disk. This task does not work with AIX operating systems, use the UNIX - ChmodTask instead.
.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
octalNumber java.lang.String 755 false The permission to set in octal format. Please see the chmod man page.
paths java.lang.String /tmp/path1,/tmp/path2 false Comma separated list of paths to perform chmod on.
recursive java.lang.Boolean false false Perform a recursive chmod.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.

## Copy a Fileset

Supports: archiveRoot

## Description

This task copies a file or directory from a source location to a target location using ANT filesets. The source and/or target can be located in the expanded Archive.
The target directory will be created if it does not already exist.

## Usage

Warning: This task may recursively copy directories on the target server. You must ensure you correctly set the paths for this task to avoid unintentionally large amounts of copy data.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
copyCounter java.lang.String ${countOfCopiedFiles} true The name of the output counter, which can pass the return value from the task. This will be the count of copied items. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter ${countOfCopiedFiles}. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filesetExcludes java.lang.String false ANT FileSet Style list of files to exclude. filesetIncludes java.lang.String **/* false ANT FileSet Style list of files to include. overwrite java.lang.Boolean false true Overwrite existing files even if the destination files are newer. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. source java.lang.String /tmp/path/to/copy/from false The full path to the copy source. If the source is inside the project deployment package, reference the path using${ARCHIVE_ROOT}/path/to/source.
targetDir java.lang.String /tmp/path/to/copy/to true The full path to the copy target directory.
targetFile java.lang.String /tmp/path/to/copy/to true The full path to the copy target file.

## Usage

Files consist of two parts: the data part and the filename part. The data part is associated with something called an 'inode'. The inode carries the map of where the data is, the file permissions, etc. for the data.

More than one filename can reference the same inode number; these files are said to be 'hard linked' together. A hardlink then is a directory entry (a file) pointing to the same inode as another file.

Changing any data in any of the linked files will change the data in the inode, and therefore the data for all files referencing that inode.

Even if you change the name of the target file, a hardlink still points to the file.

When you delete a file it removes one link to the underlying inode. The inode is only deleted when the last link to the inode has been deleted.

With hardlinks you don't have concept of the original files and links, all are equal (think of it as a reference to an object).

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
outputParameter java.lang.String ${hardLink} false The name of the output parameter, which can pass the return value from the task. The output will be the created hard link. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${hardLink}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. sourceLink java.lang.String /tmp/path/to/link/from false The full path to the hard link file source. targetFile java.lang.String /tmp/path/to/link/to false The full path to the target (of the hard link) file target. Back to Top ## Create a Symbolic Link  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.CreateSymLinkTask Category File - Operations # Create a symbolic link. ## Description This task creates a symbolic link from the sourceLink path to the targetFile. ## Usage ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. outputParameter java.lang.String${symLink} false The name of the output parameter, which can pass the return value from the task. The output will be the created link. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter${symLink}.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
targetFile java.lang.String /tmp/path/to/link/to false The full path to the target (of the symbolic link) file target.

# Delete Task using ANT Filesets.

Supports: archiveRoot

## Description

This task deletes a file or directory from a target location using ANT filesets.

## Usage

Warning: This task may recursively delete directories on the target server. You must ensure you correctly set the paths for this task to avoid unintentionally deleting data and potentially rendering the target server unusable.

## Usage

Setting the following parameters:
                     				targetDirectory: /tmp/test
fileSetIncludes: **/*.py
dateSelector:    12/31/2011 12:00 AM
timeComparison:  BEFORE

Will recursively delete all files ending in ".py" under /tmp/test, where those files were last modified before 12/31/2011 12:00 AM.
                     				/tmp/test/py/1.py	Modified 12/12/2011	Matches
/tmp/1.py								No Match
/tmp/test/py/1.org						No Match
/tmp/test/py/2.py   Modified 01/01/2012 No Match


## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
compareDirectories java.lang.Boolean false true When performing a date comparison, look at directory dates and delete based on date/time.
dateSelector java.lang.String   true ANT DateSelector date. If specified, this date is used in the selection, together with the specified timeComparison. The date time is in the format MM/DD/YYYY HH:mm AM_or_PM, for example 12/31/2000 12:00 AM. Used by the timeComparison parameter, if set, to determine which files to delete based on date
outputParameter java.lang.String ${listOfFiles} false The name of the output parameter, which can pass the return value from the task. This will be either all files, all directories or both files and directories under specified directory matching the fileset parameters. Each file entry will be separated by the outputSeparator. The task output will be the list of files matching the entered criteria. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter ${listOfFiles}. outputSeparator java.util.List newline false The delimiter between each file entry returned in the outputParameter. Please note space should not be used if their is the possibility of spaces in the filename or path. showFullFilePaths java.lang.Boolean false true Set true if you want to list files as full path names and false to list only names. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Make Directory  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.MkDirTask Category File - Operations # Make Directory Task ## Description This task creates a given directory at the specified path, together with any required but nonexistent parent directories. If the specified path already exists, no action is taken. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. path java.lang.String /tmp/path/to/make true The full path to the directory to create. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. unixPath java.lang.String /tmp/path/to/make true If path is not set and BOTH unix and windows paths are set, then the system will determine which path to use based on the target operating system. windowsPath java.lang.String c:\temp\path\to\create true If path is not set and BOTH unix and windows paths are set, then the system will determine which path to use based on the target operating system. Back to Top ## Move a Fileset  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.MoveTask Category File - Operations # Move Task ## Description Moves a file or directory to a new file or directory. By default, the destination file is overwritten if it already exists. ## Usage When overwrite is set to false, then files are only moved if the source file is newer than the destination file, or when the destination file does not exist. When preserve is set to true, file attributes of the moved files are preserved as far as possible. Specifically, the last modified time of the original file is preserved. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description destinationDirectory java.lang.String true The destination directory for the move. destinationFile java.lang.String true The destination file for the move. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filesetExcludes java.lang.String false ANT FileSet Style list of files to exclude from the move (if source is a directory). filesetIncludes java.lang.String **/* false ANT FileSet Style list of files to include in the move (if source is a directory). flatten java.lang.Boolean false false Ignore directory structure of source directory, copy all files into a single directory, specified by the destination (default is "false"). includeEmpty java.lang.Boolean true false Copy empty directories (default is "true"). moveCounter java.lang.String${countOfMovedFiles} true The name of the output counter, which can pass the return value from the task. This will be the count of moved items. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter${countOfMovedFiles}.
overwrite java.lang.Boolean true false Overwrite existing files even if the destination files are newer (default is "true").
preserve java.lang.Boolean false false Give the moved files the same last modified time as the original source files (default is "false").
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
source java.lang.String /path/to/source true The source file or directory to move.
verbose java.lang.Boolean true false Log the files that are being moved (default is "true").

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String   true The full path to the file you want to read.
outputParameter java.lang.String ${fileContent} false The name of the output parameter, which can pass the return value from the task. The task output will be the script output value. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter ${fileContent}. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Simple Backup in-situ  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.BackupTask Category File - Operations ## Description Create a backup of a file, a list of files or a directory. The backup is stored in a directory with the same name as the file (minus any file extension). If the file has no extension, or is a directory, the backup directory is suffixed with "_backup". ## Usage ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description backupPath java.lang.String /tmp/path/to/backup true The full path to be backed up. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. retainedCopies java.lang.String 0 true The integer value represents the number of rolling file revisions to retain in the backup. If set to 0, backups are not performed. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Simple Copy  Class Name com.midvision.rapiddeploy.orchestration.tasks.CopyTask Category File - Operations # Copy Task. Supports: archiveRoot operationDir ## Description This task copies a file or directory from a source location to a target location. The source and/or target can be located in the expanded Archive. The target directory will be created if it does not already exist. ## Usage Warning: This task may recursively copy directories on the target server. You must ensure you correctly set the paths for this task to avoid unintentionally large amounts of copy data. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description copyCounter java.lang.String${countOfCopiedFiles} true The name of the output counter, which can pass the return value from the task. This will be the count of copied items. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter${countOfCopiedFiles}.
copySource java.lang.String /tmp/path/to/copy/from false The full path to the copy source. If the source is inside the project deployment package, reference the path using ${ARCHIVE_ROOT}/path/to/source. copyTarget java.lang.String /tmp/path/to/copy/to false The full path to the copy target. If the target is inside the project deployment package, reference the path using${ARCHIVE_ROOT}/path/to/target.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
onlyIfNewer java.lang.Boolean false true Only copies the file if the source is newer than the target.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
sourceRelativeToOperationDir java.lang.Boolean false true If true, the copySource is relative to the OperationDir, from an expanded EAR file
targetRelativeToOperationDir java.lang.Boolean false true If true, the copyTarget is relative to the OperationDir, from an expanded EAR file

## Description

If the path specified is a directory, all files and subdirectories under this directory will be removed.
If the path specified is a file, this file will be removed.

## Usage

Warning: This task may recursively delete, irreversibly, directories on the target server. You must ensure you correctly set the paths for this task to avoid unintentional, permanent loss of data.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
deleteCounter java.lang.String ${countOfDeletedFiles} true The name of the output counter, which can pass the return value from the task. This will be the count of deleted items. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the task flow, as an input parameter ${countOfDeletedFiles}. deletePath java.lang.String /tmp/path/to/delete false The full path to the file or directory to delete. deletePathUnix java.lang.String /tmp/path/to/make true If path is not set and BOTH unix and windows paths are set, then the system will determine which path to use based on the target operating system. deletePathWindows java.lang.String c:\temp\path\to\delete true If path is not set and BOTH unix and windows paths are set, then the system will determine which path to use based on the target operating system. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Simple Touch  Class Name com.midvision.rapiddeploy.orchestration.tasks.TouchTask Category File - Operations # Touch Task. Supports: operationDir ## Description Touch files in a directory. The files will be "touched", i.e given the current date/time stamp. ## Usage This is very useful where deployed code is a backout version where JSP files have an earlier date/time stamp. This task forces a browser reload. Without it browsers may still have JSP's from the later (backed out) release cached - resulting in unexpected behaviour. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description directoryToSearch java.lang.String /tmp/path/to/search true The directory below which the search is performed. - If this is set to "operationDir", the search is performed on the expanded ear file for a WebSphere, JBoss or Weblogic deployment or another expansion task that adds this variable to the task list. failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. fileExtensions java.lang.String jsp false File extensions to match. All others will be ignored. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. Back to Top ## Synchronize two folders  Class Name com.midvision.rapiddeploy.orchestration.tasks.utils.SyncFoldersTask Category File - Operations # Synchronize two folders. ## Description This task synchronizes two folders, sourceFolderPath and targetFolderPath. The logic of the sync operation dependes on the mode, as follows: OVERWRITE_ALL - Copy source to target. Overwrite files in the target. Any files in source, not present in target, are added to target. Existing files in target, also present in the source, are overwritten. Existing files in the target, not present in the source, are ignored. OVERWRITE_NEWER - Copy source to target. Overwrite files in the target only where the source files are newer. Any files in source, not present in target, are added to target. Existing files in target, also present in the source, are overwritten by source only if they are newer in the source. Existing files in the target, not present in the source, are ignored. REPLACE - Delete and replace target with source. Target is deleted and replaced with source. Any new files in the target are lost. Any updated files in the target are lost. SYNC_BOTH - Any files in source, not present in target, are added to target. Any files in target, not present in source, are added to source. Any files in both target and source are synchronised, with the newest version of the file taking precedence. Any files deleted in source are deleted in target. Any files deleted in target are deleted in source. ## Usage Warning: This task may recursively copy directories on the target server. You must ensure you correctly set the paths for this task to avoid unintentionally large amounts of copy data. ## Parameters The following parameters may be set on this task: ### Table of task Parameters Name Type Default Value Optional Description failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false. filesetExcludes java.lang.String false ANT FileSet Style list of files to exclude. filesetIncludes java.lang.String **/* false ANT FileSet Style list of files to include. mode java.util.List SYNC_BOTH false One of: OVERWRITE_ALL,OVERWRITE_NEWER,REPLACE,SYNC_BOTH. skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not. sourceFolderPath java.lang.String /tmp/path/to/sync/from false The full path to the sync source. If the source is inside the project deployment package, reference the path using${ARCHIVE_ROOT}/path/to/source.
targetFolderPath java.lang.String /tmp/path/to/copy/to false The full path to the sync target directory.

## Description

This task touches (changes the timestamp of) a file or directory from a target location using ANT filesets.
You can specify either a single file (targetFile) to touch, or a directory (targetDirectory) and filesets. You should not specify both a targetDirectory and a targetFile
If you specify a single file that doesn't exist, it will be created.
If you specify a directory and filesets, the directory must exist. All files matching the fileset under the specified directory will be touched.

## Usage

Warning: This task may recursively touch files (change the timestamp) on the target server. You must ensure you correctly set the paths for this task to avoid unintentionally changing data.

## Usage

Setting the following parameters:
                     				targetDirectory: /tmp/test
fileSetIncludes: **/*.py
dateTime:    12/31/2011 12:00 AM
verbose:  true
createDirectories: true

Will recursively touch all files ending in ".py" under /tmp/test, and give those files last modified date/time of 12/31/2011 12:00 AM.
                     				/tmp/test/py/1.py						Matches
/tmp/1.py								Matches
/tmp/test/py/1.org						No Match
/tmp/test/py/2.pyl   					No Match


## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
createDirectories java.lang.Boolean false true Create parent directories when creating the file in the file mode of operation.
dateTime java.lang.String   true ANT DateSelector date. If specified, this date is used to set the date/time of the file. The date time is in the format MM/DD/YYYY HH:mm AM_or_PM. If left blank, defaults to the current date/time at the point the touch operation is performed.
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filesetExcludes java.lang.String   true ANT FileSet Style list of files to exclude from the touch.
filesetIncludes java.lang.String **/* false ANT FileSet Style list of files to include in the touch.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
targetDirectory java.lang.String   true The full path to the target directory. The directory must exist.
targetFile java.lang.String   true The full path to the target file. If this parameter is set and the file does not exist at the target, it is created as an empty file.
verbose java.lang.Boolean false true Selects verbose log output from the operation.

## Description

This task writes given content into specified file.

## Parameters

The following parameters may be set on this task:

Name Type Default Value Optional Description
failOnError java.lang.Boolean true false This task will not fail the deployment on error if set to false.
filePath java.lang.String   true The full path to the file you want to write.
inputString TextArea   false The content you want to write into specified file.
skipOnFailure java.lang.String Previous Task Name true Skip current task based on the name of the previous task whether has failed or not.
writeMode java.util.List Overwrite false Specify what to do if the file already exists. Allowed values: Overwrite, Skip, Append.

## Description

outputParameter java.lang.String ${osInfo} false The name of the output parameter, which can pass the return value from the task. The task output will be the script output value. Define a unique parameter name starting with '${', ending with '}' for the whole orchestration (latter tasks can override the parameter value if the same parameter name is specified). You can refer to this parameter in any task below in the tasklist, as an input parameter \${osInfo}.