Apache Felix OSGi Web Console
Copyright 2007-2010 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.

This product includes software developed at
The OSGi Alliance (http://www.osgi.org/).
Copyright (c) OSGi Alliance (2000, 2009).
Licensed under the Apache License 2.0.

This product includes software from http://www.json.org.
Copyright (c) 2002 JSON.org
Licensed under the JSON License

This product includes software from http://www.jquery.com
Copyright (c) 2009 John Resig, http://jquery.com/
Licensed under the MIT License

This product includes software from http://www.jqueryui.com
Copyright (c) 2009 AUTHORS.txt, http://jqueryui.com/
Licensed under the MIT License

This product includes software from http://tablesorter.com
Copyright (c) 2007 Christian Bach
Licensed under the MIT License

This product includes software from http://www.fyneworks.com
Copyright (c) 2008 Fyneworks.com
Licensed under the MIT License

This product includes icons from the Silk Icon set
(http://www.famfamfam.com/lab/icons/silk/)
Copyright (c) 2006 Mark James
Licensed under the Creative Commons Attribution 2.5 License

This product includes software from http://benchsketch.com/bquery/index.html
Copyright (c) 2009 Tanner Hildebrand
Licensed under Tanner Hildebrand's License

This product includes software from http://code.google.com/p/cookies/
Copyright (c) 2005 - 2009, James Auldridge
Licensed under the MIT License

This product includes software from http://developer.yahoo.net/yui/
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
Licensed under the BSD License

This product includes software from the Mozilla Foundation
Licensed under the MIT License


II. Used Software

This product uses software developed at
The OSGi Alliance (http://www.osgi.org/).
Copyright (c) OSGi Alliance (2000, 2009).
Licensed under the Apache License 2.0.


III. License Summary
- Apache License 2.0
- JSON License
- MIT License
- Creative Commons Attribution 2.5 License
- Tanner Hildebrand's License