Deployment ground rules

General

TPTP only concerns itself with the properties CLASSPATH and ROOTDIR.

Files to be deployed

The files to be deployed at execution time are:

1.      Everything on the class path of the test project except the following file types: .java, .execution, .testsuite, .deploy, .location, .artifact.

2.      Any test assets associated with the Artifact being used for test execution

3.      Property CLASSPATH of the General Properties of the Artifact that is used for test execution.

 

ROOTDIR Considerations

The following procedure is used to calculate ROOTDIR:

Step 1

TPTP first looks on the remote machine for the ROOTDIR location property (if specified); if this exists, then its value is taken as the output from this step.

 

If the ROOTDIR location property has not been specified, or if it has but does not exist on the remote machine, TPTP derives one using the temporary directory found on the remote machine's environment; it looks for LOCAL_AGENT_TEMP_DIR, TEMP, and TMP, in that order, and, whichever is found first is taken as the output from this step.

Step 2

TPTP looks for the USR_NAME location property on the local machine. If this does not exist it pulls the user.name property from Java (System.getProperty("user.name")).

Step 3

TPTP concatenates the outputs from Steps 1 and 2 and takes this to be the ROOTDIR to use.

 

CLASSPATH Considerations

To set up JARs that will be deployed and rooted under your ROOTDIR, set up the CLASSPATH parameter for your artifact; to set up JARs that do not need to be deployed (for instance, they already exist on the location/machine to be deployed to) but still need to be included in the class path, then  set up the CLASSPATH parameter in your location. So the distinction between artifact and location CLASSPATH is whether you want the JAR deployed and referenced or just referenced at the deployment location.

Excluded Libraries

Certain libraries are not deployed even if they are listed in the artifact's class path property. They are:

 

Agent Controller Considerations

Workbench clients before TPTP 3.3 cannot use agent controllers of TPTP 3.3 and beyond (they must continue to use older, pre-TPTP 3.3 agent controllers). Clients of TPTP 3.3 and beyond can use both old and new agent controllers.  In summary, currently, the client/server support in TPTP is the following:

TPTP 3.3+ Clients

Clients >= TPTP 3.3 and Server >= TPTP 3.3 [use new file transfer protocol if unsecured Agent Controller, old file transfer protocol if secure AC]

Clients >= TPTP 3.3 and Server < TPTP 3.3 [use old file transfer protocol for unsecured and secured Agent Controllers]

TPTP Earlier Clients

Clients < TPTP 3.3 and Server >= TPTP 3.3 [this combination does not function due to older clients not understanding new server file transfer protocol]

Clients < TPTP 3.3 and Server < TPTP 3.3 [uses old file transfer protocol for unsecured and secured Agent Controllers]

There were file transfer service changes in TPTP 3.3 and TPTP 4.0 (to enhance the speed of deployment) that caused a new file transfer service protocol to be used, any clients before TPTP 3.3 do not know about this new protocol and therefore test deployment will fail.  Newer clients know about the new and old protocols and therefore deployment will work.

OS Considerations

File Path Naming Conventions

Ensure that any file paths that you set in properties properly reflect the OS naming conventions for the target machine. For example, if you are deploying to a Linux machine from a Windows client, and you have specified ROOTDIR, say,  check that its value is a legal path for Linux.

Absolute Paths

All paths must be absolute. For example, on Windows, "C:\myRootDir" is appropriate and on Linux "/home/user/myRootDir" is appropriate - all paths must be absolute and not relative.