My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
Libraries  
Details of the libraries that are needed to compile and deploy the system.
Updated Dec 12, 2010 by darren.pearce

If you have checked out the latest version of the Java repository (either trunk/java or branches/full) then you will need this page. It details all the libraries that the code depends on. These are not part of the repository since it is bad practice to commit binaries to a version control system. In view of this, you must obtain all of these libraries yourself and ensure that they are on your classpath. The aim of this page is to help you do this.

Some of the required libraries are only needed for compilation; others are needed for both compilation and deployment, i.e. they are actually packaged up within our zipped distribution. The build process for any of the various pieces of software specifies the libraries that need to be deployed. All of these 'deployed libraries' have a consistent format as follows:

<basename>-<version>.jar

This convention is in place to ensure that we are all using the exact same versions of the jars. (Note that this convention only applies to deployed jars. We could apply it to the other libraries but there is no huge need for this since if the wrong library is used, this will very clearly be indicated as a compile error or similar.)

Each required library is listed below with a description, an explanation of how it can be obtained, why it is required by the codebase as well as its status within the codebase. This can be either 'Temporary' or 'Permanent'. 'Temporary' means that the library was included for code that will eventually disappear from the head of the repository. 'Permanent' means that it is envisaged that the library will be used for the foreseeable future.

In several cases, libraries have had to be renamed. For some, this is due to the naming convention for deployed libraries. For others, this is due to name clashes (e.g. for the XMLRPC facilities). This renaming is indicated where appropriate.

  1. derby-10.5.3.0

    derbynet-10.5.3.0

    derbyrun-10.5.3.0

    derbyclient-10.5.3.0

    derbytools-10.5.3.0.jar
    • Description
      • These are the 100% Java implementation of a relational database that we will be using both on the server and, potentially, on the client.
    • Origin
      • These jars are in the latest release of JavaDB. Install it and extract the jars into your lib dir.
    • Need
      • The server needs to be backed by a database. This provides that functionality with no installation overhead (unlike MySQL, for example). The client may also use this functionality further down the line.
    • Status: Permanent
  2. ant-contrib-0.6.jar
    • Description
      • This provides some additional ant tasks such as for and foreach.
    • Origin
      • This is the last pre-1.0beta version of the library. You can obtain it from the ant-contrib web-site.
    • Need
      • This is needed so that our build file can be a little more sophisticated. The build file expects it to be in the lib dir.
    • Status: Permanent
  3. apache-xmlrpc-1.1.jar
    • Description
      • This provides facilities for using RPC over XML.
    • Origin
      • This is an old version of the library.
    • Need
      • This was needed due to the short-term work on implementing the wizard-of-oz functionality.
    • Status: Temporary
  4. com.noelios.restlet-1.1.2.jar

    org.restlet1.1.2.jar
    • Description
      • This is the Noelios implementation of the Restlet framework.
    • Origin
      • These two jars can be downloaded here from the Restlet web-site.
    • Need
      • The implementation uses a server/client framework called Restlet. This is one of the required libraries.
    • Status: Permanent
  5. log4j-1.2.15.jar
    • Description
      • Provides logging facilities for documenting actions within the software.
    • Origin
      • This can be downloaded here from the Apache web-site.
    • Need
      • The original ShapeBuilder code and the new eXpresser code makes of log4j which provides logging facilities.
    • Status: Temporary
  6. redstone-xmlrpc-1.1.jar

    redstone-xmlrpc-client-1.1.jar
    • Description
      • Provides facilities for RPC over XML.
    • Origin
      • These two jars can be downloaded from the redstone-xmlrpc project at Sourceforge here.
    • Need
      • Some earlier work for the client/server architecture made use of this library.
    • Status: Temporary
  7. jnlp.jar
    • Description
      • This library contains various facilities supporting deployment using Java Web Start.
    • Origin
      • Assuming you have a JDK installed, you should find this in: <jdk-home>/sample/jnlp/servlet where <jdk-home> is the top-level of your JDK installation directory.
      • If you don't have a JDK installed, you can download it here.
    • Need
      • Although the system can currently be deployed as a standalone Java application, it can also be deployed using Java Web Start (link to instructions).
      • Since various parts of the codebase use Java Web Start classes, this library must be on your classpath.
      • Note that this jar does not need to be deployed since if the system is deployed using Java Web Start, it is executed in an environment in which the necessary classes are available.
    • Status: Permanent
  8. ant.jar
    • Description
      • This library contains various core classes used by Ant.
    • Origin
      • Assuming you are using Eclipse, you should find this in: <eclipse-dir>/plugins/org.apache.ant_<version>/lib where <eclipse-dir> is your Eclipse installation directory and <version> is whatever version of Ant that comes with your particular version of Eclipse.
      • If you are not an Eclipse user, you can download and install Ant (if you haven't already) and ensure that ant.jar is on your classpath.
    • Need
      • The software release mechanism makes use of a bespoke task called ReleaseVersionString which ensures that your entire working directory is 'clean' before allowing the software release to proceed.
      • This class requires the Task and BuildException classes that are in the library.
    • Status: Permanent
  9. junit.jar
    • Description
      • This provides various facilities that assist in creating test rigs for Java code.
    • Origin
      • Support for adding junit to your classpath is built in to Eclipse. Do the following:
        1. Select your project directory.
        2. Go to Project-->Properties.
        3. Click on the 'Libraries' tab.
        4. Click on the 'Add Library' button.
        5. Select 'JUnit'
        6. Select version 'JUnit 4'
        7. Click 'Finish'
      • Note that this sequence of actions is for Eclipse 3.4 (Ganymede). It may be slightly different for other versions of Eclipse.
      • Note that this works almost identically to adding ant.jar but Eclipse provides a neater user interface for it rather than forcing the user to dig down into the plugins directory explicitly.
    • Need
      • JUnit is used throughout the codebase for unit testing.
    • Status: Permanent
Powered by Google Project Hosting