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

Apache Projects:   Apache Software License
  Apache Jena, including the Jena IRI library
  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

Dexx Collections
https://github.com/andrewoma/dexx
BSD-Style License
  https://github.com/andrewoma/dexx/blob/master/LICENSE.txt
