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
