Apache Felix Shell Textual Interface
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 OSGi Alliance (http://www.osgi.org/).
Copyright 2006 The OSGi Alliance.
Licensed under the Apache License 2.0.


III. License Summary
- Apache License 2.0
