Apache Felix Bundle Maven Plugin
Copyright 2006-2011 The Apache Software Foundation

This software was developed at the Apache Software Foundation
(http://www.apache.org) and may have dependencies on other
Apache software licensed under Apache License 2.0.

I. Included Third-Party Software

This product includes software developed at
The OSGi Alliance (http://www.osgi.org/).
Copyright 2006-2011 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-2011 aQute, All rights reserved
Licensed under the Apache License 2.0.


II. Used Third-Party Software

This product uses software developed by Peter Kriens
(http://www.aqute.biz/Code/Bnd)
Copyright 2006-2011 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-2011 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-2011, Stefan Haustein, Oberhausen, Rhld., Germany.
Licensed under the BSD License.


III. License Summary
- Apache License 2.0
- BSD License
