Apache Kafka
Copyright 2011 The Apache Software Foundation.

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

This product includes Nunit, developed by Charlie Pool, James W.
Newkirk, Michael C. Two, Alexei A. Vorontsov and Philip A. Craig.
(www.nunit.org)

Simple Build Tool Launcher
Copyright 2008, 2009, 2010 Mark Harrah, David MacIver 
Licensed under BSD-style license (see LICENSE)

