#    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

-standalone: true
-runee: JavaSE-1.8
-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=

-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.misc
