Read on to learn about the pieces that make up CodeCollaborator and how they interact.

Code Review Components

The Server

As with most enterprise-class software systems, a server process acts as the hub, manager, and controller of information. The server has a web-based user interface where users and administrators can do everything — create and perform reviews, configure personal and system-wide settings and run reports.

Besides the web-based user interface, the server also hosts a Web Services server. This server is integrated into the same web server as the web-based user interface, so no additional configuration is necessary.

The server uses an external database to store all data and configuration. Currently CodeCollaborator supports MySQL, Oracle, Microsoft SQL Server, and an embedded database (Hypersonic) that is useful during trials.

Command-line Client

Developers will typically install the cross-platform command-line client. This tool lets you upload local files (and file-changes) into new and existing reviews. The Command-line client also includes scripting capabilities for implementing custom behaviors and integrating with external systems.

There are many reasons why you might want to integrate CodeCollaborator with other systems. An issue-tracker integration point might let you synchronize CodeCollaborator "defects" with issue-tracker "issues," or you might want to mirror review data (metrics/comments/file-diffs) into the associated ticket. A reporting integration point might let you mirror CodeCollaborator metrics into your existing reporting system (examples: defects/kLOC, defects/man-hour, kLOC/man-hour, number of defects found of different types or severities).

Report-generators will also install the command-line client. We support a rich set of reports in a variety of data formats (HTML, XML, CSV) with appropriate filtering options. You can access these reports through the command-line (as well as through the web-based user interface).

Windows GUI Client

Windows users have the option of installing a graphical client to complement the web-based user interface already provided by the server.

The Windows GUI Client provides all the functionality of the command-line client, but in a graphical interface. The client also supports a larger range of version control systems than does the command-line client.

In addition, the Windows GUI Client gives you a taskbar icon that updates to show you whether you have any pending tasks in CodeCollaborator.

Perforce® Integration

Perforce users will probably want to install the Perforce Client Integration tools. These are included in the command-line installer.

Integration with P4V and P4Win lets developers upload changelists into new or existing reviews just by right-clicking on the changelist. This works on both "pending" and "submitted" changelists.

We also supply a special tool for use as a Perforce server trigger. For example, you can use this to enforce a rule like "Every submit on this branch requires a review." You can also use this to automatically upload all submitted changelists into CodeCollaborator so that you can review code after it has been checked in. This can be especially useful with off-shore development groups.

Eclipse™ Integration

Our Eclipse Plug-in enables users to upload files to new and existing reviews directly from their Eclipse workspace. We also provide a view that updates to show you whether you have any pending tasks in CodeCollaborator.