Apache Karaf Webconsole
Copyright 2011-2012 The Apache Software Foundation


I. Used Software

This product includes 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 (c) OSGi Alliance (2000, 2010).
Licensed under the Apache License 2.0.

This product uses software developed at
OPS4J (http://www.ops4j.org/).
Licensed under the Apache License 2.0.

This product uses software developed at
SLF4J (http://www.slf4j.org/).
Licensed under the MIT License.

II. License Summary
- Apache License 2.0
- MIT License

