diff --git a/src/it/annotations-it/src/test/java/org/apache/sling/adapter/annotations/util/AppSlingClient.java b/src/it/annotations-it/src/test/java/org/apache/sling/adapter/annotations/util/AppSlingClient.java
index 63c058e..1982973 100644
--- a/src/it/annotations-it/src/test/java/org/apache/sling/adapter/annotations/util/AppSlingClient.java
+++ b/src/it/annotations-it/src/test/java/org/apache/sling/adapter/annotations/util/AppSlingClient.java
@@ -34,7 +34,7 @@
         final SlingClient client = new SlingClient(new URI(System.getProperty("baseUrl")), "admin", "admin");
 
         // client.waitExists() adds ".json" to the path, which is not desired, since that requests the Sling Default GET Servlet instead of Sling Starter HTML
-        new Polling(() -> client.doGet("/starter/index.html").getStatusLine().getStatusCode() == 200)
+        new Polling(() -> client.doGet("/starter.html").getStatusLine().getStatusCode() == 200)
                 .poll(60_000, 500);
 
         if (!bundleInstalledAndStarted) {
diff --git a/src/it/annotations-it/src/test/provisioning/it-model.txt b/src/it/annotations-it/src/test/provisioning/it-model.txt
index dd1379b..12f5873 100644
--- a/src/it/annotations-it/src/test/provisioning/it-model.txt
+++ b/src/it/annotations-it/src/test/provisioning/it-model.txt
@@ -1,25 +1,1038 @@
-#
-#  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=adapter-annotations-it]
+# 
+# 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]
 
-# Dependencies
+[variables]
+  slf4j.version=1.7.25
+
+# additional entries for sling.properties
+# ---------------------------------------
+# oak_tar and oak_mongo run modes are mutually exclusive,
+# and cannot be changed after the first startup
+[settings]
+  localIndexDir=${sling.home}/repository/index
+  repository.home=${sling.home}/repository
+  sling.run.mode.install.options=oak_tar,oak_mongo
+
 [artifacts]
-    org.apache.sling/org.apache.sling.starter/11/slingstart
-    org.apache.sling/org.apache.sling.api/2.20.0
-    org.apache.sling/org.apache.sling.servlets.resolver/2.5.2
\ No newline at end of file
+  org.apache.aries/org.apache.aries.util/1.1.3
+  org.apache.commons/commons-lang3/3.9
+  org.apache.felix/org.apache.felix.configadmin/1.9.16
+  org.apache.felix/org.apache.felix.converter/1.0.14
+  org.apache.felix/org.apache.felix.eventadmin/1.5.0
+  org.apache.geronimo.specs/geronimo-annotation_1.3_spec/1.1
+# dependency with javax.inject - required for Sling Models (SLING-4710)
+  org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.1
+  org.apache.geronimo.specs/geronimo-ws-metadata_2.0_spec/1.1.3
+  org.apache.servicemix.bundles/org.apache.servicemix.bundles.jaxb-impl/2.2.11_1
+  org.apache.servicemix.bundles/org.apache.servicemix.bundles.saaj-impl/1.3.23_2
+  org.apache.servicemix.specs/org.apache.servicemix.specs.jaxb-api-2.2/2.9.0
+  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.sling/org.apache.sling.commons.johnzon/1.2.2
+  org.apache.sling/org.apache.sling.commons.log/5.1.10
+  org.apache.sling/org.apache.sling.commons.logservice/1.1.0
+  org.apache.sling/org.apache.sling.commons.osgi/2.4.0
+  org.apache.sling/org.apache.sling.installer.core/3.11.2
+  org.apache.sling/org.apache.sling.installer.factory.configuration/1.3.2
+  org.apache.sling/org.apache.sling.installer.provider.file/1.2.2
+  org.apache.sling/org.apache.sling.javax.activation/0.1.0
+  org.apache.sling/org.apache.sling.launchpad.installer/1.2.2
+  org.apache.sling/org.apache.sling.settings/1.3.10
+  org.jvnet.staxex/stax-ex/1.7.6
+  org.osgi/org.osgi.service.log/1.4.0
+  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.slf4j/jcl-over-slf4j/1.7.25
+  org.slf4j/log4j-over-slf4j/1.7.25
+  org.slf4j/slf4j-api/1.7.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 :launchpad feature defines Sling's launchpad version
+# Only a single artifact is allowed within this feature.
+[feature name=:launchpad]
+
+[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.jpms.java.xml={dollar}{sling.jre.java.xml},javax.xml.catalog;uses:="javax.xml.namespace";version="1.0.0"
+  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}"
+
+[artifacts]
+  org.apache.sling/org.apache.sling.launchpad.base/6.0.2-2.6.36
+
+# 
+# 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/1.11.5
+  com.composum.sling.core/composum-sling-core-console/1.11.5
+  com.composum.sling.core/composum-sling-core-jslibs/1.11.5
+  com.composum.sling.core/composum-sling-package-manager/1.11.5
+  com.composum.sling.core/composum-sling-user-management/1.11.5
+
+[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.bundles=[ \
+    "com.composum.core.commons", \
+    "com.composum.core.pckgmgr", \
+    "com.composum.core.pckginstall", \
+    ]
+    whitelist.name="composum"
+
+# 
+# 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]
+# # bundles
+  org.apache.felix.hc.generalchecks.BundlesStartedCheck
+    hc.tags=[ \
+    "bundles", \
+    ]
+
+  org.apache.felix.hc.generalchecks.CpuCheck
+    cpuPercentageThresholdWarn=L"95"
+    hc.tags=[ \
+    "cpu", \
+    "system-resources", \
+    ]
+
+  org.apache.felix.hc.generalchecks.DiskSpaceCheck
+    diskPaths=[ \
+    ".", \
+    ]
+    hc.tags=[ \
+    "diskspace", \
+    "system-resources", \
+    ]
+
+# # systemalive checks
+  org.apache.felix.hc.generalchecks.FrameworkStartCheck
+    hc.tags=[ \
+    "systemalive", \
+    ]
+    targetStartLevel=I"30"
+
+  org.apache.felix.hc.generalchecks.MemoryCheck
+    hc.tags=[ \
+    "memory", \
+    "system-resources", \
+    ]
+    heapUsedPercentageThresholdCritical=L"100"
+    heapUsedPercentageThresholdWarn=L"95"
+
+  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", \
+    ]
+
+# # system resources
+  org.apache.felix.hc.generalchecks.ThreadUsageCheck
+    hc.tags=[ \
+    "threads", \
+    "cpu", \
+    "system-resources", \
+    ]
+
+# # Service Unavailable Filter for startup-shutdown
+  org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter-startupandshutdown
+    autoDisableFilter=B"true"
+    avoid404DuringStartup=B"true"
+    includeExecutionResult=B"false"
+    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"
+    service.ranking=I"2147483647"
+    tags=[ \
+    "systemalive", \
+    ]
+
+# # servlet
+  org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet-default
+    servletPath="/system/health"
+
+# # 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", \
+    ]
+
+# 
+# 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=models-jacksonexporter]
+
+[variables]
+  jackson.version=2.9.9
+
+[artifacts]
+  com.fasterxml.jackson.core/jackson-annotations/2.9.9
+  com.fasterxml.jackson.core/jackson-core/2.9.9
+  com.fasterxml.jackson.core/jackson-databind/2.9.9
+  org.apache.sling/org.apache.sling.models.jacksonexporter/1.0.8
+
+# 
+# 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.26.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/1.26.0
+  org.apache.jackrabbit/oak-blob-plugins/1.26.0
+  org.apache.jackrabbit/oak-blob/1.26.0
+  org.apache.jackrabbit/oak-commons/1.26.0
+  org.apache.jackrabbit/oak-core-spi/1.26.0
+  org.apache.jackrabbit/oak-core/1.26.0
+  org.apache.jackrabbit/oak-jackrabbit-api/1.26.0
+  org.apache.jackrabbit/oak-jcr/1.26.0
+  org.apache.jackrabbit/oak-lucene/1.26.0
+  org.apache.jackrabbit/oak-query-spi/1.26.0
+  org.apache.jackrabbit/oak-security-spi/1.26.0
+# TODO - Sling does not come up without oak-store-composite
+  org.apache.jackrabbit/oak-store-composite/1.26.0
+# OAK-7263 - oak-store-document should be in oak_mongo runmode
+  org.apache.jackrabbit/oak-store-document/1.26.0
+  org.apache.jackrabbit/oak-store-spi/1.26.0
+
+# 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.4
+
+[configurations]
+  org.apache.felix.jaas.ConfigurationSpi
+    jaas.configProviderName="FelixJaasProvider"
+    jaas.defaultRealmName="jackrabbit.oak"
+
+  org.apache.jackrabbit.oak.security.authentication.AuthenticationConfigurationImpl
+    org.apache.jackrabbit.oak.authentication.configSpiName="FelixJaasProvider"
+
+  org.apache.jackrabbit.oak.security.user.RandomAuthorizableNodeName
+    length=I"21"
+
+  org.apache.jackrabbit.oak.security.user.UserConfigurationImpl
+    defaultDepth="1"
+    groupsPath="/home/groups"
+    importBehavior="besteffort"
+    usersPath="/home/users"
+
+  org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider
+    enabledActions=[ \
+    "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction", \
+    ]
+    groupPrivilegeNames=[ \
+    "jcr:read", \
+    ]
+    userPrivilegeNames=[ \
+    "jcr:all", \
+    ]
+
+  org.apache.felix.jaas.Configuration.factory-GuestLoginModule
+    jaas.classname="org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule"
+    jaas.controlFlag="optional"
+    jaas.ranking=I"300"
+
+  org.apache.felix.jaas.Configuration.factory-LoginModuleImpl
+    jaas.classname="org.apache.jackrabbit.oak.security.authentication.user.LoginModuleImpl"
+    jaas.controlFlag="required"
+
+  org.apache.felix.jaas.Configuration.factory-TokenLoginModule
+    jaas.classname="org.apache.jackrabbit.oak.security.authentication.token.TokenLoginModule"
+    jaas.controlFlag="sufficient"
+    jaas.ranking=I"200"
+
+[artifacts startLevel=15 runModes=oak_mongo]
+  com.h2database/h2-mvstore/1.4.194
+  org.mongodb/mongo-java-driver/3.8.2
+
+[configurations runModes=oak_mongo]
+  org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreService
+    db="sling"
+    mongouri="mongodb://localhost:27017"
+
+[artifacts startLevel=15 runModes=oak_tar]
+  org.apache.jackrabbit/oak-segment-tar/1.26.0
+
+[configurations runModes=oak_tar]
+  org.apache.jackrabbit.oak.segment.SegmentNodeStoreService
+    name="Default\ NodeStore"
+
+# 
+# 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.jcr.repoinit/1.1.20
+  org.apache.sling/org.apache.sling.provisioning.model/1.8.4
+  org.apache.sling/org.apache.sling.repoinit.parser/1.4.2
+
+[configurations]
+  org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
+    references="model@repoinit:context:/resources/provisioning/model.txt"
+
+  [: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
+
+# content-package installer
+create service user sling-package-install
+
+set ACL for sling-package-install
+allow	jcr:all     on	/
+allow   jcr:namespaceManagement,jcr:nodeTypeDefinitionManagement on :repository
+end
+
+#
+# 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.
+#
+#
+#
+# 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.20.0
+
+[artifacts]
+  commons-codec/commons-codec/1.14
+  commons-collections/commons-collections/3.2.2
+  javax.mail/mail/1.5.0-b01
+  org.antlr/antlr4-runtime/4.7.2
+  org.apache.commons/commons-collections4/4.4
+  org.apache.commons/commons-math/2.2
+  org.apache.geronimo.bundles/jstl/1.2_1
+  org.apache.httpcomponents/httpclient-osgi/4.5.10
+  org.apache.httpcomponents/httpcore-osgi/4.4.12
+  org.apache.jackrabbit.vault/org.apache.jackrabbit.vault/3.4.4
+  org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.10_1
+  org.apache.sling/org.apache.sling.adapter/2.1.10
+  org.apache.sling/org.apache.sling.auth.form/1.0.20
+  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.scheduler/2.7.6
+  org.apache.sling/org.apache.sling.commons.threads/3.2.20
+  org.apache.sling/org.apache.sling.engine/2.7.2
+  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.1.0
+  org.apache.sling/org.apache.sling.installer.factory.packages/1.0.4
+  org.apache.sling/org.apache.sling.installer.hc/2.0.2
+  org.apache.sling/org.apache.sling.installer.provider.jcr/3.2.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.scripting.api/2.2.0
+  org.apache.sling/org.apache.sling.scripting.core/2.2.0
+  org.apache.sling/org.apache.sling.scripting.el-api/1.0.2
+  org.apache.sling/org.apache.sling.scripting.javascript/3.1.2
+  org.apache.sling/org.apache.sling.scripting.jsp-api/1.0.2
+  org.apache.sling/org.apache.sling.scripting.jsp.taglib/2.4.0
+  org.apache.sling/org.apache.sling.scripting.jsp/2.4.2
+  org.apache.sling/org.apache.sling.scripting.sightly.compiler.java/1.1.4-1.4.0
+  org.apache.sling/org.apache.sling.scripting.sightly.compiler/1.2.4-1.4.0
+  org.apache.sling/org.apache.sling.scripting.sightly.js.provider/1.1.0
+  org.apache.sling/org.apache.sling.scripting.sightly.models.provider/1.0.10
+  org.apache.sling/org.apache.sling.scripting.sightly.repl/1.0.6
+  org.apache.sling/org.apache.sling.scripting.sightly.runtime/1.2.0-1.4.0
+  org.apache.sling/org.apache.sling.scripting.sightly/1.3.2-1.4.0
+  org.apache.sling/org.apache.sling.serviceuser.webconsole/1.0.2
+  org.apache.sling/org.apache.sling.serviceusermapper/1.4.4
+  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.6.4
+# 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
+  org.apache.sling/org.apache.sling.xss/2.2.2
+
+[artifacts startLevel=4]
+  org.apache.felix/org.apache.felix.metatype/1.2.2
+  org.apache.felix/org.apache.felix.scr/2.1.20
+
+[artifacts startLevel=5]
+  commons-fileupload/commons-fileupload/1.4
+  commons-io/commons-io/2.6
+  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
+  org.apache.felix/org.apache.felix.bundlerepository/2.0.10
+  org.apache.felix/org.apache.felix.http.whiteboard/4.0.0
+  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.plugins.ds/2.1.0
+  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.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/4.5.0
+  org.apache.sling/org.apache.sling.api/2.22.0
+  org.apache.sling/org.apache.sling.auth.core/1.4.6
+  org.apache.sling/org.apache.sling.commons.log.webconsole/1.0.0
+  org.apache.sling/org.apache.sling.extensions.threaddump/0.2.2
+  org.apache.sling/org.apache.sling.extensions.webconsolebranding/1.0.2
+  org.apache.sling/org.apache.sling.extensions.webconsolesecurityprovider/1.2.4
+
+[artifacts startLevel=10]
+  org.apache.felix/org.apache.felix.http.sslfilter/1.2.6
+  org.apache.pdfbox/fontbox/2.0.17
+  org.apache.pdfbox/jempbox/1.8.16
+  org.apache.pdfbox/pdfbox/2.0.17
+  org.apache.tika/tika-core/1.24
+  org.apache.tika/tika-parsers/1.24
+
+[artifacts startLevel=15]
+  com.google.guava/guava/15.0
+  io.dropwizard.metrics/metrics-core/3.2.6
+  org.apache.jackrabbit/jackrabbit-data/2.20.0
+  org.apache.jackrabbit/jackrabbit-jcr-commons/2.20.0
+  org.apache.jackrabbit/jackrabbit-jcr-rmi/2.20.0
+  org.apache.jackrabbit/jackrabbit-spi-commons/2.20.0
+  org.apache.jackrabbit/jackrabbit-spi/2.20.0
+  org.apache.jackrabbit/jackrabbit-webdav/2.20.0
+  org.apache.sling/org.apache.sling.commons.metrics/1.2.8
+  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.davex/1.3.10
+  org.apache.sling/org.apache.sling.jcr.jackrabbit.accessmanager/3.0.4
+  org.apache.sling/org.apache.sling.jcr.jackrabbit.usermanager/2.2.8
+  org.apache.sling/org.apache.sling.jcr.jcr-wrapper/2.0.0
+  org.apache.sling/org.apache.sling.jcr.registration/1.0.6
+  org.apache.sling/org.apache.sling.jcr.webconsole/1.0.2
+  org.apache.sling/org.apache.sling.jcr.webdav/2.3.8
+  org.apache.sling/org.apache.sling.resource.filter/1.0.0
+
+[configurations]
+  org.apache.sling.commons.log.LogManager
+    org.apache.sling.commons.log.file="logs/error.log"
+    org.apache.sling.commons.log.file.number=I"7"
+    org.apache.sling.commons.log.file.size="'.'yyyy-MM-dd"
+    org.apache.sling.commons.log.level="info"
+    org.apache.sling.commons.log.packagingDataEnabled=B"true"
+    org.apache.sling.commons.log.pattern="%d{dd.MM.yyyy\ HH:mm:ss.SSS}\ *%level*\ [%thread]\ %logger\ %msg%n"
+
+  org.apache.sling.engine.impl.log.RequestLogger
+    access.log.enabled=B"true"
+    access.log.output="log.access"
+    access.log.outputtype=I"0"
+    request.log.enabled=B"true"
+    request.log.output="log.request"
+    request.log.outputtype=I"0"
+
+# DavEx servlet requires config now
+  org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet
+    alias="/server"
+
+# WebDAV servlet requires config now
+  org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet
+    dav.root="/dav"
+
+# 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.commons.log.LogManager.factory.config-access.log
+    org.apache.sling.commons.log.file="logs/access.log"
+    org.apache.sling.commons.log.level="info"
+    org.apache.sling.commons.log.names=[ \
+    "log.access", \
+    ]
+    org.apache.sling.commons.log.pattern="%msg%n"
+
+  org.apache.sling.commons.log.LogManager.factory.config-request.log
+    org.apache.sling.commons.log.file="logs/request.log"
+    org.apache.sling.commons.log.level="info"
+    org.apache.sling.commons.log.names=[ \
+    "log.request", \
+    ]
+    org.apache.sling.commons.log.pattern="%msg%n"
+
+# 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.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", \
+    ]
+    whitelist.name="sling"
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-i18n
+    user.mapping=[ \
+    "org.apache.sling.i18n\=sling-i18n", \
+    ]
+
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-installer-factories
+    user.mapping=[ \
+    "org.apache.sling.installer.factory.packages\=sling-package-install", \
+    ]
+
+  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", \
+    ]
+
+  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-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", \
+    ]
+
+  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", \
+    ]
+
+# 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-xss
+    user.mapping=[ \
+    "org.apache.sling.xss\=sling-xss", \
+    ]
+
+  [: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 >>>
+
+
+
+#
+# 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.impl/1.5.0
+  org.apache.sling/org.apache.sling.caconfig.spi/1.3.4
+
+[configurations]
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling-caconfig
+    user.mapping=[ \
+    "org.apache.sling.caconfig.impl\=sling-readall", \
+    ]
+
+  [:repoinit]
+create path (sling:Folder) /conf
+
+
+#
+# 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.base/2.0.8
+  org.apache.sling/org.apache.sling.discovery.commons/1.0.20
+  org.apache.sling/org.apache.sling.discovery.oak/1.2.28
+  org.apache.sling/org.apache.sling.discovery.support/1.0.4
+
+[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", \
+    ]
+
+  [: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
+
+
+
+#
+# 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.dea/1.1.4
+  org.apache.sling/org.apache.sling.event/4.2.12
+
+[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", \
+    ]
+
+  [: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
+
+
+
+#
+# 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-validation]
+
+[artifacts]
+  org.apache.sling/org.apache.sling.validation.api/1.0.0
+  org.apache.sling/org.apache.sling.validation.core/1.0.4
+
+[configurations]
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-validation
+    user.mapping=[ \
+    "org.apache.sling.validation.core\=sling-validation", \
+    ]
+
+  [:repoinit]
+create service user sling-validation
+
+create path (sling:Folder) /apps
+create path (sling:Folder) /libs
+
+set ACL for sling-validation
+allow   jcr:read    on /apps
+allow   jcr:read    on /libs
+end
+
+
+#
+# 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 - Slingshot Sample App
+
+[feature name=slingshot version=0.9.0]
+
+[artifacts]
+  org.apache.sling/org.apache.sling.sample.slingshot/0.9.0
+
+[configurations]
+  org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.slingshot
+    user.mapping=[ \
+    "org.apache.sling.sample.slingshot\=slingshot-service", \
+    ]
+
+  [:repoinit]
+create service user slingshot-service
+create user slingshot1 with password slingshot1
+create user slingshot2 with password slingshot2
+
+create path (sling:Folder) /content/slingshot
+create path (sling:Folder) /content/slingshot/users
+create path (sling:Folder) /content/slingshot/users/slingshot1
+create path (sling:Folder) /content/slingshot/users/slingshot2
+
+set ACL for slingshot-service
+allow   jcr:read,rep:write    on /content/slingshot
+end
+
+set ACL for slingshot1
+allow   jcr:read,rep:write    on /content/slingshot/users/slingshot1
+end
+
+set ACL for slingshot2
+allow   jcr:read,rep:write    on /content/slingshot/users/slingshot2
+end
+
+#
+# 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.jetty/4.0.18
+  org.apache.felix/org.apache.felix.http.servlet-api/1.1.2
+
+# 
+# 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.12
