Develop the Dependency Tool

This document describes a sample development environment for the Dependency Tool. It is meant to simplify the setup of the environment for people with no experience with the required tools.

You are certainly not forced to use the mentioned tools, i.e. you can use a CVS or SSH client of your personal choice.

Briefly: if you want to develop the Dependency Tool, you have to:

  1. get the sources
  2. compile them
  3. generate project documentation
  4. publish a new release
  5. publish project documentation

In case you should have any questions about the development process, ask Pawel Kowalski .

Get the sources

This project uses cvs as its versioning system. Read this cvsbook if you don't know CVS yet.

You will find very useful information on using CVS for Dependency Tool on the Sourceforge.net About CVS page

Developers without update rights

If you are not yet a developer of the Dependency Tool, you can checkout project sources as an anonymous user. In such case, you only need a CVS-client . After a successfull installation of a cvs-client, follow these instructions to checkout the sources.

Developers with update rights

Developers of the Dependency Tool have to install a CVS-client and a SSH-client , which will be used by the CVS-client to encrypt the data flow between the developer and the CVS-Repository. After a successfull installation of a SSH-client and a CVS-client, follow these instructions to checkout the sources.

SSH client

Install a SSH client.

CVS client

Basicly you can use any CVS client you want. A fairly good GUI CVS-client is the WinCVS.

Link Description Local mirror
WinCVS WinCVS is an easy to use CVS client. To install it, unpack the WinCVS archive and run the setup.exe. In order to checkout project sources from CVS and to commit changes, you have to configure your CVS client to use your installed SSH client.

Here you can see the configuration of WinCVS to use a SSH-client whose binary name is "ssh2.exe":

checkout settings

ssh options
WinCVS archive

Compile

Dependency Tool is a java based tool. You have to install a fully compliant JSDK v1.4 (Java Software Development Kit) or higher in order to develop and compile the tool. JSDK v1.4

Dependency Tool uses standard java 1.4 syntax. It therefore is possible to compile it with every java 1.4 compliant compiler. We use the jikes compiler, which is fast and furious and has nicely formatted output.

Using only the compiler to build this project would be a torture, so we decided to use Apache Ant as a build tool.

JSDK v1.4

Link Description Local mirror
Java SDK The Java 1.4 plattform is used for the development and at runtime of the Dependency Tool.

Get a Java SDK v1.4 or higher from http://java.sun.com and install it according to the included instructions.

jikes

Link Description Local mirror
jikes Jikes is a very fast Java compiler. We use it for compiling the Dependency Tool. Download a copy of jikes.

To install jikes, you have to add the path to where you unpacked the jikes distribution to your system path, e.g.
PATH=%PATH%;d:\jikes\


You don't have to use jikes directly, Ant will do this on your behalf.
get jikes

Apache Ant

Link Description Local mirror
Apache Ant Apache Ant is a fabulous build tool. Download a copy of Ant and follow the instructions included in Ant distribution to install it.

To install it, you have to add a new system variable ANT_HOME and set it to the path, where Ant has been unzipped, e.g.
ANT_HOME=d:\ant
and to add:
PATH=%PATH%;ANT_HOME\bin
to your path.

After a successfull installation of Ant, you can build the Dependency Tool and create its binary distribution by typing (in the dptool root directory):
ant bin
To get an overview of all defined targets type:
ant -projecthelp
get Apache Ant

Generate project documentation

Maven

The developers of the Dependency Tool are not necessarily HTML-gurus but they like nicely formatted project documentation. Maven really helps with this dilemma.

Maven is delivered with a unlicensed version of Clover . However, for the development of the Dependency Tool we got a free license of Clover, read instructions below to get and install it.

Link Description Local mirror
Apache Maven Although it's a complete and great build tool, currenty we use Maven only for generating for generating the project documentation.

Maven requires that a JRE v1.4 (Java Runtime Environment) is installed. The JRE is included in the Java SDK installation, so if you already installed the JSKD to develop this tool, the JRE is already on your machine.

To install Maven, you have to add a new system variable MAVEN_HOME and set it to the path, where Maven has been unzipped, e.g.
MAVEN_HOME=d:\maven
and to add:
PATH=%PATH%;MAVEN_HOME\bin
to your path.

After a successfull installation of Maven, you can generate project documentation by typing (in the dptool root directory):
maven site:generate
Maven will then generate reports on the project and transform xml-formatted project documentation into html. the xml-formatted documentation is in the
[dptool-dir]/current/xdocs
directory.

The entry point to the generated documentation will be:
[dptool-dir]/current/target/Docs/index.html
To get an overview of all Maven goals type:
maven -g
get Apache Maven
Clover Clover is a code coverage tool. Although Maven is delivered with a version of clover, you have to exchange the version of Clover by one, which is licensed exclusively to the Dependency Tool. You may not use this version for code coverage of any other project.

In order to install Clover within your Maven installation, unpack this archive and copy the:
lib/clover.jar
java archive into this directory:
<MAVEN_HOME>/repository/clover/jars/
rename then the
clover.jar
to:
clover-1.2.jar
you then have to replace these lines
  <dependencies>
    <dependency>
      <id>clover</id>
      <version>1.0</version>
      <properties>
        <classloader>root</classloader>
      </properties>
    </dependency>
of the file:
<MAVEN_HOME>/plugins/maven-clover-plugin/project.xml
with
  <dependencies>
    <dependency>
      <id>clover</id>
      <version>1.2</version>
      <properties>
        <classloader>root</classloader>
      </properties>
    </dependency>
get Clover

Publish a new Release

Read the document about the Sourceforge.net File Release System (you need to have admin rights to access this document). This document will describe the procedure to publish a new Release of the Dependency Tool.

Publish project documentation

Read the document about the Sourceforge.net Project Web, Shell and Database Services (you need to have admin rights to access this document). This document will describe the procedure to publish the Project homepage.

In the case of Dependency Tool, Maven will generate the Project Homepage and place it in the

<dptool-dir>/current/target/docs/
directory. Copy the contents of this directory into the
/home/groups/d/dp/dptool/htdocs/
directory on the
shell.sourceforge.net
server.