This file lists the dependences for Apache Jena SDB.
  Version numbers are given in the POM file for a particular distribution. 

Apache Projects:   Apache Software License
  Apache Jena
  Apache Xerces-J
  Apache log4j
  Apache HttpComponents (HTTP Client)
  Apache Commons Codec
  

SLF4J : http://www.slf4j.org/
  Copyright (c) 2004-2008 QOS.ch
  MIT License

JUnit : http://junit.org/
  Common Public License - v 1.0

In addition, JDBC drivers and database engines are needed.

Apache Derbey and HSQLDB are used for testing.
