This topic explains how to build a custom integration to any source control system you want to integrate with C++test (e.g., for code review, scope filters and authorship detection — see Connecting to Source Control for details).
C++test provides builtin support for most common version control / source control systems (e.g, SVN, CVS, Subversion, ClearCase etc.) as described in Connecting to Source Control. In addition, it provides an open Source Control API, which allows other source control tools to be integrated with C++test.
Sections include:
Adding a Custom Source Control Implementation
The C++test online help system provides a Source Control API topic that includes Javadoc documentation for all classes and interfaces that must be implemented. You can also find this Javadoc in the Parasoft Test installation directory at [INSTALL_DIR\plugins\com.parasoft.xtest.sourcecontrol.eclipse.core\javadoc\openapi.API Javadoc (Eclipse only)
Main Interfaces
The interface that connects and creates all required implementation is com.parasoft.xtest.sourcecontrol.openapi.IVersionControlFactory.
This factory provides specific implementation for the following interfaces:
- com.parasoft.xtest.sourcecontrol.openapi.IRepositoryDetector
- com.parasoft.xtest.sourcecontrol.openapi.IVersionControl
- com.parasoft.xtest.sourcecontrol.openapi.IVersionControlHelper
Implementation and Compilation
The source control API and all related classes are located in the jar file at [INSTALL_DIR]\plugins\com.parasoft.xtest.libs/Parasoft/sourcecontrol.jar.
Before you can compile, you may need to add the following additional jar files to your classpath:
- [INSTALL_DIR]\com.parasoft.xtest.libs/Parasoft/util.jar
- [INSTALL_DIR]\com.parasoft.xtest.libs/Parasoft/common.jar
- [INSTALL_DIR]\com.parasoft.xtest.libs/Parasoft/preference_api.jar
To implement a custom integration:
- Create a project in any location.
- Add the required jars to the project's classpath.
- Start implementing custom version control support. Begin with the IVersionControlFactory implementation and incrementally add the required classes.
Deployment and Verification
After implementation is completed:
- Create a single jar file containing all of the required classes. There are no specific rules concerning the jar file name or package names etc.
- Copy your jar file into your Parasoft Test installation directory and restart C++test. The installation directory is:
- Eclipse: [INSTALL_DIR]\plugins\com.parasoft.xtest.sourcecontrol.eclipse.core\ext
- Visual Studio: [INSTALL_DIR]\com.parasoft.xtest.libs.vstudio/ext
- Verify the implementation as follows:
- Choose Parasoft> Preferences> Source Control.
- Ensure that Use DTP settings is cleared.
- Verify that a checkbox with your implementation name appears among the builtin version controls.
- Select the checkbox for your implementation, click New, add the required properties, and then click Apply.
- Go to the Preferences> Scope and Authorship page and verify that Use source control to compute scope is enabled.
- Open a file controlled by your version control system, right-click anywhere in the file’s source code, then choose Show author at line. You should see valid version control author information.
Sample Implementation
C++test provides a sample implementation for the Source Control Open API. A zipped package is located in [INSTALL_DIR]\plugins\com.parasoft.xtest.sourcecontrol.eclipse.core\openapi\demo\.
After you extract the open_api_demo.zip file, the following directory structure should be created:
- open_api_demo/demo.jar - Contains a compiled version of the demo source control implementation for Eclipse.
- open_api_demo/demo.dll - Contains a compiled version of the demo source control implementation for Visual Studio 2005 or later.
- open_api_demo/src/* - This is the source code for the Open API demo implementation.
- open_api_demo/local_repository/* - This is a sample Eclipse project for demonstration purposes.
The demo was compiled using JDK 1.6.0_29.
You can compile and deploy it using the procedures described in the preceding section.
To play with the demo:
- Deploy the demo.jar file.
- Unpack the local repository to any location.
- Restart C++test.
- Import the demo local repository project into your workspace.
- Under Parasoft> Preferences> Source Control, enable the demo implementation.
- Open a file, right-click anywhere in the file’s source code, then choose Show author at line. You should see valid version control author information.