Apache Felix SCR Ant Task
Copyright 2010-2011 The Apache Software Foundation

This product includes 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.