Torque Source code management

Up to release 3.1.1, Torque used CVS as its source code repository. Most of the older releases still point to the CVS repository at cvs.apache.org. During the 3.2 development cycle, the Torque team (with a few well-meant nudges from the Apache Software Foundation infrastructure team) decided to move the Torque source code from CVS to Subversion.

If you have never worked with Subversion before, please take a look at the free subversion book and also at Source code repositories at the Apache Software Foundation to get more information.

The Torque repository

Unlike some other repositories you might know, Torque makes some use of the svn:externals feature of Subversion to organize its tree. This might lead to some "gotchas", so be warned.

Torque Repository Structure

Here is what the Torque directory structure looks like in SVN:

    db/torque/
      common           <--- contains files common to all components.
                            Referenced by svn:externals
      runtime          <--- contains the runtime component
      generator        <--- contains the generator component
      templates        <--- contains the generator templates component
      maven-plugin     <--- contains the maven plugin component
      maven2-plugin    <--- contains the maven 2 plugin component
      test             <--- contains the test component
      trunks           <--- contains references to the trunks of all 
                            component (via svn:externals)
      site             <--- contains the "frame" of the sources of the
                            homepage (everything not related to a specific 
                            component)
      branches         <--- old branches (pre-3.2)
      tags             <--- old tags (pre-3.2)
      

Runtime, Generator, Templates, Maven 1 Plugin, Maven 2 Plugin

These modules make up the main torque distribution. They are released in regular intervals and are available as binary and source distributions from the Torque download page. Each of these modules is developed on its own Subversion trunk; Tags and Branches are located in the respective .../tags and .../branches subdirectories.

Common

The common module is a special module because it contains files that are needed in all main modules of the Torque source tree. Every module pulls it into its source tree through an external reference and references the files in the common module as /common/...

Please be aware that every change inside this module influences the build process of all the Torque modules!.

Test project

The test project is used by Torque developers to test the functionality of Torque. See the test guide for an explanation of how to run the tests.

Site

The Torque site contains the information global to all Torque releases such as main navigation, download page or the page you're currently reading.

Old CVS tags and branches

All CVS tags and branches that existed before the conversion to Subversion have been preserved. These are only for historic reasons and there will be no more development here. Branches and Tags after the Subversion conversion will be located in the module specific branches/ and tags/ directories.

The trunks module

The Torque subversion repository contains another module for development called trunks. While this module seems quite empty, it is not.

If you want to work on the Torque code base, your best guess will be to check out this module using

svn checkout http://svn.apache.org/repos/asf/db/torque/trunks torque
The resulting directory will contain the trunk locations of all main Torque parts. This also happens through svn:external references.

Multi-Project build

The trunks module also contains a Multi-Project build environment to build all the major parts of Torque in one go.

If you checked out the trunks module from subversion, you can run one of the following goals inside the resulting directory:

  • build -- Builds all parts of Torque
  • install - Builds all parts of Torque and installs the resulting jars and plugins into your local maven repository
  • site -- Builds the documentation sites for all parts of Torque