Sportwire II: SportPage User Guide

Creating Dynamic Websites with SportPage

Gary Lawrence Murphy

Project Architect
Teledynamics Communications Inc

7 Forest Place
          Sauble Beach 

$Revision: 1.11 $


Sportwire is copyright by the Canadian Broadcasting Corporation. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. This software is provided without warranty and no promises are implied; use at your own risk. The Sportwire project is hosted at and community participation is welcome and encouraged.

$Date: 2002/03/13 18:12:33 $


SportPage is the website presentation component of CBC Sportwire, an archiving and query system for XML documents designed for delivering sports newswire services. The SportPage component is a general purpose Jakarta-Velocity web application template framework, similar to but less complex than Apache Turbine.

The latest edition of this document is available online and as a printable PDF file. For more information on SportPage and the CBC Sportwire news system, please visit the Sportwire home page.

CBC Sportpage is the website presentation component of Sportwire and is primarily designed to deliver the Sportwire news data for the 2002 Winter Olympics website and for the general CBC Sports website.

SportPage was inspired by Apache/Jakarta Turbine. It shares the same Model-View-Controller(MVC) design where website topic areas are defined by the URI, the context can be manipulated based on the URI, and you may create Java classes to be associated to specific URI path points. Unlike Turbine, Sportpage is intended only for public-information websites; there is no concept of a session, no authentication, and, in the current release, database access is via generic JDBC with SQL.

SportPage is designed to meet the following special requirements:

While several other portal and web application systems can provide these facilities, most notably Jakarta Turbine, no existing package could provide all of these features without carrying other overheads such as authentication and forced sessions support.

This paper is intended for website designers and content authors who are using SportPage to present their work. It is not a SportPage developers' Guide. Unfortunately, using SportPage will require some basic knowledge of Java's object-oriented syntax; you need not be able to code in Java, but you need to understand syntax such as item.attribute, and understand how objects provide access to the attribute values of the object (it's current state) and provide methods which either modify the object state, or retrieve more complex information from the object.

[Warning]The Map is Not The Territory

SportPage is an open source project. This means a rapid release cycle and an organic architecture that will evolve over time to meet immediate requirements of the sites deploying SportPage servers, and it means aspects of the project such as documentation and unit testing may not be in sync with the actual code. Even the online API documentation may not be 100% current.

If you plan to deploy SportPage, do not depend on the online documents. The most reliable map can be generated by downloading the latest release or CVS snapshot from the project home page and then generating the API documentation with the Foreign/ script.

[1] the relationship between $layout, $page and $index does place a mild constraint on page templates; because directories cause the page variable to be replaced by the index variable, the master layout template must use at least one #parse($page) call, even if that is the only line in the template.

[2] While this was the goal, in practice, the use of the configuration file definitions for SQL objects requires a servlet container reset, and this requires system admin interventions. On-the-fly reloading of the configuration is on the ToDo list.