The TiCS client is an optional analyzer component of the TiCS framework that developers can use to check the quality of their code before committing (or pushing) it to the repository.
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 and which particular version of the wrapper (self updating) should be used. These versions will be downloaded 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, in exceptional cases it might be needed to update the wrapper, because of changes or bug fixes that prevent the wrapper from updating itself.
There are different ways to install the TiCS Client:
All installation options depend on the TiCS Viewer. Access to the TiCS viewer might require authentication. Therefore it is needed to obtain an authentication token on beforehand. Please take the following steps to obtain a personal token:
tics_client.token
%APPDATA%\TICS
(Windows) or in ~/.tics
(Linux)
The TICS environment variable 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.
Please take the following steps to install the TiCS client (wrapper) on your development machine:
.ini
file)
from your system administrator or other TiCS representative.
ticssetup-client-<version>.exe
.ini
file, you have to provide:
%APPDATA%\TICS\Wrapper
)
TICS
environment variable is already set, then the TiCS Analyzer Configuration field is
pre-filed with it
.ini
file being present
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 can be found on your machine, but the installer allows you to deselect them if needed
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.
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.
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.
In order to remove the local cache, the following commands can be used:
TICS -wrapper -clearconfigurationcache
, which deletes the cache
for the currently active configuration
TICS -wrapper -clearallcaches
, which deletes the caches for all
configurations
The difference between caches that are part of the configuration and caches
that aren't can be seen through the command TICS -wrapper
-showcache
.
wrapper.properties
file or by setting environment variables:
Setting | Environment variable | Property | Default value |
---|---|---|---|
Number of connection retries | TICSCONNECTIONRETRIES | connection_retries | 10 |
Delay between connection attempts (in seconds) | TICSCONNECTIONRETRYDELAY | connection_retry_delay | 60 |
Connection timeout (in seconds) | TICSCONNECTIONTIMEOUT | connection_timeout | 300 |