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

-buildpath: \
	${^-buildpath},\
	osgi.core;version=6.0.0,\
	osgi.cmpn,\
	org.mockito.mockito-all,\
	xpp3;version=1.1,\
	xstream;version=1.2.2,\
	org.apache.velocity-dep;version=1.7.0,\
	org.apache.felix.dependencymanager,\
	org.apache.felix.gogo.runtime,\
	org.apache.ace.connectionfactory;version=latest,\
	org.apache.ace.deployment.provider.api;version=latest,\
	org.apache.ace.repository.api;version=latest,\
	org.apache.ace.range.api;version=latest,\
	org.apache.ace.test;version=latest,\
	org.apache.ace.repository.ext;version=latest,\
	org.apache.ace.log.server.store.api;version=latest,\
	org.apache.ace.feedback.common;version=latest
-sub: *.bnd
