releng: refactored testing setup
diff --git a/pom.xml b/pom.xml
index 992d030..d9b7a6f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -103,7 +103,6 @@
                             </goals>
                             <configuration>
                                 <modelDirectory>${project.basedir}/src/test/provisioning</modelDirectory>
-                                <usePomDependencies>true</usePomDependencies>
                             </configuration>
                         </execution>
                         <execution>
@@ -208,8 +207,6 @@
         </plugins>
     </build>
 
-
-
     <profiles>
         <profile>
             <id>snapshot-launchpad</id>
@@ -228,6 +225,8 @@
                                 [artifacts]
                                 org.apache.sling/org.apache.sling.starter/12-SNAPSHOT/slingstart
                             </model>
+                            <modelDirectory>${project.basedir}/src/test/provisioning</modelDirectory>
+                            <modelPattern>sightly.txt</modelPattern>
                         </configuration>
                     </plugin>
                 </plugins>
@@ -244,12 +243,7 @@
                         <groupId>org.apache.sling</groupId>
                         <artifactId>slingstart-maven-plugin</artifactId>
                         <configuration>
-                            <model>
-                                [feature name=sling]
-                                # Dependencies
-                                [artifacts]
-                                org.apache.sling/org.apache.sling.starter/11/slingstart
-                            </model>
+                            <modelDirectory>${project.basedir}/src/test/provisioning</modelDirectory>
                         </configuration>
                     </plugin>
                 </plugins>
diff --git a/src/test/provisioning/boot.txt b/src/test/provisioning/boot.txt
new file mode 100644
index 0000000..4659de7
--- /dev/null
+++ b/src/test/provisioning/boot.txt
@@ -0,0 +1,65 @@
+#
+#  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.
+#
+# The :boot feature contains all things to bootstrap the installation.
+#
+[feature name=:boot]
+
+# additional entries for sling.properties
+# ---------------------------------------
+# oak_tar and oak_mongo run modes are mutually exclusive,
+# and cannot be changed after the first startup
+[settings]
+    sling.run.mode.install.options=oak_tar,oak_mongo
+    repository.home=${sling.home}/repository
+    localIndexDir=${sling.home}/repository/index
+
+[variables]
+    slf4j.version=1.7.25
+
+[artifacts]
+    org.osgi/org.osgi.util.function/1.1.0
+    org.osgi/org.osgi.util.promise/1.1.1
+    org.osgi/org.osgi.util.pushstream/1.0.1
+    org.osgi/org.osgi.service.log/1.4.0
+    org.apache.sling/org.apache.sling.javax.activation/0.1.0
+    org.apache.geronimo.specs/geronimo-annotation_1.3_spec/1.1
+    org.apache.servicemix.specs/org.apache.servicemix.specs.jaxws-api-2.2/2.9.0
+    org.apache.servicemix.specs/org.apache.servicemix.specs.saaj-api-1.3/2.8.0
+    org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/1.3.23_2
+    org.jvnet.staxex/stax-ex/1.7.6
+    org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.3
+    org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/2.9.0
+    org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1
+    org.slf4j/slf4j-api/${slf4j.version}
+    org.apache.sling/org.apache.sling.commons.log/5.1.10
+    org.apache.sling/org.apache.sling.commons.logservice/1.1.0
+    org.slf4j/jcl-over-slf4j/${slf4j.version}
+    org.slf4j/log4j-over-slf4j/${slf4j.version}
+    org.apache.sling/org.apache.sling.settings/1.3.10
+    org.apache.sling/org.apache.sling.launchpad.installer/1.2.2
+    org.apache.sling/org.apache.sling.installer.core/3.9.0
+    org.apache.sling/org.apache.sling.installer.provider.file/1.1.0
+    org.apache.sling/org.apache.sling.installer.factory.configuration/1.2.4
+    org.apache.felix/org.apache.felix.configadmin/1.9.16
+    org.apache.felix/org.apache.felix.eventadmin/1.5.0
+    org.apache.aries/org.apache.aries.util/1.1.3
+    # dependency with javax.inject - required for Sling Models (SLING-4710)
+    org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.1
+    org.apache.commons/commons-lang3/3.9
+    
diff --git a/src/test/provisioning/composum.txt b/src/test/provisioning/composum.txt
new file mode 100644
index 0000000..bcafb5e
--- /dev/null
+++ b/src/test/provisioning/composum.txt
@@ -0,0 +1,41 @@
+#
+#  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.
+[feature name=composum-nodes]
+[variables]
+    composum.nodes.version=1.11.5
+
+[artifacts startLevel=20]
+
+  com.composum.sling.core/composum-sling-core-commons/${composum.nodes.version}
+  com.composum.sling.core/composum-sling-core-console/${composum.nodes.version}
+  com.composum.sling.core/composum-sling-core-jslibs/${composum.nodes.version}
+  com.composum.sling.core/composum-sling-user-management/${composum.nodes.version}
+  com.composum.sling.core/composum-sling-package-manager/${composum.nodes.version}
+  com.composum.sling.core.osgi/composum-sling-osgi-package-installer/${composum.nodes.version}
+  org.apache.jackrabbit.vault/org.apache.jackrabbit.vault/3.4.0
+
+[configurations]
+
+  # the whitelisting of administrative login (to replace by service users in Nodes 2.0)
+  org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-composum
+    whitelist.name="composum"
+    whitelist.bundles=[
+      "com.composum.core.commons",\
+      "com.composum.core.pckgmgr",\
+      "com.composum.core.pckginstall"
+    ]
diff --git a/src/test/provisioning/healthcheck.txt b/src/test/provisioning/healthcheck.txt
new file mode 100644
index 0000000..69e4329
--- /dev/null
+++ b/src/test/provisioning/healthcheck.txt
@@ -0,0 +1,95 @@
+#
+#  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.
+##
+[feature name=healthcheck]
+
+# startlevel 5 together with jetty (to allow use during startup)
+[artifacts startLevel=5]
+    org.apache.felix/org.apache.felix.healthcheck.api/2.0.2
+    org.apache.felix/org.apache.felix.healthcheck.core/2.0.6
+    org.apache.felix/org.apache.felix.healthcheck.generalchecks/2.0.4
+    org.apache.felix/org.apache.felix.healthcheck.webconsoleplugin/2.0.0
+
+# sling health check bundles at startlevel 20
+[artifacts startLevel=20]
+    org.apache.sling/org.apache.sling.hc.api/1.0.4
+    org.apache.sling/org.apache.sling.hc.support/1.0.6
+
+[configurations]
+    
+  ## servlet
+    
+  org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet-default
+    servletPath="/system/health"
+
+  ## systemalive checks
+
+  org.apache.felix.hc.generalchecks.FrameworkStartCheck
+    hc.tags=["systemalive"]
+    targetStartLevel=I"30"
+    
+  org.apache.felix.hc.generalchecks.ServicesCheck
+    hc.tags=["systemalive"]
+    services.list=[
+      "org.apache.sling.jcr.api.SlingRepository",
+      "org.apache.sling.engine.auth.Authenticator",
+      "org.apache.sling.api.resource.ResourceResolverFactory",
+      "org.apache.sling.api.servlets.ServletResolver",
+      "javax.script.ScriptEngineManager",
+    ]
+
+
+  ## bundles
+  
+  org.apache.felix.hc.generalchecks.BundlesStartedCheck
+    hc.tags=["bundles"]
+    
+  ## system resources
+  
+  org.apache.felix.hc.generalchecks.ThreadUsageCheck
+    hc.tags=["threads", "cpu", "system-resources"]
+
+  org.apache.felix.hc.generalchecks.CpuCheck
+    hc.tags=["cpu", "system-resources"]
+    cpuPercentageThresholdWarn=L"95"
+    
+   org.apache.felix.hc.generalchecks.DiskSpaceCheck
+    hc.tags=["diskspace", "system-resources"]
+    diskPaths=["."]
+  
+   org.apache.felix.hc.generalchecks.MemoryCheck
+    hc.tags=["memory", "system-resources"]
+    heapUsedPercentageThresholdWarn=L"95"
+    heapUsedPercentageThresholdCritical=L"100"
+
+   ## service user for scripted health check (to make it easy to use jcr:/path/to/script urls)
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-hc-support
+    user.mapping=[
+      "org.apache.sling.hc.support\=sling-readall"
+    ]
+
+  ## Service Unavailable Filter for startup-shutdown
+  org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter-startupandshutdown
+    tags=["systemalive"]
+    service.ranking=I"2147483647"
+    osgi.http.whiteboard.context.select="(osgi.http.whiteboard.context.name\=*)"
+    osgi.http.whiteboard.filter.regex="(?!/system/).*"
+    responseTextFor503="classpath:org.apache.sling.starter.content:content/content/startup/index.html"
+    includeExecutionResult=B"false"
+    autoDisableFilter=B"true"
+    avoid404DuringStartup=B"true"
diff --git a/src/test/provisioning/launchpad.txt b/src/test/provisioning/launchpad.txt
new file mode 100644
index 0000000..3cdef89
--- /dev/null
+++ b/src/test/provisioning/launchpad.txt
@@ -0,0 +1,30 @@
+#
+#  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.
+#
+# The :launchpad feature defines Sling's launchpad version
+# Only a single artifact is allowed within this feature.
+#
+[feature name=:launchpad]
+    org.apache.sling/org.apache.sling.launchpad.base/6.0.2-2.6.36
+
+[settings]
+  org.osgi.framework.system.packages=org.osgi.framework;version="1.9",org.osgi.framework.dto;version="1.8";uses:="org.osgi.dto",org.osgi.framework.hooks.bundle;version="1.1";uses:="org.osgi.framework",org.osgi.framework.hooks.resolver;version="1.0";uses:="org.osgi.framework.wiring",org.osgi.framework.hooks.service;version="1.1";uses:="org.osgi.framework",org.osgi.framework.hooks.weaving;version="1.1";uses:="org.osgi.framework.wiring",org.osgi.framework.launch;version="1.2";uses:="org.osgi.framework",org.osgi.framework.namespace;version="1.1";uses:="org.osgi.resource",org.osgi.framework.startlevel;version="1.0";uses:="org.osgi.framework",org.osgi.framework.startlevel.dto;version="1.0";uses:="org.osgi.dto",org.osgi.framework.wiring;version="1.2";uses:="org.osgi.framework,org.osgi.resource",org.osgi.framework.wiring.dto;version="1.3";uses:="org.osgi.dto,org.osgi.resource.dto",org.osgi.resource;version="1.0",org.osgi.resource.dto;version="1.0";uses:="org.osgi.dto",org.osgi.service.packageadmin;version="1.2";uses:="org.osgi.framework",org.osgi.service.startlevel;version="1.1";uses:="org.osgi.framework",org.osgi.service.url;version="1.0",org.osgi.service.resolver;version="1.1";uses:="org.osgi.resource",org.osgi.dto;version="1.1",org.osgi.util.tracker;version="1.5.2";uses:="org.osgi.framework"{dollar}{sling.jre-{dollar}{java.specification.version}}{dollar}{sling.jre-{dollar}{felix.detect.jpms}}
+  sling.jre-1.8=,java.applet;version="{dollar}{felix.detect.java.version}",java.awt;version="{dollar}{felix.detect.java.version}",java.awt.color;version="{dollar}{felix.detect.java.version}",java.awt.datatransfer;version="{dollar}{felix.detect.java.version}",java.awt.dnd;version="{dollar}{felix.detect.java.version}",java.awt.event;version="{dollar}{felix.detect.java.version}",java.awt.font;version="{dollar}{felix.detect.java.version}",java.awt.geom;version="{dollar}{felix.detect.java.version}",java.awt.im;version="{dollar}{felix.detect.java.version}",java.awt.im.spi;version="{dollar}{felix.detect.java.version}",java.awt.image;version="{dollar}{felix.detect.java.version}",java.awt.image.renderable;version="{dollar}{felix.detect.java.version}",java.awt.print;version="{dollar}{felix.detect.java.version}",java.beans;version="{dollar}{felix.detect.java.version}",java.beans.beancontext;version="{dollar}{felix.detect.java.version}",java.io;version="{dollar}{felix.detect.java.version}",java.lang;version="{dollar}{felix.detect.java.version}",java.lang.annotation;version="{dollar}{felix.detect.java.version}",java.lang.instrument;version="{dollar}{felix.detect.java.version}",java.lang.invoke;version="{dollar}{felix.detect.java.version}",java.lang.management;version="{dollar}{felix.detect.java.version}",java.lang.ref;version="{dollar}{felix.detect.java.version}",java.lang.reflect;version="{dollar}{felix.detect.java.version}",java.math;version="{dollar}{felix.detect.java.version}",java.net;version="{dollar}{felix.detect.java.version}",java.nio;version="{dollar}{felix.detect.java.version}",java.nio.channels;version="{dollar}{felix.detect.java.version}",java.nio.channels.spi;version="{dollar}{felix.detect.java.version}",java.nio.charset;version="{dollar}{felix.detect.java.version}",java.nio.charset.spi;version="{dollar}{felix.detect.java.version}",java.nio.file;version="{dollar}{felix.detect.java.version}",java.nio.file.attribute;version="{dollar}{felix.detect.java.version}",java.nio.file.spi;version="{dollar}{felix.detect.java.version}",java.rmi;version="{dollar}{felix.detect.java.version}",java.rmi.activation;version="{dollar}{felix.detect.java.version}",java.rmi.dgc;version="{dollar}{felix.detect.java.version}",java.rmi.registry;version="{dollar}{felix.detect.java.version}",java.rmi.server;version="{dollar}{felix.detect.java.version}",java.security;version="{dollar}{felix.detect.java.version}",java.security.acl;version="{dollar}{felix.detect.java.version}",java.security.cert;version="{dollar}{felix.detect.java.version}",java.security.interfaces;version="{dollar}{felix.detect.java.version}",java.security.spec;version="{dollar}{felix.detect.java.version}",java.sql;version="{dollar}{felix.detect.java.version}",java.text;version="{dollar}{felix.detect.java.version}",java.text.spi;version="{dollar}{felix.detect.java.version}",java.time;version="{dollar}{felix.detect.java.version}",java.time.chrono;version="{dollar}{felix.detect.java.version}",java.time.format;version="{dollar}{felix.detect.java.version}",java.time.temporal;version="{dollar}{felix.detect.java.version}",java.time.zone;version="{dollar}{felix.detect.java.version}",java.util;version="{dollar}{felix.detect.java.version}",java.util.concurrent;version="{dollar}{felix.detect.java.version}",java.util.concurrent.atomic;version="{dollar}{felix.detect.java.version}",java.util.concurrent.locks;version="{dollar}{felix.detect.java.version}",java.util.function;version="{dollar}{felix.detect.java.version}",java.util.jar;version="{dollar}{felix.detect.java.version}",java.util.logging;version="{dollar}{felix.detect.java.version}",java.util.prefs;version="{dollar}{felix.detect.java.version}",java.util.regex;version="{dollar}{felix.detect.java.version}",java.util.spi;version="{dollar}{felix.detect.java.version}",java.util.stream;version="{dollar}{felix.detect.java.version}",java.util.zip;version="{dollar}{felix.detect.java.version}",javax.accessibility;uses:="javax.swing.text";version="{dollar}{felix.detect.java.version}",javax.annotation.processing;uses:="javax.lang.model,javax.lang.model.element,javax.lang.model.util,javax.tools";version="{dollar}{felix.detect.java.version}",javax.crypto;uses:="javax.crypto.spec,javax.security.auth";version="{dollar}{felix.detect.java.version}",javax.crypto.interfaces;uses:="javax.crypto,javax.crypto.spec";version="{dollar}{felix.detect.java.version}",javax.crypto.spec;uses:="javax.crypto";version="{dollar}{felix.detect.java.version}",javax.imageio;uses:="javax.imageio.event,javax.imageio.metadata,javax.imageio.spi,javax.imageio.stream";version="{dollar}{felix.detect.java.version}",javax.imageio.event;uses:="javax.imageio";version="{dollar}{felix.detect.java.version}",javax.imageio.metadata;uses:="javax.imageio,org.w3c.dom";version="{dollar}{felix.detect.java.version}",javax.imageio.plugins.bmp;uses:="javax.imageio";version="{dollar}{felix.detect.java.version}",javax.imageio.plugins.jpeg;uses:="javax.imageio";version="{dollar}{felix.detect.java.version}",javax.imageio.spi;uses:="javax.imageio,javax.imageio.metadata,javax.imageio.stream";version="{dollar}{felix.detect.java.version}",javax.imageio.stream;uses:="javax.imageio";version="{dollar}{felix.detect.java.version}",javax.lang.model;uses:="javax.lang.model.element";version="{dollar}{felix.detect.java.version}",javax.lang.model.element;uses:="javax.lang.model,javax.lang.model.type";version="{dollar}{felix.detect.java.version}",javax.lang.model.type;uses:="javax.lang.model,javax.lang.model.element";version="{dollar}{felix.detect.java.version}",javax.lang.model.util;uses:="javax.annotation.processing,javax.lang.model,javax.lang.model.element,javax.lang.model.type";version="{dollar}{felix.detect.java.version}",javax.management;uses:="javax.management.loading,javax.management.openmbean";version="{dollar}{felix.detect.java.version}",javax.management.loading;uses:="javax.management";version="{dollar}{felix.detect.java.version}",javax.management.modelmbean;uses:="javax.management,javax.management.loading";version="{dollar}{felix.detect.java.version}",javax.management.monitor;uses:="javax.management";version="{dollar}{felix.detect.java.version}",javax.management.openmbean;uses:="javax.management";version="{dollar}{felix.detect.java.version}",javax.management.relation;uses:="javax.management";version="{dollar}{felix.detect.java.version}",javax.management.remote;uses:="javax.management,javax.security.auth";version="{dollar}{felix.detect.java.version}",javax.management.remote.rmi;uses:="javax.management,javax.management.loading,javax.management.remote,javax.naming,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.security.auth,org.omg.CORBA,org.omg.CORBA.portable,org.omg.CORBA_2_3.portable";version="{dollar}{felix.detect.java.version}",javax.management.timer;uses:="javax.management";version="{dollar}{felix.detect.java.version}",javax.naming;uses:="javax.naming.spi";version="{dollar}{felix.detect.java.version}",javax.naming.directory;uses:="javax.naming";version="{dollar}{felix.detect.java.version}",javax.naming.event;uses:="javax.naming,javax.naming.directory";version="{dollar}{felix.detect.java.version}",javax.naming.ldap;uses:="javax.naming,javax.naming.directory,javax.naming.event,javax.net.ssl";version="{dollar}{felix.detect.java.version}",javax.naming.spi;uses:="javax.naming,javax.naming.directory";version="{dollar}{felix.detect.java.version}",javax.net;version="{dollar}{felix.detect.java.version}",javax.net.ssl;uses:="javax.net,javax.security.auth.x500,javax.security.cert";version="{dollar}{felix.detect.java.version}",javax.print;uses:="javax.print.attribute,javax.print.attribute.standard,javax.print.event";version="{dollar}{felix.detect.java.version}",javax.print.attribute;version="{dollar}{felix.detect.java.version}",javax.print.attribute.standard;uses:="javax.print.attribute";version="{dollar}{felix.detect.java.version}",javax.print.event;uses:="javax.print,javax.print.attribute";version="{dollar}{felix.detect.java.version}",javax.rmi.ssl;uses:="javax.net,javax.net.ssl";version="{dollar}{felix.detect.java.version}",javax.script;version="{dollar}{felix.detect.java.version}",javax.security.auth;version="{dollar}{felix.detect.java.version}",javax.security.auth.callback;version="{dollar}{felix.detect.java.version}",javax.security.auth.kerberos;uses:="javax.crypto,javax.security.auth";version="{dollar}{felix.detect.java.version}",javax.security.auth.login;uses:="javax.security.auth,javax.security.auth.callback";version="{dollar}{felix.detect.java.version}",javax.security.auth.spi;uses:="javax.security.auth,javax.security.auth.callback,javax.security.auth.login";version="{dollar}{felix.detect.java.version}",javax.security.auth.x500;uses:="javax.security.auth";version="{dollar}{felix.detect.java.version}",javax.security.cert;version="{dollar}{felix.detect.java.version}",javax.security.sasl;uses:="javax.security.auth.callback";version="{dollar}{felix.detect.java.version}",javax.sound.midi;uses:="javax.sound.midi.spi";version="{dollar}{felix.detect.java.version}",javax.sound.midi.spi;uses:="javax.sound.midi";version="{dollar}{felix.detect.java.version}",javax.sound.sampled;uses:="javax.sound.sampled.spi";version="{dollar}{felix.detect.java.version}",javax.sound.sampled.spi;uses:="javax.sound.sampled";version="{dollar}{felix.detect.java.version}",javax.sql;uses:="javax.transaction.xa";version="{dollar}{felix.detect.java.version}",javax.sql.rowset;uses:="javax.sql,javax.sql.rowset.serial,javax.sql.rowset.spi";version="{dollar}{felix.detect.java.version}",javax.sql.rowset.serial;uses:="javax.sql.rowset";version="{dollar}{felix.detect.java.version}",javax.sql.rowset.spi;uses:="javax.naming,javax.sql,javax.sql.rowset";version="{dollar}{felix.detect.java.version}",javax.swing;uses:="javax.accessibility,javax.print,javax.print.attribute,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.tree";version="{dollar}{felix.detect.java.version}",javax.swing.border;uses:="javax.swing";version="{dollar}{felix.detect.java.version}",javax.swing.colorchooser;uses:="javax.accessibility,javax.swing,javax.swing.border,javax.swing.event,javax.swing.text";version="{dollar}{felix.detect.java.version}",javax.swing.event;uses:="javax.swing,javax.swing.table,javax.swing.text,javax.swing.tree,javax.swing.undo";version="{dollar}{felix.detect.java.version}",javax.swing.filechooser;uses:="javax.swing";version="{dollar}{felix.detect.java.version}",javax.swing.plaf;uses:="javax.accessibility,javax.swing,javax.swing.border,javax.swing.filechooser,javax.swing.text,javax.swing.tree";version="{dollar}{felix.detect.java.version}",javax.swing.plaf.basic;uses:="javax.accessibility,javax.sound.sampled,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.tree";version="{dollar}{felix.detect.java.version}",javax.swing.plaf.metal;uses:="javax.swing,javax.swing.border,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.text,javax.swing.tree";version="{dollar}{felix.detect.java.version}",javax.swing.plaf.multi;uses:="javax.accessibility,javax.swing,javax.swing.filechooser,javax.swing.plaf,javax.swing.text,javax.swing.tree";version="{dollar}{felix.detect.java.version}",javax.swing.plaf.nimbus;uses:="javax.swing,javax.swing.border,javax.swing.plaf,javax.swing.plaf.synth";version="{dollar}{felix.detect.java.version}",javax.swing.plaf.synth;uses:="javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.table,javax.swing.text,javax.swing.tree,javax.xml.parsers,org.xml.sax,org.xml.sax.helpers";version="{dollar}{felix.detect.java.version}",javax.swing.table;uses:="javax.accessibility,javax.swing,javax.swing.border,javax.swing.event,javax.swing.plaf";version="{dollar}{felix.detect.java.version}",javax.swing.text;uses:="javax.accessibility,javax.print,javax.print.attribute,javax.swing,javax.swing.event,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.text.html,javax.swing.tree,javax.swing.undo";version="{dollar}{felix.detect.java.version}",javax.swing.text.html;uses:="javax.accessibility,javax.swing,javax.swing.border,javax.swing.event,javax.swing.plaf,javax.swing.text,javax.swing.undo";version="{dollar}{felix.detect.java.version}",javax.swing.text.html.parser;uses:="javax.swing.text,javax.swing.text.html";version="{dollar}{felix.detect.java.version}",javax.swing.text.rtf;uses:="javax.swing.text";version="{dollar}{felix.detect.java.version}",javax.swing.tree;uses:="javax.swing,javax.swing.border,javax.swing.event,javax.swing.plaf,javax.swing.plaf.basic";version="{dollar}{felix.detect.java.version}",javax.swing.undo;uses:="javax.swing,javax.swing.event";version="{dollar}{felix.detect.java.version}",javax.tools;uses:="javax.annotation.processing,javax.lang.model,javax.lang.model.element";version="{dollar}{felix.detect.java.version}",javax.transaction.xa;version="{dollar}{felix.detect.java.version}",org.ietf.jgss;version="{dollar}{felix.detect.java.version}"{dollar}{sling.jre.java.xml},javax.xml.crypto;uses:="javax.xml.crypto.dsig.keyinfo";version="{dollar}{felix.detect.java.version}",javax.xml.crypto.dom;uses:="javax.xml.crypto,org.w3c.dom";version="{dollar}{felix.detect.java.version}",javax.xml.crypto.dsig;uses:="javax.xml.crypto,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec";version="{dollar}{felix.detect.java.version}",javax.xml.crypto.dsig.dom;uses:="javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,org.w3c.dom";version="{dollar}{felix.detect.java.version}",javax.xml.crypto.dsig.keyinfo;uses:="javax.xml.crypto";version="{dollar}{felix.detect.java.version}",javax.xml.crypto.dsig.spec;uses:="javax.xml.crypto";version="{dollar}{felix.detect.java.version}"
+  sling.jre-jpms={dollar}{felix.jpms.java.base}{dollar}{felix.jpms.java.compiler}{dollar}{felix.jpms.java.datatransfer}{dollar}{felix.jpms.java.desktop}{dollar}{felix.jpms.java.instrument}{dollar}{felix.jpms.java.logging}{dollar}{felix.jpms.java.management}{dollar}{felix.jpms.java.management.rmi}{dollar}{felix.jpms.java.naming}{dollar}{felix.jpms.java.net.http}{dollar}{felix.jpms.java.prefs}{dollar}{felix.jpms.java.rmi}{dollar}{felix.jpms.java.scripting}{dollar}{felix.jpms.java.se}{dollar}{felix.jpms.java.security.jgss}{dollar}{felix.jpms.java.security.sasl}{dollar}{felix.jpms.java.sql}{dollar}{felix.jpms.java.sql.rowset}{dollar}{felix.jpms.java.transaction.xa}{dollar}{sling.jpms.{dollar}{felix.detect.jpms.java.xml}}{dollar}{felix.jpms.java.xml.crypto}{dollar}{felix.jpms.jdk.xml.dom}
+  sling.jre.java.xml=,javax.xml;version="2.1.0",javax.xml.datatype;uses:="javax.xml.namespace";version="2.1.0",javax.xml.namespace;version="2.1.0",javax.xml.parsers;uses:="javax.xml.validation,org.w3c.dom,org.xml.sax,org.xml.sax.helpers";version="2.1.0",javax.xml.stream;uses:="javax.xml.namespace,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform";version="1.0.0",javax.xml.stream.events;uses:="javax.xml.namespace,javax.xml.stream";version="1.0.0",javax.xml.stream.util;uses:="javax.xml.namespace,javax.xml.stream,javax.xml.stream.events";version="1.0.0",javax.xml.transform;version="2.1.0",javax.xml.transform.dom;uses:="javax.xml.transform,org.w3c.dom";version="2.1.0",javax.xml.transform.sax;uses:="javax.xml.transform,javax.xml.transform.stream,org.xml.sax,org.xml.sax.ext";version="2.1.0",javax.xml.transform.stax;uses:="javax.xml.stream,javax.xml.stream.events,javax.xml.transform";version="2.1.0",javax.xml.transform.stream;uses:="javax.xml.transform";version="2.1.0",javax.xml.validation;uses:="javax.xml.transform,javax.xml.transform.stream,org.w3c.dom,org.w3c.dom.ls,org.xml.sax";version="2.1.0",javax.xml.xpath;uses:="javax.xml.namespace,org.xml.sax";version="2.1.0",org.w3c.dom;version="{dollar}{felix.detect.java.version}",org.w3c.dom.bootstrap;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.w3c.dom.css;uses:="org.w3c.dom,org.w3c.dom.stylesheets,org.w3c.dom.views";version="{dollar}{felix.detect.java.version}",org.w3c.dom.events;uses:="org.w3c.dom,org.w3c.dom.views";version="{dollar}{felix.detect.java.version}",org.w3c.dom.html;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.w3c.dom.ls;uses:="org.w3c.dom,org.w3c.dom.events";version="{dollar}{felix.detect.java.version}",org.w3c.dom.ranges;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.w3c.dom.stylesheets;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.w3c.dom.traversal;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.w3c.dom.views;version="{dollar}{felix.detect.java.version}",org.w3c.dom.xpath;uses:="org.w3c.dom";version="{dollar}{felix.detect.java.version}",org.xml.sax;version="{dollar}{felix.detect.java.version}",org.xml.sax.ext;uses:="org.xml.sax,org.xml.sax.helpers";version="{dollar}{felix.detect.java.version}",org.xml.sax.helpers;uses:="org.xml.sax";version="{dollar}{felix.detect.java.version}"
+  sling.jpms.java.xml={dollar}{sling.jre.java.xml},javax.xml.catalog;uses:="javax.xml.namespace";version="1.0.0"
diff --git a/src/test/provisioning/oak.txt b/src/test/provisioning/oak.txt
new file mode 100644
index 0000000..2f4b9ce
--- /dev/null
+++ b/src/test/provisioning/oak.txt
@@ -0,0 +1,101 @@
+#
+#  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.
+#
+# This is the OAK feature.
+[feature name=oak]
+
+[variables]
+    oak.version=1.16.0
+
+# The segment node store is used via a configuration
+[artifacts startLevel=10]
+    org.apache.felix/org.apache.felix.jaas/1.0.2
+
+[artifacts startLevel=15]
+    org.apache.jackrabbit/oak-api/${oak.version}
+    org.apache.jackrabbit/oak-blob/${oak.version}
+    org.apache.jackrabbit/oak-blob-plugins/${oak.version}
+    org.apache.jackrabbit/oak-commons/${oak.version}
+    org.apache.jackrabbit/oak-core/${oak.version}
+    org.apache.jackrabbit/oak-core-spi/${oak.version}
+    org.apache.jackrabbit/oak-lucene/${oak.version}
+    org.apache.jackrabbit/oak-jcr/${oak.version}
+    org.apache.jackrabbit/oak-query-spi/${oak.version}
+    org.apache.jackrabbit/oak-security-spi/${oak.version}
+    # TODO - Sling does not come up without oak-store-composite
+    org.apache.jackrabbit/oak-store-composite/${oak.version}
+    # OAK-7263 - oak-store-document should be in oak_mongo runmode
+    org.apache.jackrabbit/oak-store-document/${oak.version}
+    org.apache.jackrabbit/oak-store-spi/${oak.version}
+
+[artifacts startLevel=15 runModes=oak_tar]
+    org.apache.jackrabbit/oak-segment-tar/${oak.version}
+
+[artifacts startLevel=15 runModes=oak_mongo]
+    org.mongodb/mongo-java-driver/3.8.2
+    com.h2database/h2-mvstore/1.4.194
+
+# start the Oak server instance after all components have been configured
+# and started to avoid restarting that component ( see SLING-4556 )
+[artifacts startLevel=16]
+    org.apache.sling/org.apache.sling.jcr.oak.server/1.2.2
+
+[configurations]
+  org.apache.felix.jaas.Configuration.factory-GuestLoginModule
+    jaas.controlFlag="optional"
+    jaas.classname="org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule"
+    jaas.ranking=I"300"
+
+  org.apache.felix.jaas.Configuration.factory-LoginModuleImpl
+    jaas.controlFlag="required"
+    jaas.classname="org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl"
+
+  org.apache.felix.jaas.Configuration.factory-TokenLoginModule
+    jaas.controlFlag="sufficient"
+    jaas.classname="org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule"
+    jaas.ranking=I"200"
+
+  org.apache.felix.jaas.ConfigurationSpi
+    jaas.defaultRealmName="jackrabbit.oak"
+    jaas.configProviderName="FelixJaasProvider"
+
+  org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl
+    org.apache.jackrabbit.oak.authentication.configSpiName="FelixJaasProvider"
+
+  org.apache.jackrabbit.oak.security.user.UserConfigurationImpl
+    groupsPath="/home/groups"
+    usersPath="/home/users"
+    defaultDepth="1"
+    importBehavior="besteffort"
+
+  org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName
+    length=I"21"
+
+  org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider
+    enabledActions=["org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"]
+    userPrivilegeNames=["jcr:all"]
+    groupPrivilegeNames=["jcr:read"]
+
+[configurations runModes=oak_tar]
+  org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
+    name="Default\ NodeStore"
+
+[configurations runModes=oak_mongo]
+  org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
+    mongouri="mongodb://localhost:27017"
+    db="sling"
diff --git a/src/test/provisioning/repoinit.txt b/src/test/provisioning/repoinit.txt
new file mode 100644
index 0000000..8fe0940
--- /dev/null
+++ b/src/test/provisioning/repoinit.txt
@@ -0,0 +1,76 @@
+#
+#  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.
+#
+[feature name=repoinit]
+
+[artifacts]
+  org.apache.sling/org.apache.sling.repoinit.parser/1.3.2
+  org.apache.sling/org.apache.sling.jcr.repoinit/1.1.16
+  org.apache.sling/org.apache.sling.provisioning.model/1.8.4
+
+[:repoinit]
+    # general
+    create path (sling:OrderedFolder) /content
+    set ACL for everyone
+        allow   jcr:read	on /content
+    end
+
+    # sling-mapping
+    create service user sling-mapping
+
+    set ACL for sling-mapping
+        allow   jcr:read    on /
+    end
+
+    # sling-readall
+    create service user sling-readall
+
+    set ACL for sling-readall
+        allow   jcr:read    on /
+    end
+
+    # sling-xss
+    create service user sling-xss
+
+    create path (sling:Folder) /apps/sling/xss
+
+    set ACL for sling-xss
+        allow   jcr:read    on /apps/sling/xss
+    end
+
+    # sling-i18n
+    create service user sling-i18n
+
+    set ACL for sling-i18n
+        allow   jcr:read    on /
+    end
+
+    # sling-jcr-install
+    create service user sling-jcr-install
+
+    # used for config OSGi writeback
+    create path (sling:Folder) /apps/sling/install
+
+    set ACL for sling-jcr-install
+        allow	jcr:read	on	/
+        allow	rep:write	on /apps/sling/install
+    end
+
+[configurations]
+  org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
+    references="model@repoinit:context:/resources/provisioning/model.txt"
diff --git a/src/test/provisioning/scripting.txt b/src/test/provisioning/scripting.txt
new file mode 100644
index 0000000..49651bd
--- /dev/null
+++ b/src/test/provisioning/scripting.txt
@@ -0,0 +1,57 @@
+#
+#  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.
+#
+#
+[feature name=sling]
+
+[artifacts]
+    org.apache.sling/org.apache.sling.scripting.api/2.2.0
+    org.apache.sling/org.apache.sling.scripting.core/2.1.0
+    org.apache.sling/org.apache.sling.scripting.javascript/3.1.2
+    org.apache.sling/org.apache.sling.scripting.jsp/2.4.0
+    org.apache.sling/org.apache.sling.scripting.jsp-api/1.0.2
+    org.apache.sling/org.apache.sling.scripting.el-api/1.0.0
+    org.apache.sling/org.apache.sling.scripting.jsp.taglib/2.4.0
+    org.antlr/antlr4-runtime/4.7.2
+    org.apache.sling/org.apache.sling.scripting.sightly.repl/1.0.6
+    org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.10_1
+
+[:repoinit]
+    #<<< SLING-5848 - Define service user and ACLs for Scripting
+    create service user sling-scripting
+
+    create path (sling:Folder) /libs
+    create path (sling:Folder) /apps
+
+    set ACL for sling-scripting
+        deny    jcr:all     on /
+        allow   jcr:read    on /libs,/apps
+    end
+    # SLING-5848 - Define service user and ACLs for Scripting >>>
+
+
+[configurations]
+    # configure the ScriptCache for scripts used by org.apache.sling.scripting.sightly.js.provider
+    org.apache.sling.scripting.core.impl.ScriptCacheImpl
+        org.apache.sling.scripting.cache.additional_extensions=["js"]
+
+    org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-scripting
+        user.mapping=[
+            "org.apache.sling.scripting.core\=sling-scripting",
+            "org.apache.sling.scripting.sightly.js.provider\=sling-scripting",
+        ]
diff --git a/src/test/provisioning/model.txt b/src/test/provisioning/sightly.txt
similarity index 98%
rename from src/test/provisioning/model.txt
rename to src/test/provisioning/sightly.txt
index 45b9da0..f1702bf 100644
--- a/src/test/provisioning/model.txt
+++ b/src/test/provisioning/sightly.txt
@@ -20,7 +20,6 @@
 [feature name=sling]
 # Dependencies
 [artifacts]
-  org.antlr/antlr4-runtime/4.7.1
   org.apache.sling/org.apache.sling.scripting.sightly.runtime
   org.apache.sling/org.apache.sling.scripting.sightly.compiler
   org.apache.sling/org.apache.sling.scripting.sightly.compiler.java
diff --git a/src/test/provisioning/sling-caconfig.txt b/src/test/provisioning/sling-caconfig.txt
new file mode 100644
index 0000000..aa36b0c
--- /dev/null
+++ b/src/test/provisioning/sling-caconfig.txt
@@ -0,0 +1,34 @@
+#
+#  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.
+#
+#
+[feature name=sling-caconfig]
+
+[artifacts]
+    org.apache.sling/org.apache.sling.caconfig.api/1.2.0
+    org.apache.sling/org.apache.sling.caconfig.spi/1.3.4
+    org.apache.sling/org.apache.sling.caconfig.impl/1.5.0
+
+[:repoinit]
+    create path (sling:Folder) /conf
+
+[configurations]
+    org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-caconfig
+        user.mapping=[
+            "org.apache.sling.caconfig.impl\=sling-readall"
+        ]
diff --git a/src/test/provisioning/sling-discovery.txt b/src/test/provisioning/sling-discovery.txt
new file mode 100644
index 0000000..5dd0566
--- /dev/null
+++ b/src/test/provisioning/sling-discovery.txt
@@ -0,0 +1,46 @@
+#
+#  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.
+#
+#
+[feature name=sling-discovery]
+
+[artifacts]
+    org.apache.sling/org.apache.sling.discovery.api/1.0.4
+    org.apache.sling/org.apache.sling.discovery.support/1.0.4
+    org.apache.sling/org.apache.sling.discovery.commons/1.0.20
+    org.apache.sling/org.apache.sling.discovery.base/2.0.8
+    org.apache.sling/org.apache.sling.discovery.oak/1.2.28
+
+[:repoinit]
+    create service user sling-discovery
+
+    create path (sling:Folder) /var/discovery
+    create path (sling:Folder) /var/discovery/oak
+
+    set ACL for sling-discovery
+        allow   jcr:read,rep:write    on /var/discovery
+    end
+
+
+[configurations]
+    org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.discovery
+        user.mapping=[
+            "org.apache.sling.discovery.commons\=sling-discovery",
+            "org.apache.sling.discovery.base\=sling-discovery",
+            "org.apache.sling.discovery.oak\=sling-discovery"
+        ]
diff --git a/src/test/provisioning/sling-event.txt b/src/test/provisioning/sling-event.txt
new file mode 100644
index 0000000..3db2a7a
--- /dev/null
+++ b/src/test/provisioning/sling-event.txt
@@ -0,0 +1,42 @@
+#
+#  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.
+#
+#
+[feature name=sling-event]
+
+[artifacts]
+    org.apache.sling/org.apache.sling.event/4.2.12
+    org.apache.sling/org.apache.sling.event.dea/1.1.4
+
+[:repoinit]
+    create service user sling-event
+
+    create path (sling:Folder) /var
+    create path (sling:Folder) /var/eventing
+
+    set ACL for sling-event
+        allow   jcr:read,rep:write    on /var/eventing
+    end
+
+
+[configurations]
+    org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.event
+        user.mapping=[
+            "org.apache.sling.event\=sling-event",
+            "org.apache.sling.event.dea\=sling-event"
+        ]
diff --git a/src/test/provisioning/sling.txt b/src/test/provisioning/sling.txt
new file mode 100644
index 0000000..bbf8049
--- /dev/null
+++ b/src/test/provisioning/sling.txt
@@ -0,0 +1,223 @@
+#
+#  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.
+#
+# The feature for Apache Sling
+[feature name=sling]
+
+[variables]
+    jackrabbit.version=2.18.2
+
+[artifacts startLevel=4]
+    org.apache.felix/org.apache.felix.scr/2.1.16
+    org.apache.felix/org.apache.felix.metatype/1.2.2
+    org.osgi/org.osgi.util.converter/1.0.0
+
+[artifacts startLevel=5]
+    org.apache.felix/org.apache.felix.http.whiteboard/4.0.0
+    org.apache.sling/org.apache.sling.extensions.webconsolebranding/1.0.2
+    org.apache.sling/org.apache.sling.extensions.webconsolesecurityprovider/1.2.4
+    org.apache.felix/org.apache.felix.inventory/1.0.6
+    org.apache.felix/org.apache.felix.prefs/1.1.0
+    org.apache.felix/org.apache.felix.webconsole/4.3.16
+    org.apache.felix/org.apache.felix.webconsole.plugins.ds/2.1.0
+    org.apache.felix/org.apache.felix.webconsole.plugins.obr/1.0.4
+    org.apache.felix/org.apache.felix.webconsole.plugins.packageadmin/1.0.4
+    org.apache.felix/org.apache.felix.webconsole.plugins.event/1.1.8
+    org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/1.0.10
+    org.apache.sling/org.apache.sling.commons.johnzon/1.1.2
+    org.apache.felix/org.apache.felix.bundlerepository/2.0.10
+    org.apache.sling/org.apache.sling.extensions.threaddump/0.2.2
+    org.apache.aries.jmx/org.apache.aries.jmx.api/1.1.5
+    org.apache.aries.jmx/org.apache.aries.jmx.core/1.1.8
+    org.apache.aries.jmx/org.apache.aries.jmx.whiteboard/1.2.0
+    commons-io/commons-io/2.6
+    commons-fileupload/commons-fileupload/1.3.3
+    org.apache.sling/org.apache.sling.commons.log.webconsole/1.0.0
+    org.apache.sling/org.apache.sling.api/2.21.0
+    org.apache.sling/org.apache.sling.auth.core/1.4.4
+    
+[artifacts startLevel=10]
+    org.apache.felix/org.apache.felix.http.sslfilter/1.2.6
+    org.apache.pdfbox/pdfbox/2.0.17
+    org.apache.pdfbox/fontbox/2.0.17
+    org.apache.pdfbox/jempbox/1.8.16
+    org.apache.tika/tika-core/1.22
+    org.apache.tika/tika-parsers/1.22
+
+[artifacts startLevel=15]
+    org.apache.sling/org.apache.sling.jcr.jcr-wrapper/2.0.0
+    org.apache.sling/org.apache.sling.jcr.api/2.4.0
+    org.apache.sling/org.apache.sling.jcr.base/3.1.0
+    org.apache.sling/org.apache.sling.jcr.registration/1.0.6
+    org.apache.jackrabbit/jackrabbit-api/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-jcr-commons/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-spi/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-spi-commons/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-webdav/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-jcr-rmi/${jackrabbit.version}
+    org.apache.jackrabbit/jackrabbit-data/${jackrabbit.version}
+    org.apache.sling/org.apache.sling.jcr.webdav/2.3.8
+    org.apache.sling/org.apache.sling.jcr.davex/1.3.10
+    org.apache.sling/org.apache.sling.jcr.jackrabbit.usermanager/2.2.8
+    org.apache.sling/org.apache.sling.jcr.jackrabbit.accessmanager/3.0.4
+    org.apache.sling/org.apache.sling.jcr.webconsole/1.0.2
+    io.dropwizard.metrics/metrics-core/3.2.6
+    org.apache.sling/org.apache.sling.commons.metrics/1.2.6
+    com.google.guava/guava/15.0
+    org.apache.sling/org.apache.sling.resource.filter/1.0.0
+
+[artifacts]
+    # Add the Slingshot Sample provisioning model
+    org.apache.sling/org.apache.sling.sample.slingshot/0.9.0/slingfeature/slingfeature
+    # Default Starter content
+    # Adjust responseTextFor503 in healthcheck.txt to "classpath:org.apache.sling.starter.content:startup/index.html" when updating org.apache.sling.starter.content, see SLING-8721
+    org.apache.sling/org.apache.sling.starter.content/1.0.8
+    commons-collections/commons-collections/3.2.2
+    org.apache.commons/commons-collections4/4.4
+    commons-codec/commons-codec/1.13
+    org.apache.commons/commons-math/2.2
+    org.apache.httpcomponents/httpcore-osgi/4.4.12
+    org.apache.httpcomponents/httpclient-osgi/4.5.10
+    org.apache.sling/org.apache.sling.adapter/2.1.10
+    org.apache.sling/org.apache.sling.auth.form/1.0.16
+    org.apache.sling/org.apache.sling.bundleresource.impl/2.3.2
+    org.apache.sling/org.apache.sling.commons.classloader/1.4.4
+    org.apache.sling/org.apache.sling.commons.compiler/2.3.6
+    org.apache.sling/org.apache.sling.commons.fsclassloader/1.0.12
+    org.apache.sling/org.apache.sling.commons.mime/2.2.2
+    org.apache.sling/org.apache.sling.commons.osgi/2.4.0
+    org.apache.sling/org.apache.sling.commons.scheduler/2.7.4
+    org.apache.sling/org.apache.sling.commons.threads/3.2.20
+    org.apache.sling/org.apache.sling.engine/2.6.22
+    org.apache.sling/org.apache.sling.fsresource/2.1.16
+    org.apache.sling/org.apache.sling.i18n/2.5.14
+    org.apache.sling/org.apache.sling.installer.console/1.0.2
+    org.apache.sling/org.apache.sling.installer.provider.jcr/3.1.26
+    org.apache.sling/org.apache.sling.installer.hc/2.0.2
+    org.apache.sling/org.apache.sling.jcr.contentloader/2.3.0
+    org.apache.sling/org.apache.sling.jcr.resource/3.0.20
+    org.apache.sling/org.apache.sling.models.api/1.3.8
+    org.apache.sling/org.apache.sling.models.impl/1.4.12
+    org.apache.sling/org.apache.sling.resourceresolver/1.6.16
+    org.apache.sling/org.apache.sling.serviceusermapper/1.4.4
+    org.apache.sling/org.apache.sling.serviceuser.webconsole/1.0.2
+    org.apache.sling/org.apache.sling.servlets.get/2.1.40
+    org.apache.sling/org.apache.sling.servlets.post/2.3.36
+    org.apache.sling/org.apache.sling.servlets.resolver/2.5.8
+    org.apache.sling/org.apache.sling.xss/2.1.18
+    javax.mail/mail/1.5.0-b01
+    org.apache.geronimo.bundles/jstl/1.2_1
+
+[configurations]
+  org.apache.sling.engine.impl.log.RequestLogger
+    access.log.enabled=B"true"
+    request.log.outputtype=I"0"
+    access.log.output="log.access"
+    request.log.output="log.request"
+    request.log.enabled=B"true"
+    access.log.outputtype=I"0"
+
+  org.apache.sling.commons.log.LogManager
+    org.apache.sling.commons.log.pattern="%d{dd.MM.yyyy HH:mm:ss.SSS}\ *%level*\ [%thread]\ %logger\ %msg%n"
+    org.apache.sling.commons.log.file="logs/error.log"
+    org.apache.sling.commons.log.level="info"
+    org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd"
+    org.apache.sling.commons.log.file.number=I"7"
+    org.apache.sling.commons.log.packagingDataEnabled=B"true"
+
+  org.apache.sling.commons.log.LogManager.factory.config-access.log
+    org.apache.sling.commons.log.pattern="%msg%n"
+    org.apache.sling.commons.log.names=["log.access"]
+    org.apache.sling.commons.log.file="logs/access.log"
+    org.apache.sling.commons.log.level="info"
+
+  org.apache.sling.commons.log.LogManager.factory.config-request.log
+    org.apache.sling.commons.log.pattern="%msg%n"
+    org.apache.sling.commons.log.names=["log.request"]
+    org.apache.sling.commons.log.file="logs/request.log"
+    org.apache.sling.commons.log.level="info"
+
+  # TODO: remove bundles as their dependency on admin login is fixed, see SLING-5355 for linked issues
+  # For these bundles, admin login is considered "ok":
+  # org.apache.sling.jcr.contentloader
+  org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment-sling
+    whitelist.name="sling"
+    whitelist.bundles=[
+      "org.apache.sling.discovery.commons",\
+      "org.apache.sling.discovery.base",\
+      "org.apache.sling.discovery.oak",\
+      "org.apache.sling.extensions.webconsolesecurityprovider",\
+      "org.apache.sling.i18n",\
+      "org.apache.sling.jcr.base",\
+      "org.apache.sling.jcr.contentloader",\
+      "org.apache.sling.jcr.jackrabbit.usermanager",\
+      "org.apache.sling.jcr.oak.server",\
+      "org.apache.sling.jcr.repoinit",\
+      "org.apache.sling.jcr.webconsole",\
+      "org.apache.sling.servlets.post",\
+      "org.apache.sling.serviceuser.webconsole"
+    ]
+
+  # WebDAV servlet requires config now
+  org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet
+    dav.root="/dav"
+
+  # DavEx servlet requires config now
+  org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet
+      alias="/server"
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-resourceresolver
+    user.mapping=[
+      "org.apache.sling.resourceresolver:mapping\=sling-mapping",
+      "org.apache.sling.resourceresolver:hierarchy\=sling-readall",
+      "org.apache.sling.resourceresolver:observation\=sling-readall",
+      "org.apache.sling.resourceresolver:console\=sling-readall"
+    ]
+
+  # the user mapping for the servlet resolver, subservice "console" namely the user sling-scripting is created in scripting.txt
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-servletsresolver
+    user.mapping=[
+      "org.apache.sling.servlets.resolver:console\=sling-readall",
+      "org.apache.sling.servlets.resolver:scripts\=sling-scripting"
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-observation
+    user.mapping=[
+      "org.apache.sling.jcr.resource:observation\=sling-readall"
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-xss
+    user.mapping=[
+      "org.apache.sling.xss\=sling-xss"
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n
+    user.mapping=[
+      "org.apache.sling.i18n\=sling-i18n"
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr-install
+    user.mapping=[
+      "org.apache.sling.installer.provider.jcr\=sling-jcr-install"
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-jcr-resource
+    user.mapping=[
+      "org.apache.sling.jcr.resource:validation\=sling-readall"
+    ]
+
diff --git a/src/test/provisioning/standalone.txt b/src/test/provisioning/standalone.txt
new file mode 100644
index 0000000..de82de5
--- /dev/null
+++ b/src/test/provisioning/standalone.txt
@@ -0,0 +1,26 @@
+#
+#  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.
+#
+# The :standalone feature contains artifacts for the standalone jar
+#
+[feature name=standalone]
+
+# Add a servlet implementation for the standalone case
+[artifacts startLevel=5 runModes=:standalone]
+    org.apache.felix/org.apache.felix.http.servlet-api/1.1.2
+    org.apache.felix/org.apache.felix.http.jetty/4.0.14
diff --git a/src/test/provisioning/webapp.txt b/src/test/provisioning/webapp.txt
new file mode 100644
index 0000000..bd35a39
--- /dev/null
+++ b/src/test/provisioning/webapp.txt
@@ -0,0 +1,25 @@
+#
+#  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.
+#
+# The :standalone feature contains artifacts for the standalone jar
+#
+[feature name=webapp]
+
+# Add the felix servlet bridge for the webapp case
+[artifacts runModes=:webapp]
+    org.apache.felix/org.apache.felix.http.bridge/4.0.10