TICS Client Installation

The TICS client is an optional component of the TICS framework that developers can use to check the quality of their code before committing (or pushing) it to the repository.

Installation steps

In order to start using TICS client, you need to install the thin application wrapper on your machine. On each invocation, the wrapper queries the TICS Viewer to determine which particular version of TICS should be used, and will download it to the local machine when not yet present. This means that the wrapper should normally not be updated if you want to start using a new version of TICS. However, sometimes it might be needed to update the wrapper, because of changes or bug fixes to the wrapper itself.

Please take the following steps to install or update the TICS client (wrapper) on your development machine:

  1. Obtain (the location) of the TICS setup program (and optionally an accompanying .ini file) from your system administrator or other TICS representative.
  2. Make sure you have administrator rights.
  3. Run the TICS setup program. The installer has the following name: ticssetup-<version>.exe. In case any options are set in a setup.ini file, such as the location of the TICS Viewer, the installer will not ask for those options. It is important to run the installer from its original location since it may depend on any .ini file being present.
  4. If you are not running with an .ini file, you have to...:
    • Choose the option Multi Server → TICS Client (the option Infrastructure → JRE will automatically be checked).
    • Provide the location of the TICS Analyzer Configuration, which is a URL provided to you by your TICS representative. If the TICS environment variable is already set, you will not be asked for this location.
  5. The installer allows you to optionally install TICS plugins for your IDE(s), for example for Eclipse, Visual Studio, or IntelliJ. These will be automatically selected for installation when they are found on your machine, but the installer allows you to deselect them if needed.
  6. During the installation, the TICS installer will set the TICS environment variable for you, which is a URL pointing at an API endpoint of the TICS Viewer. This URL also contains the name of a TICS Analyzer Configuration. If the location of the TICS Viewer changes or you want to use a different configuration, you should change the value of the TICS environment variable.

    In case your company is still using the legacy TICS deployment architecture, the TICS environment variable will point to a directory on the File Server.
  7. After installation is completed, by default you need to obtain a personal authentication token from the viewer and make it known to the TICS client. Please take the following steps:
    1. Navigate to the TICS Viewer and log in
    2. Go to the User Settings page, accessible from the application drop down menu in the top-left corner.
    3. Choose Authentication Tokens
    4. Optionally choose an expiration date
    5. Click on Download to download a file named tics_client.token
    6. Place the downloaded file in %APPDATA%/TICS (Windows) or in ~/.tics (Linux)

Troubleshooting

When executing TICS, I get an error referring to "PKIX path"

These PKIX path errors come in various forms, such as PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target or
PKIX path validation failed: java.security.cert.CertPathValidatorException: signature check failed.

This happens when the TICS Viewer is using an SSL certificate that is either self-signed or uses a root certificate that is not recognized by the default trust store. To resolve this please see here.

Advanced

Manipulating client-side cache

The TICS framework downloads TICS binaries, code checkers, configuration files to a local cache directory before using them. It may sometimes be desirable to show or remove the local cache. This can be done by invoking the wrapper with the -wrapper flag.

In the examples below, we use the TICS command, but any TICS application (TICSQServer, TICSMaintenance, etc.) can be used to accomplish the same thing.

Showing local caches

The command TICS -wrapper -showcache can be used to show the cache that is available on the client. The output looks as follows:

DIRECTORY                                    CONTENTS      PART OF CONFIGURATION
f7c07954062d90832043efe806884775             lib           yes                  
346be58b99602d0005fdb522ad758dc6             bin           yes                  
0daa2869d4fa142520f7ea99f1b865ae             cfg           yes                  
9c766c48a0264cb6e5e9353135d6382c             rules         yes                  
1cc655ffc7de021b3a20d677dbf21cd9             chk           yes    

The last column indicates whether the directory is part of the current configuration. If TICS has been used for multiple configurations, this may result in directories that are not part of the current configuration.

Removing caches

In order to remove the local cache, the following commands can be used:

The difference between caches that are part of the configuration and caches that aren't can be seen through the command TICS -wrapper -showcache.

Configuring connection retry behavior

If the wrapper fails to query the viewer, it will retry the connection a limited number of times. The connection timeout before a request is aborted, number of connection retries, and the delay between consecutive connection attempts can be configured by providing properties in the wrapper.properties file or by setting environment variables:
SettingEnvironment variablePropertyDefault value
Number of connection retriesTICSCONNECTIONRETRIESconnection_retries10
Delay between connection attempts (in seconds)TICSCONNECTIONRETRYDELAYconnection_retry_delay60
Connection timeout (in seconds)TICSCONNECTIONTIMEOUTconnection_timeout300