Apache Felix Bundle Maven Plugin
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.

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

This product includes software developed by Peter Kriens
(http://www.aqute.biz/Code/Bnd)
Copyright 2006-2008 aQute, All rights reserved
Licensed under the Apache License 2.0.


II. Used Software

This product uses software developed by Peter Kriens
(http://www.aqute.biz/Code/Bnd)
Copyright 2006-2008 aQute, All rights reserved
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.

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 Codehaus (http://www.codehaus.org)
Licensed under the Apache License 2.0.

This product uses software from http://kxml.sourceforge.net.
Copyright (c) 2002,2003, Stefan Haustein, Oberhausen, Rhld., Germany.
Licensed under the BSD License.


III. License Summary
- Apache License 2.0
- BSD License
