# 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,\
	javax.servlet,\
	org.apache.felix.dependencymanager,\
	org.apache.ace.range.api;version=latest,\
	org.apache.ace.test;version=latest,\
	org.apache.ace.identification.api;version=latest,\
	org.apache.ace.discovery.api;version=latest,\
	org.apache.ace.scheduler.api;version=latest,\
	org.apache.ace.connectionfactory;version=latest,\
	org.apache.ace.authentication.api;version=latest,\
	org.amdatu.mongo,\
	org.mongodb.mongo-java-driver,\
	org.apache.ace.feedback.common;version=latest

-sub: *.bnd
