Chukwa, a subproject of Apache Hadoop
Copyright 2009 The Apache Software Foundation

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

Chukwa incorporates a number of components, not copyright by the Apache
Foundation, and under permissive licenses.


Chukwa uses JUnit for testing. JUnit is under the Common Public License: http://junit.sourceforge.net/cpl-v10.html
* Available from http://junit.sourceforge.net/

Script.aculo.us is Copyright © 2005-2008 Thomas Fuchs, under a BSD License
* http://script.aculo.us/

YUI is copyright 2009 by Yahoo, Inc, and distributed under a BSD license.
* Available from http://developer.yahoo.com/yui/

The Prototype AJAX library is freely redistributable.
* http://www.prototypejs.org/

The NagiosAppender library was written by Jar Lyons and is under the Apache License, version 2.0
* Available from http://sourceforge.net/projects/nagiosappender/

Prefuse is under BSD License.
* Available from http://prefuse.org/.

iUI is under a BSD license, with media portions under a Creative Commons Attribution-Share Alike 3.0 License. 
Copyright is held by its developers.
* Available from http://code.google.com/p/iui/

JChronic is under an MIT license, copyright is held by the developers.
* Available from https://jchronic.dev.java.net/

