Apache Gearpump
Copyright 2015-2016 The Apache Software Foundation 
   
This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

=======================================================================

Apache Gearpump contains subcomponents with separate copyright notices and
license terms. Your use of the source code for the these subcomponents
is subject to the terms and conditions of their respective licenses.

See the LICENSE file for a list of subcomponents and dependencies and
their respective licenses.
