# Licensed to the Apache Software Foundation (ASF) under the terms of ASLv2 (http://www.apache.org/licenses/LICENSE-2.0).

Export-Package: org.apache.ace.repository.ext,\
	org.apache.ace.repository.ext.impl
Bundle-Version: 1.0.3
Bundle-Name: Apache ACE Repository EXT
Bundle-Description: Provides the Apache ACE Repository EXT packages