Apache Felix UPnP Tester
Copyright 2006-2008 The Apache Software Foundation


I. Included Software

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).
Licensed under the Apache License 2.0.

II. Used Software

This product uses software developed at
The Apache Software Foundation (http://www.apache.org/).
Licensed under the Apache License 2.0.

This product uses software developed at
The OSGi Alliance (http://www.osgi.org/).
Copyright 2006-2008 The OSGi Alliance.
Licensed under the Apache License 2.0.

III. License Summary
- Apache License 2.0

