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

-runfw: org.apache.felix.framework;version='[5.2.0,6)'
-runee: JavaSE-1.7
-runbundles: org.apache.felix.dependencymanager,\
	org.apache.felix.useradmin,\
	org.apache.felix.log,\
	org.apache.felix.prefs,\
	org.apache.felix.configadmin,\
	org.apache.felix.eventadmin,\
	org.apache.felix.gogo.runtime,\
	org.apache.felix.gogo.shell,\
	org.apache.felix.gogo.command,\
	org.apache.felix.http.servlet-api,\
	org.apache.felix.http.jetty,\
	org.apache.felix.dependencymanager.shell,\
	osgi.cmpn;version=latest,\
	org.apache.ace.authentication.api;version=latest,\
	org.apache.ace.authentication.impl;version=latest,\
	org.apache.ace.authentication.processor.basicauth;version=latest,\
	org.apache.ace.authentication.processor.password;version=latest,\
	org.apache.ace.configurator.impl;version=latest,\
	org.apache.ace.connectionfactory;version=latest,\
	org.apache.ace.deployment.provider.api;version=latest,\
	org.apache.ace.deployment.provider.repositorybased;version=latest,\
	org.apache.ace.deployment.servlet;version=latest,\
	org.apache.ace.deployment.streamgenerator;version=latest,\
	org.apache.ace.discovery.api;version=latest,\
	org.apache.ace.discovery.property;version=latest,\
	org.apache.ace.feedback.common;version=latest,\
	org.apache.ace.log.api;version=latest,\
	org.apache.ace.log.server.servlet;version=latest,\
	org.apache.ace.log.server.store.api;version=latest,\
	org.apache.ace.log.server.store.file;version=latest,\
	org.apache.ace.log.server.task;version=latest,\
	org.apache.ace.range.api;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.repository.task;version=latest,\
	org.apache.ace.scheduler.impl;version=latest,\
	org.apache.ace.useradmin.repository;version=latest
-runrepos: Workspace,\
	Release
-runproperties: org.apache.felix.log.storeDebug=true,\
	org.apache.felix.eventadmin.Timeout=0,\
	org.apache.ace.server=localhost:8080,\
	org.apache.ace.obr=localhost:8080,\
	org.apache.ace.relay=localhost:8282,\
	org.osgi.service.http.port=8282,\
	org.apache.felix.log.maxSize=1000,\
	launch.keep=true,\
	launch.storage.dir=bundle-cache
	
