Alexandria

About

References

Workspace Definition

Alexandria's main configuration file is the workspace.xml file. This file contains details of all the repositories Alexandria will use. Each repository contains a list of modules which Alexandria will display.

  • <workspace> - Root element in the workspace definition.
    • @version - The version number of the workspace schema.
  • <repository> - Defines a repository to be used in the workspace.
    • @href - Location of the repository definition.
  • <project> - Project to be included in this workspace.
    • @href - Location of project definition.
    • @tag - Repository tag for to be used for the build.
  • <nav-page> - Navigation page to be generated from the workspace.
    • @style - Location of the style sheet.
  • <build-sheet> - Style sheet used to format the output of ant builds.
    • @style - Location the style sheet.
  • <clog-sheet> - Style sheet used to format the output of the change log task.
    • @style - Location of the style sheet.
  • <blame-sheet> - Style sheet to be use for the formatting of blame logs.
    • @style - Location of the style sheet.
    • @size - Number of items to keep in the blame log.

Example Workspace Definition:


<?xml version="1.0" encoding="ISO-8859-1"?>

<workspace version="0.2">
  <!-- Respository definitions -->
  <repository href="repositories/jakarta.apache.org.xml"/>
  <repository href="repositories/xml.apache.org.xml"/>

  <!-- Project definitions -->
  <project href="projects/Alexandria.xml"  tag="HEAD"/>
  <project href="projects/Jetspeed.xml"    tag="HEAD"/>
  <project href="projects/Ant.xml"         tag="HEAD"/>
  <project href="projects/Xalan.xml"       tag="HEAD"/>
  <project href="projects/Cocoon.xml"      tag="HEAD"/>
  <project href="projects/Cocoon.xml"      tag="xml-cocoon2"/>
  <project href="projects/Stylebook.xml"   tag="HEAD"/>
  <project href="projects/FOP.xml"         tag="HEAD"/>

  <!-- Navigation pages -->
  <nav-page style="xsl/links.xsl"          out="html/links.html"/>
  <nav-page style="xsl/right.xsl"          out="html/right.html"/>
  <nav-page style="xsl/top.xsl"            out="html/top.html"/>
  <nav-page style="xsl/left-basic.xsl"     out="html/left-basic.html"/>
  <nav-page style="xsl/left-advanced.xsl"  out="html/sidebar/content.js"/>

  <!-- Output style sheets -->
  <build-sheet style="xsl/blog.xsl" />
  <clog-sheet  style="xsl/clog.xsl" />
  <blame-sheet style="xsl/blame.xsl" size="50" />
</workspace>
Repository Definition

The repository definition is used to define the source code repositories used within workspaces.

  • <repository> - root element for the repository definition.
    • @name - name used to identify a repository within a workspace.
    • @type - type of repository (currently local or cvs).
  • <title> - title for the repository.
  • <root> - location of the root of the repository.
  • <home-page> - home page for the repository.
  • <password> - password used to access the repository.
  • <cvsweb> - web view of the repository.
  • <description> - description for the repository.

Example Repository Definition:

<?xml version="1.0" encoding="ISO-8859-1"?>

<repository name="jakarta.apache.org" type="cvs">
  <title>jakarta.apache.org</title>
  <root>:pserver:anoncvs@jakarta.apache.org:/home/cvspublic</root>
  <home-page>http://jakarta.apache.org/</home-page>
  <password>anoncvs</password>
  <cvsweb>http://jakarta.apache.org/cvsweb/index.cgi/</cvsweb>
  <description>The Jakarta Project Source Repository</description>
</repository>

Project Definition

Project defines a project with can be used within a workspace.

Since a project definition describe details of a project it is conceivable that a project definition could have uses outside of Alexandria where a description of a group of code is required. A possible use for may be to allow a process download build and configure code from a single URL.

  • <project> - root element for the project definition
    • @repository - repository to retrive project source code from
    • @opensource - denotes that the source code should be displayed
  • <title> - title of the project
  • <module> - module name used to identify the project within a repository
  • <license> - license under with the project is distributed
    • @href - Location of the license
  • <description> - description of the project
  • <javasrc> - root of java src for the project
  • <build> - build definition for the project
    • @file - ant build file to be used to build the project (defaults to build.xml)
    • @target - ant target to be used to build the project (defaults to the default in the build file)
    • @classpath - classpath to be used by ant when building the project
    • <arg> - ant build parameter to be used by the build
      • @name - name of the parameter
      • @value - value for the parameter
  • <test> - test definition for a project
    • @file - ant build file to be used to test the project
    • @target - target to be used to test the project
    • @classpath - classpath to be used by ant when testing the project
  • <arg> - ant build parameter to be used by the build
    • @name - name of the parameter
    • @value - value for the parameter
  • <depend> - defines a dependency on another project in the workspace
    • @project - name of the project
  • <option> - defines an optional dependency on another project in the workspace
    • @project - name of the project
  • <jar> - defines an outputted jar from this project
    • @name - name of the jar
  • <project> - project can be nested within each other to define subprojects

Example Project Definition:

<?xml version="1.0" encoding="ISO-8859-1"?>

<project repository="jakarta.apache.org" opensource="true">
  <title>Alexandria</title>
  <module>jakarta-alexandria</module>
  <license>ASL</license>
  <description>Internet content management system</description>
  <home-page>http://jakarta.apache.org/alexandria/</home-page>
  <javasrc>src/java</javasrc>
  <build file="build.xml">
    <arg name="build.dir" value="../build"/>
  </build>
</project>
AlexandriaResources.properties

Options which are not directly related to repositories are stored in the AlexandriaResources.properties file.

# Destination directory for JXR output
jxr.destination.directory=/var/www/html/content/html/jxr

# images for JXR.  These are actually copied over to the desired location so a
# file is required here.
jxr.image.file=content/html/file.gif
jxr.image.folder=content/html/folder.gif

# Directory where Alexandria does its CVS checkouts to.
cvs.checkout.directory=/var/www/html/content/cvs

# Size of blame history
blame.size=50

Copyright © 1999-2001, Apache Software Foundation