Apache Hama
Copyright 2008-2012 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes JUnit under the Common Public License Version 1.0
See http://www.junit.org/

This product includes SLF4J software developed by QOS.ch. 
Copyright c 2004-2008 QOS.ch. All rights reserved.

The javax.servlet package used by Jetty is copyright 
Sun Microsystems, Inc and Apache Software Foundation. It is 
distributed under the Common Development and Distribution License.
See https://glassfish.dev.java.net/public/CDDLv1.0.html.

Compression support provided by snappy-java
See http://code.google.com/p/snappy-java/

This product includes software developed by the Google Guava project.
Copyright (C) 2009 Google Inc.
See http://code.google.com/p/guava-libraries/

This product includes software developed by the Jackson project.
Copyright 2010 FasterXML, LLC
See http://jackson.codehaus.org/

