Apache Felix iPOJO Event Admin Handler
Copyright 2008-2009 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 (c) OSGi Alliance (2000, 2007).
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.

III. License Summary
- Apache License 2.0
