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

-buildpath: \
	${^-buildpath},\
	${testng},\
	junit.osgi,\
	osgi.core;version=6.0.0,\
	osgi.cmpn,\
	org.apache.felix.http.api,\
	org.apache.felix.http.servlet-api,\
	org.apache.felix.dependencymanager,\
	org.apache.ace.test;version=latest,\
	org.apache.ace.discovery.api;version=latest,\
	org.apache.ace.discovery.property;version=latest,\
	org.apache.ace.identification.api;version=latest,\
	org.apache.ace.identification.property;version=latest,\
	org.apache.ace.log.server.store.api;version=latest,\
	org.apache.ace.scheduler.api;version=latest,\
	org.apache.ace.deployment.servlet;version=latest,\
	org.apache.ace.deployment.provider.api;version=latest,\
	org.apache.ace.deployment.util.test;version=latest,\
	org.apache.ace.feedback.common;version=latest,\
	org.apache.ace.deployment.provider.base;version=latest

-runfw: org.apache.felix.framework;version='[5,6)'
-runbundles: osgi.cmpn,\
	org.apache.felix.dependencymanager,\
	org.apache.felix.configadmin,\
	org.apache.felix.eventadmin,\
	org.apache.felix.http.servlet-api,\
	org.apache.felix.http.jetty,\
	org.apache.felix.deploymentadmin,\
	org.apache.felix.log,\
	org.apache.felix.prefs,\
	org.apache.ace.authentication.api;version=latest,\
	org.apache.ace.connectionfactory;version=latest,\
	org.apache.ace.deployment.provider.api;version=latest,\
	org.apache.ace.deployment.provider.base;version=latest,\
	org.apache.ace.deployment.provider.repositorybased;version=latest,\
	org.apache.ace.deployment.servlet;version=latest,\
	org.apache.ace.deployment.streamgenerator;version=latest,\
	org.apache.ace.discovery.api;version=latest,\
	org.apache.ace.discovery.property;version=latest,\
	org.apache.ace.feedback.common;version=latest,\
	org.apache.ace.identification.api;version=latest,\
	org.apache.ace.identification.property;version=latest,\
	org.apache.ace.obr.metadata;version=latest,\
	org.apache.ace.obr.servlet;version=latest,\
	org.apache.ace.obr.storage;version=latest,\
	org.apache.ace.repository.api;version=latest,\
	org.apache.ace.repository.ext;version=latest,\
	org.apache.ace.repository.impl;version=latest,\
	org.apache.ace.repository.servlets;version=latest,\
	org.apache.ace.repository.task;version=latest,\
	org.apache.ace.scheduler.impl;version=latest,\
	org.apache.ace.scheduler.api;version=latest,\
	org.apache.ace.test;version=latest,\
	org.apache.ace.range.api;version=latest,\
	org.apache.ace.http.context;version=latest
-runvm: -ea
-runee: JavaSE-1.7
-runsystempackages: sun.reflect
-runproperties: ${itestrunprops}
-baseline:

Test-Cases: ${classes;CONCRETE;EXTENDS;org.apache.ace.it.IntegrationTestBase}

Private-Package: \
	org.apache.ace.it.deployment,\
	org.apache.ace.deployment.util.test,\
	org.apache.ace.deployment.provider.impl,\
	org.apache.ace.it.deployment.provider.filebased
	
Bundle-Activator: org.apache.ace.it.deployment.provider.filebased.Activator
Bundle-Version: 1.0.0
Bundle-Name: Apache ACE Deployment itest
Bundle-Description: Integration test bundle for Apache ACE Deployment
Bundle-Category: itest
