Overview

Building DbUnit is quite simple. You need the following software installed:

Once you have them all, you can build DbUnit by just typing mvn! Anyway, the items below describe every step.

If you wish to work on the latest DbUnit source code, you also may want to install a Subversion client.

Installing the Oracle JDBC driver

DbUnit includes a dependency on the Oracle JDBC driver, which is not available in a public Maven repository. You must download the JAR manually and install it into your local Maven repository.

Note: This dependency is required to compile DbUnit. It is not required to run DbUnit, unless you're actually using Oracle.

  1. Point your web browser to http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html. (Or Google "Oracle JDBC download" if this link breaks.)
  2. Download the Oracle Database 10g Release 2 (10.2.0.4) JDBC Driver for JDK 1.4 and 1.5 (ojdbc14.jar).
  3. Install it into your Maven repository with:
    mvn install:install-file \
    -Dfile=ojdbc14.jar \
    -DgroupId=com.oracle \
    -DartifactId=ojdbc14 \
    -Dversion=10.2.0.4.0 \
    -Dpackaging=jar \
    -DgeneratePom=true
    

    (If you're using Windows, you need to put the whole command on one line, without the backslashes.)

Generating the JAR

  1. Install Java SE SDK 1.4+, Maven 2 and the Oracle JDBC Driver.
  2. Download DbUnit code, either current or released source (see Quick Links on left menu)
  3. On the root directory, simply type mvn in the command line. (If you need to clean up the binaries, run mvn clean install instead.) The jar file will be generated in the target directory.

Creating the site

Run mvn site:site in the command line; the site will be available on target/site/index.html. Note that you might get an OutOfMemoryExceptionError; if that happens, you must increase the heap size through the MAVEN_OPTS variable (for instance, on Unix systems, you could run MAVEN_OPTS=-mx512M mvn site:site).

Using an IDE

As DbUnit uses Maven, it is not necessary to store IDE-specific information in the source repository. Instead, these meta-data can be dynamically generate by Maven. For instance, to create an Eclipse project, it is just a matter of typing mvn eclipse:eclipse. See more details on Maven Eclipse Plugin, Mevenide for NetBeans, and Maven IDEA plugin respectively. Further the m2eclipse Plugin might be of interest to you

Contributing patches

If you are building DbUnit in order to contribute a patch, it is necessary to compile it using Java SE 1.4, which takes 3 adittional steps:

  1. Create an environment variable called JAVA_1_4_HOME pointing to the root of the Java 1.4 installation
  2. Download JDBC JDBC 2.0 Optional Package Binary
  3. Run the command mvn install:install-file -DgroupId=javax.sql -DartifactId=jdbc-stdext -Dversion=2.0 -Dpackaging=jar -Dfile=_path_to_the_jdbc_2_0_stdext_jar_
  4. Run Maven using the official profile, i.e., mvn -Pofficial clean install. You should also generate the IDE meta-data using this profiling (for instance, mvn -Pofficial eclipse:eclipse), and configure your IDE to use Java 1.4 for that project
  5. Once you finish your modifications, run svn diff > name_of_the_patch_file (or use your IDE) to generate a patch file and submit it on DbUnit SourceForge site. Do not forget to include test cases!

Maintenance tasks

The tasks below describe how to maintain DbUnit. Some of these tasks will use ssh to upload files to SourceForge, so it is necessary to setup your environment to allow it (typically using ssh-agent - see more details on SourceForge). Also notice that in 2008 SourceForge changed the way it provides shell access, so you need to create a temporary shell for your user before using ssh (see instructions here.

2009-09-28 TODO: The two links above are dead. This section needs to be revised.

Updating the repository and site

Once new code is incorporated in the SVN code, it is necessary to update the Maven 2 repository with new snapshots, and also update the site. These 2 tasks can be done with a simple command:

mvn -Pofficial clean source:jar javadoc:jar deploy site:site site:deploy

Cutting a release

Cutting a release requires the following steps: creating a SVN tag, generating the artifacts, updating the site, uploading the artifacts into SourceForge, uploading the artifacts on ibiblio, and sending the announcement emails.

Fortunately, most of the steps can be automated by Maven. The first 3 steps can be achieved using Maven Release Plugin, as follow:

mvn -Pofficial release:prepare

and then:

mvn -Pofficial release:perform

That last command has created all necessary files for the fourth and fifth steps in the target/checkout/target directory. So, for the fourth step, log in to SourceForge and upload the following files:

  • dbunit-RELEASE.jar
  • dbunit-RELEASE-sources.jar
  • dbunit-RELEASE-javadoc.jar

And for the fifth step, create a Jira request and upload the XXX/target/dbunit-RELEASE-bundle.jar) file (see Guide to uploading artifacts to The Central Repository for detailed instructions). NOTE: it is also necessary to create dbunit-RELEASE.tar.gz and dbunit-RELEASE.zip - I think Maven does that, but could not test by the time of the 2.2 release.

The final step can also be done by Maven, using the Maven Changes Plugin:

mvn changes:announcement-mail

Note that it is nice to change the release's introduction message first - look for the plugin's introduction parameter in the pom.xml; please change such an element before tagging the release.

Fixing a bug/request

Every time a bug is fixed (or request is implemented), it is necessary to update the src/changes/changes.xml file.