Apache Felix Framework
Copyright 2006 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

This product includes software developed by Peter Kriens
(http://www.aqute.biz/Code/Bnd)
Copyright 2006 aQute, All rights reserved
