#    Licensed to the Apache Software Foundation (ASF) under one
#    or more contributor license agreements.  See the NOTICE file
#    distributed with this work for additional information
#    regarding copyright ownership.  The ASF licenses this file
#    to you 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.

#-runtrace: true
#-runjdb: 8000

-runee: JavaSE-${java.specification.version}

-runfw: org.eclipse.osgi

-resolve.effective: resolve, active

# Keep resolution results in sorted order for better diff
-runstartlevel: \
	order=sortbynameversion,\
	begin=-1

-runbundles: \
	org.apache.aries.component-dsl.itests;version='[2.0.0,2.0.1)',\
	org.apache.felix.configadmin;version='[1.9.22,1.9.23)',\
	org.apache.servicemix.bundles.junit;version='[4.13.2,4.13.3)'

-include: -personal.bnd
