Apache Edgent
Copyright 2016-2017 The Apache Software Foundation

Apache Edgent is currently undergoing Incubation at the Apache Software Foundation.

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

Portions of this software were developed by IBM Corp.
Copyright IBM Corp. 2015, 2016
