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

-buildpath: \
	${^-buildpath},\
	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.amdatu.scheduling.api,\
	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.deployment.servlet;version=latest,\
	org.apache.ace.obr.storage;version=latest,\
	org.apache.ace.repository.api;version=latest,\
	org.apache.ace.client.repository.api;version=latest,\
	org.apache.ace.client.repository.helper.bundle;version=latest,\
	org.apache.ace.log.server.store.api;version=latest,\
	org.apache.ace.feedback.common;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.prefs,\
	org.apache.felix.useradmin,\
	org.apache.felix.useradmin.filestore,\
	org.apache.felix.log,\
	org.amdatu.scheduling.api,\
	org.amdatu.scheduling.quartz,\
	org.apache.ace.test;version=latest,\
	org.apache.ace.authentication.api;version=latest,\
	org.apache.ace.connectionfactory;version=latest,\
	org.apache.ace.deployment.provider.api;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.deployment.servlet;version=latest,\
	org.apache.ace.deployment.streamgenerator;version=latest,\
	org.apache.ace.deployment.provider.base;version=latest,\
	org.apache.ace.range.api;version=latest,\
	org.apache.ace.log.api;version=latest,\
	org.apache.ace.log.server.store.api;version=latest,\
	org.apache.ace.log.server.store.file;version=latest,\
	org.apache.ace.repository.api;version=latest,\
	org.apache.ace.repository.impl;version=latest,\
	org.apache.ace.repository.servlets;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.client.automation;version=latest,\
	org.apache.ace.client.repository.api;version=latest,\
	org.apache.ace.client.repository.helper.base;version=latest,\
	org.apache.ace.client.repository.helper.bundle;version=latest,\
	org.apache.ace.client.repository.helper.configuration;version=latest,\
	org.apache.ace.client.repository.impl;version=latest,\
	org.apache.ace.feedback.common;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.repositoryadmin
Bundle-Version: 1.0.0
Bundle-Name: Apache ACE Client Repository itest
Bundle-Description: Integration test bundle for the Apache ACE Client Repository
Bundle-Category: itest
