GJT Design Overview

In terms of giving an overview of the GJT project, it may be easiest to start with a list of the services that are provided by the system, along with the server or programs that implement those services. We will attempt to do that here.
  • Source Code Version Control

    CVS server, jCVS client, and CVSWeb

    The Concurrent Versioning System (CVS) is a free version control system, including a server and several clients. The server runs on the GJT server ''. The recommended client is jCVS. The critical features of CVS are its ability to be distributed across the internet, its ability to support low bandwidth clients, and its strong support. The CVSWeb software is used to present the source code repository on the web for browsing purposes.
  • Package Database

    website, javadoc, doclet

    To facilitate the management, presentation, and searching of the multitude of packages that can accumulate on a GJT, a Package Database is defined along with Package Documenation. The new javadoc facilitates a great deal of this in two ways. It provides for a new "package documentation" file named 'package.html' to provide documentation about a package. It also provides the ability to customize the output of the documentation by allowing for the writing of custom 'doclets' that produce the documentation files. The GJT implements just such a doclet, which is combined with custom tags, to produce a linked series of package pages known as the package database. These web pages facilitate the searching, browsing, and management of packages and their inter-dependencies. The package database is also leveraged to ensure that all dependencies are resolved at compile time.
  • JavaDoc Database

    javadoc, doclet

    The GJT project uses the latest javadoc to produce complete online documentation of all of the packages on the tree. We utilize a custom doclet to modify the standard javadoc output to add a GJT logo and several links, as well as to provide links back to CVSWeb to view the source code or version history.
  • Automated Package Release

    servlet, package server

    The GJT automates the process of releasing packages by using the AutoRad system. AutoRad uses a simple servlet that presents a web page on which the developer enters the package name and release tag. The servlet then communicates this request to the Package Server, which in turn performs all of the processing involved in releasing a package.
  • Release Distribution


    The GJT project attempts to distribute as much of its operation and processing as possible. This is to prepare for the inevitable Giant Java Network, as well as accomodate distributed services. For example, one might wish to place the web server, ftp server, and release processing on entirely different hosts or networks, based on load, bandwidth, and reliability considerations.
  • Mailing List Support

    slist, procmail, mhonarc, servlet

    The GJT provides mailing lists related to the implementation, maintenance, and support of the GJT project, as well as mailing lists for any developer or development projects that require such forums. Slist and procmail are used to implement the mailing lists, and MHonArc is used to convert the mailing list archives for presentation on the website. Finally, a servlet is used to present the mailing lists to the user with forms for subscribing and unsubscribing.
  • Backup and Archival Services

    rsync, FTPSynchronize, mkisofs, CD

    The GJT project uses rsync and FTPSynchronize to automate backups of the source code, website, and all related data. Periodic archives are built using mkisofs, allowing them to be written to CD.

All contents are copyrighted (c) by their respective authors. All rights reserved.
All contents are licensed under the General Public License.