Apache Felix iPOJO Annotations
Copyright 2008-2010 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

II. Used Third-Party Software

III. License Summary
- Apache License 2.0
