# Licensed to the Apache Software Foundation (ASF) under the terms of ASLv2 (http://www.apache.org/licenses/LICENSE-2.0).
#
# NOTE: This test is stored in a seperate from the main agent itest project because 
# it updates the agent bundle. This causes problems if other tests try to wire to
# the the api package after the fact.
Test-Cases: ${classes;CONCRETE;EXTENDS;junit.framework.TestCase}
-runbundles: \
	org.apache.ace.agent;version=latest,\
	org.apache.ace.test;version=latest,\
	org.apache.felix.dependencymanager,\
	osgi.cmpn,\
	org.apache.felix.http.jetty,\
	org.apache.ace.deployment.servlet;version=latest,\
	org.apache.ace.deployment.api;version=latest,\
	org.apache.ace.deployment.streamgenerator;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.deployment.provider.filebased;version=latest,\
	org.apache.felix.configadmin,\
	org.apache.ace.http.listener;version=latest,\
	biz.aQute.bnd,\
	org.apache.ace.builder;version=latest,\
	org.apache.ace.log.api;version=latest
Private-Package: org.apache.ace.agent.itest
-runee: JavaSE-1.6
-runvm: -ea
-runfw: org.apache.felix.framework;version='[5.2.0,6)'
-buildpath: \
	osgi.core;version=6.0.0,\
	org.apache.ace.agent;version=latest,\
	org.apache.ace.test;version=latest,\
	org.apache.felix.dependencymanager,\
	org.apache.felix.http.jetty,\
	biz.aQute.bnd,\
	junit.osgi,\
	org.mockito.mockito-all
-runsystempackages: sun.reflect
-runproperties: \
	org.apache.felix.eventadmin.Timeout=0,\
	org.apache.felix.log.storeDebug=true,\
	org.apache.felix.log.maxSize=1000
Import-Package: org.apache.ace.agent,\
	!org.osgi.service.component.annotations,\
	*
Bundle-Version: 1.0.0
Bundle-Name: Apache ACE Agent itest
Bundle-Description: Integration test bundle for the Apache ACE Agent
-baseline:
