#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.

#-runjdb: 8000

-runfw: org.eclipse.osgi
-runproperties: \
	eclipse.log.enabled=false,\
	logback.configurationFile=file:${.}/logback.xml,\
	org.osgi.service.http.port=0,\
	osgi.console=,\
	tck.config.test.javaconfig.converter.stringvalues=foo,\
	test.property.a=blah,\
	test.property.b=,\
	org.apache.felix.http.host=localhost

-resolve.effective: resolve, active

-runpath: \
	ch.qos.logback.classic,\
	ch.qos.logback.core,\
	org.apache.felix.logback,\
	slf4j.api

-runsystempackages: \
	org.slf4j;version=1.7.25,\
	org.slf4j.event;version=1.7.25,\
	org.slf4j.helpers;version=1.7.25,\
	org.slf4j.spi;version=1.7.25,\
	sun.invoke,\
	sun.misc

-runrequires.base: \
	osgi.identity;filter:='(osgi.identity=${project.artifactId})',\
	osgi.identity;filter:='(osgi.identity=${project.artifactId}-tests)',\
	osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)'

-runblacklist.base: \
	osgi.identity;filter:='(osgi.identity=biz.aQute.bndlib)'

-runstartlevel: \
	order=sortbynameversion,\
	begin=-1
