Created the basic version of a FM based Sling Starter Project
This project requires the ‘create-fm-descriptor’ goal from the Slingfeature Maven Plugin.
For now this is just a showcase on how to migrate Sling to a FM based setup
diff --git a/sling-org-apache-sling-feature-model-starter/pom.xml b/sling-org-apache-sling-feature-model-starter/pom.xml
new file mode 100644
index 0000000..3a4188f
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/pom.xml
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+ <!--
+ 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.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>sling</artifactId>
+ <version>35</version>
+ <relativePath />
+ </parent>
+
+ <artifactId>org.apache.sling.feature.model.starter</artifactId>
+ <packaging>slingosgifeature</packaging>
+ <version>12-SNAPSHOT</version>
+
+ <name>Apache Sling Feature Module Starter Application</name>
+ <description>
+ The Sling Starter application built from Feature Models
+ </description>
+
+<!-- <scm>-->
+<!-- <connection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter.git</connection>-->
+<!-- <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter.git</developerConnection>-->
+<!-- <url>https://gitbox.apache.org/repos/asf?p=sling-org-apache-sling-starter.git</url>-->
+<!-- <tag>HEAD</tag>-->
+<!-- </scm>-->
+
+ <properties>
+ <sling.java.version>8</sling.java.version>
+ <IT.expected.bundles.count>126</IT.expected.bundles.count>
+ <slingfeature-maven-plugin.version>1.1.10</slingfeature-maven-plugin.version>
+ </properties>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>ianal-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>verify-legal-files</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>${basedir}</directory>
+ <includes>
+ <include>derby.log</include>
+ <include>cachedir/**</include>
+ <include>sling/**</include>
+ <include>jackrabbit/**</include>
+ <include>coverage.ec</include>
+ </includes>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>slingfeature-maven-plugin</artifactId>
+ <version>${slingfeature-maven-plugin.version}</version>
+ <extensions>true</extensions>
+ <configuration>
+ <features>src/main/fm</features>
+ </configuration>
+ <executions>
+ <execution>
+ <id>aggregate-base-feature</id>
+ <phase>generate-test-sources</phase>
+ <goals>
+ <goal>aggregate-features</goal>
+ </goals>
+ <configuration>
+ <aggregates>
+ <aggregate>
+ <classifier>sling12</classifier>
+ <filesInclude>**/*.json</filesInclude>
+ <includeArtifact>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.jcr.packageinit</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+<!-- <classifier>jcr-packageinit</classifier>-->
+ <type>pom</type>
+ </includeArtifact>
+ </aggregate>
+ </aggregates>
+ </configuration>
+ </execution>
+ <execution>
+ <id>attach-base-feature</id>
+ <phase>process-test-sources</phase>
+ <goals>
+ <goal>attach-features</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+<!-- <plugin>-->
+<!-- <groupId>org.apache.sling</groupId>-->
+<!-- <artifactId>slingstart-maven-plugin</artifactId>-->
+<!-- <extensions>true</extensions>-->
+<!-- <executions>-->
+<!-- <execution>-->
+<!-- <id>start-container</id>-->
+<!-- <goals>-->
+<!-- <goal>start</goal>-->
+<!-- <goal>stop</goal>-->
+<!-- </goals>-->
+<!-- </execution>-->
+<!-- </executions> -->
+<!-- <configuration>-->
+<!-- <createWebapp>true</createWebapp>-->
+<!-- <servers>-->
+<!-- <server>-->
+<!-- <port>${http.port}</port>-->
+<!-- <controlPort>${sling.control.port}</controlPort>-->
+<!-- </server>-->
+<!-- </servers> -->
+<!-- </configuration>-->
+<!-- </plugin>-->
+
+<!-- <plugin>-->
+<!-- <groupId>org.codehaus.mojo</groupId>-->
+<!-- <artifactId>build-helper-maven-plugin</artifactId>-->
+<!-- <executions>-->
+<!-- <execution>-->
+<!-- <id>reserve-network-port</id>-->
+<!-- <goals>-->
+<!-- <!– pre-integration-test is too late –>-->
+<!-- <goal>reserve-network-port</goal>-->
+<!-- </goals>-->
+<!-- <phase>process-resources</phase>-->
+<!-- <configuration>-->
+<!-- <portNames>-->
+<!-- <portName>http.port</portName>-->
+<!-- <portName>sling.control.port</portName>-->
+<!-- </portNames>-->
+<!-- </configuration>-->
+<!-- </execution>-->
+<!-- </executions>-->
+<!-- </plugin>-->
+
+<!-- <plugin>-->
+<!-- <artifactId>maven-failsafe-plugin</artifactId>-->
+<!-- <executions>-->
+<!-- <execution>-->
+<!-- <goals>-->
+<!-- <goal>integration-test</goal>-->
+<!-- <goal>verify</goal>-->
+<!-- </goals>-->
+<!-- </execution>-->
+<!-- </executions>-->
+<!-- <configuration>-->
+<!-- <systemPropertyVariables>-->
+<!-- <launchpad.http.port>${http.port}</launchpad.http.port>-->
+<!-- <IT.expected.bundles.count>${IT.expected.bundles.count}</IT.expected.bundles.count>-->
+<!-- </systemPropertyVariables>-->
+<!-- </configuration>-->
+<!-- </plugin> -->
+ </plugins>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <!-- Extend RAT configuration from parent pom -->
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes combine.children="append">
+ <!-- Exclude sling instance -->
+ <exclude>sling/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.httpcomponents</groupId>
+ <artifactId>httpclient</artifactId>
+ <version>4.5.6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.utils</artifactId>
+ <version>1.11.0</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>launch</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>slingfeature-maven-plugin</artifactId>
+ <version>1.0.7-SNAPSHOT</version>
+ <extensions>true</extensions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.feature.launcher</artifactId>
+ <version>1.0.7-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.sling</groupId>
+ <artifactId>org.apache.sling.feature.extension.content</artifactId>
+ <version>1.0.5-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ <executions>
+ <execution>
+ <id>launch-it</id>
+ <phase>install</phase>
+ <goals>
+ <goal>launch-features</goal>
+ </goals>
+ <configuration>
+ <selection>
+ <includeClassifier>sling12</includeClassifier>
+ </selection>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
+
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/boot_boot.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/boot_boot.json
new file mode 100644
index 0000000..543c3f0
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/boot_boot.json
@@ -0,0 +1,114 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:boot:12-SNAPSHOT",
+ "variables":{
+ "slf4j.version":"1.7.25"
+ },
+ "bundles":[
+ {
+ "id":"org.apache.aries:org.apache.aries.util:1.1.3",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.commons:commons-lang3:3.8.1",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.configadmin:1.9.14",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.eventadmin:1.5.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.geronimo.specs:geronimo-annotation_1.3_spec:1.1",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.geronimo.specs:geronimo-atinject_1.0_spec:1.1",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:1.1.3",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl:2.2.11_1",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.saaj-impl:1.3.23_2",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2:2.9.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.jaxws-api-2.2:2.9.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.servicemix.specs:org.apache.servicemix.specs.saaj-api-1.3:2.8.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.log:5.1.10",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.logservice:1.0.6",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.core:3.9.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.factory.configuration:1.2.2",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.provider.file:1.1.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.javax.activation:0.1.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.settings:1.3.10",
+ "start-order":"1"
+ },
+ {
+ "id":"org.jvnet.staxex:stax-ex:1.7.6",
+ "start-order":"1"
+ },
+ {
+ "id":"org.osgi:org.osgi.util.function:1.1.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.osgi:org.osgi.util.promise:1.1.0",
+ "start-order":"1"
+ },
+ {
+ "id":"org.slf4j:jcl-over-slf4j:1.7.25",
+ "start-order":"1"
+ },
+ {
+ "id":"org.slf4j:log4j-over-slf4j:1.7.25",
+ "start-order":"1"
+ },
+ {
+ "id":"org.slf4j:slf4j-api:1.7.25",
+ "start-order":"1"
+ }
+ ],
+ "framework-properties":{
+ "sling.run.mode.install.options":"oak_tar,oak_mongo",
+ "localIndexDir":"${sling.home}/repository/index",
+ "repository.home":"${sling.home}/repository"
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/composum_composum-nodes.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/composum_composum-nodes.json
new file mode 100644
index 0000000..56297ef
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/composum_composum-nodes.json
@@ -0,0 +1,43 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:composum_composum-nodes:12-SNAPSHOT",
+ "variables":{
+ "composum.nodes.version":"1.11.3"
+ },
+ "bundles":[
+ {
+ "id":"com.composum.sling.core:composum-sling-core-commons:1.11.3",
+ "start-order":"20"
+ },
+ {
+ "id":"com.composum.sling.core:composum-sling-core-console:1.11.3",
+ "start-order":"20"
+ },
+ {
+ "id":"com.composum.sling.core:composum-sling-core-jslibs:1.11.3",
+ "start-order":"20"
+ },
+ {
+ "id":"com.composum.sling.core:composum-sling-package-manager:1.11.3",
+ "start-order":"20"
+ },
+ {
+ "id":"com.composum.sling.core:composum-sling-user-management:1.11.3",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.jackrabbit.vault:org.apache.jackrabbit.vault:3.2.4",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "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"
+ }
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/healthcheck_healthcheck.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/healthcheck_healthcheck.json
new file mode 100644
index 0000000..f83dc3c
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/healthcheck_healthcheck.json
@@ -0,0 +1,106 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:healthcheck:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.felix:org.apache.felix.healthcheck.api:2.0.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.healthcheck.core:2.0.6",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.healthcheck.generalchecks:2.0.4",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.healthcheck.webconsoleplugin:2.0.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.hc.api:1.0.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.hc.support:1.0.6",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "org.apache.felix.hc.generalchecks.BundlesStartedCheck":{
+ "hc.tags":[
+ "bundles"
+ ]
+ },
+ "org.apache.felix.hc.generalchecks.CpuCheck":{
+ "hc.tags":[
+ "cpu",
+ "system-resources"
+ ],
+ "cpuPercentageThresholdWarn":95
+ },
+ "org.apache.felix.hc.generalchecks.DiskSpaceCheck":{
+ "hc.tags":[
+ "diskspace",
+ "system-resources"
+ ],
+ "diskPaths":[
+ "."
+ ]
+ },
+ "org.apache.felix.hc.generalchecks.FrameworkStartCheck":{
+ "hc.tags":[
+ "systemalive"
+ ],
+ "targetStartLevel:Integer":"30"
+ },
+ "org.apache.felix.hc.generalchecks.MemoryCheck":{
+ "hc.tags":[
+ "memory",
+ "system-resources"
+ ],
+ "heapUsedPercentageThresholdCritical":100,
+ "heapUsedPercentageThresholdWarn":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"
+ ]
+ },
+ "org.apache.felix.hc.generalchecks.ThreadUsageCheck":{
+ "hc.tags":[
+ "threads",
+ "cpu",
+ "system-resources"
+ ]
+ },
+ "org.apache.felix.hc.core.impl.filter.ServiceUnavailableFilter~startupandshutdown":{
+ "osgi.http.whiteboard.filter.regex":"(?!/system/).*",
+ "avoid404DuringStartup":true,
+ "service.ranking:Integer":"2147483647",
+ "includeExecutionResult":false,
+ "osgi.http.whiteboard.context.select":"(osgi.http.whiteboard.context.name=*)",
+ "tags":[
+ "systemalive"
+ ],
+ "autoDisableFilter":true,
+ "responseTextFor503":"classpath:org.apache.sling.starter.content:content/content/startup/index.html"
+ },
+ "org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet~default":{
+ "servletPath":"/system/health"
+ },
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~hc-support":{
+ "user.mapping":[
+ "org.apache.sling.hc.support=sling-readall"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/launchpad_launchpad.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/launchpad_launchpad.json
new file mode 100644
index 0000000..d36c980
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/launchpad_launchpad.json
@@ -0,0 +1,19 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:launchpad:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.launchpad.base:6.0.2-2.6.36",
+ "start-order":"20"
+ }
+ ],
+ "framework-properties":{
+ "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}\"",
+ "felix.systempackages.calculate.uses":"true",
+ "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}}",
+ "felix.systempackages.substitution":"true",
+ "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.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}\""
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/oak_oak.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/oak_oak.json
new file mode 100644
index 0000000..4871cd8
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/oak_oak.json
@@ -0,0 +1,120 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:oak:12-SNAPSHOT",
+ "variables":{
+ "oak.version":"1.16.0"
+ },
+ "bundles":[
+ {
+ "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-api:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-blob-plugins:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-blob:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-commons:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-core-spi:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-core:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-jcr:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-lucene:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-query-spi:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-security-spi:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-store-composite:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-store-document:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-store-spi:1.16.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.oak.server:1.2.2",
+ "start-order":"16"
+ },
+ {
+ "id":"org.apache.jackrabbit:oak-segment-tar:1.16.0",
+ "run-modes":"oak_tar",
+ "start-order":"15"
+ }
+ ],
+ "configurations":{
+ "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.RandomAuthorizableNodeName":{
+ "length:Integer":"21"
+ },
+ "org.apache.jackrabbit.oak.security.user.UserConfigurationImpl":{
+ "groupsPath":"/home/groups",
+ "defaultDepth":"1",
+ "importBehavior":"besteffort",
+ "usersPath":"/home/users"
+ },
+ "org.apache.jackrabbit.oak.spi.security.user.action.DefaultAuthorizableActionProvider":{
+ "userPrivilegeNames":[
+ "jcr:all"
+ ],
+ "groupPrivilegeNames":[
+ "jcr:read"
+ ],
+ "enabledActions":[
+ "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"
+ ]
+ },
+ "org.apache.felix.jaas.Configuration.factory~GuestLoginModule":{
+ "jaas.controlFlag":"optional",
+ "jaas.classname":"org.apache.jackrabbit.oak.spi.security.authentication.GuestLoginModule",
+ "jaas.ranking:Integer":"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:Integer":"200"
+ },
+ "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService":{
+ "name":"Default NodeStore"
+ }
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/repoinit_repoinit.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/repoinit_repoinit.json
new file mode 100644
index 0000000..2c75958
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/repoinit_repoinit.json
@@ -0,0 +1,66 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:repoinit:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.10",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.provisioning.model:1.8.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.repoinit.parser:1.2.4",
+ "start-order":"20"
+ }
+ ],
+ "repoinit:TEXT|true":[
+ "# general",
+ "create path (sling:OrderedFolder) /content",
+ "set ACL for everyone",
+ "allow jcr:read\ton /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\tjcr:read\ton\t/",
+ "allow\trep:write\ton /apps/sling/install",
+ "end"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/scripting_sling.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/scripting_sling.json
new file mode 100644
index 0000000..818dbd6
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/scripting_sling.json
@@ -0,0 +1,96 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:scripting_sling:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.antlr:antlr4-runtime:4.7.1",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.rhino:1.7.10_1",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.api:2.2.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.core:2.0.56",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.el-api:1.0.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.javascript:3.0.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.jsp-api:1.0.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.jsp.taglib:2.4.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.jsp:2.3.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler.java:1.1.2-1.4.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler:1.1.2-1.4.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.js.provider:1.0.28",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.models.provider:1.0.8",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.repl:1.0.6",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly.runtime:1.1.0-1.4.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.scripting.sightly:1.1.2-1.4.0",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "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"
+ ]
+ }
+ },
+ "repoinit:TEXT|true":[
+ "#<<< 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 >>>"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-caconfig_sling-caconfig.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-caconfig_sling-caconfig.json
new file mode 100644
index 0000000..cc3131d
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-caconfig_sling-caconfig.json
@@ -0,0 +1,28 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling-caconfig:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.caconfig.api:1.1.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.caconfig.impl:1.4.14",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.caconfig.spi:1.3.4",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-caconfig":{
+ "user.mapping":[
+ "org.apache.sling.caconfig.impl=sling-readall"
+ ]
+ }
+ },
+ "repoinit:TEXT|true":[
+ "create path (sling:Folder) /conf"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-discovery_sling-discovery.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-discovery_sling-discovery.json
new file mode 100644
index 0000000..c50f992
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-discovery_sling-discovery.json
@@ -0,0 +1,45 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling-discovery:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.discovery.api:1.0.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.discovery.base:2.0.8",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.discovery.commons:1.0.20",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.discovery.oak:1.2.28",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.discovery.support:1.0.4",
+ "start-order":"20"
+ }
+ ],
+ "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:TEXT|true":[
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-event_sling-event.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-event_sling-event.json
new file mode 100644
index 0000000..8cd957e
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-event_sling-event.json
@@ -0,0 +1,32 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling-event:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.event.dea:1.1.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.event:4.2.12",
+ "start-order":"20"
+ }
+ ],
+ "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:TEXT|true":[
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-models-jacksonexporter_models-jacksonexporter.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-models-jacksonexporter_models-jacksonexporter.json
new file mode 100644
index 0000000..f2e664c
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-models-jacksonexporter_models-jacksonexporter.json
@@ -0,0 +1,25 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:12-SNAPSHOT",
+ "variables":{
+ "jackson.version":"2.9.9"
+ },
+ "bundles":[
+ {
+ "id":"com.fasterxml.jackson.core:jackson-annotations:2.9.9",
+ "start-order":"20"
+ },
+ {
+ "id":"com.fasterxml.jackson.core:jackson-core:2.9.9",
+ "start-order":"20"
+ },
+ {
+ "id":"com.fasterxml.jackson.core:jackson-databind:2.9.9",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.models.jacksonexporter:1.0.8",
+ "start-order":"20"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-validation_sling-validation.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-validation_sling-validation.json
new file mode 100644
index 0000000..da06699
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling-validation_sling-validation.json
@@ -0,0 +1,32 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling-validation:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.validation.api:1.0.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.validation.core:1.0.4",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~validation":{
+ "user.mapping":[
+ "org.apache.sling.validation.core=sling-validation"
+ ]
+ }
+ },
+ "repoinit:TEXT|true":[
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_sling.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_sling.json
new file mode 100644
index 0000000..cca427c
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_sling.json
@@ -0,0 +1,450 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling:12-SNAPSHOT",
+ "variables":{
+ "jackrabbit.version":"2.18.2"
+ },
+ "bundles":[
+ {
+ "id":"commons-codec:commons-codec:1.12",
+ "start-order":"20"
+ },
+ {
+ "id":"commons-collections:commons-collections:3.2.2",
+ "start-order":"20"
+ },
+ {
+ "id":"javax.mail:mail:1.5.0-b01",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.commons:commons-collections4:4.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.commons:commons-math:2.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.geronimo.bundles:jstl:1.2_1",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.httpcomponents:httpclient-osgi:4.5.6",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.httpcomponents:httpcore-osgi:4.4.10",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.adapter:2.1.10",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.auth.form:1.0.14",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.bundleresource.impl:2.3.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.classloader:1.4.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.compiler:2.3.6",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.fsclassloader:1.0.10",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.mime:2.2.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.osgi:2.4.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.scheduler:2.7.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.threads:3.2.18",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.engine:2.6.18",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.fsresource:2.1.14",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.i18n:2.5.14",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.console:1.0.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.hc:2.0.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.installer.provider.jcr:3.1.26",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.contentloader:2.3.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.resource:3.0.18",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.models.api:1.3.8",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.models.impl:1.4.10",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.resourceresolver:1.6.8",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.serviceuser.webconsole:1.0.0",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.serviceusermapper:1.4.4",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.servlets.get:2.1.40",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.servlets.post:2.3.30",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.servlets.resolver:2.5.2",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.xss:2.1.8",
+ "start-order":"20"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.metatype:1.2.2",
+ "start-order":"4"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.scr:2.1.16",
+ "start-order":"4"
+ },
+ {
+ "id":"commons-fileupload:commons-fileupload:1.3.3",
+ "start-order":"5"
+ },
+ {
+ "id":"commons-io:commons-io:2.6",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.aries.jmx:org.apache.aries.jmx.api:1.1.5",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.aries.jmx:org.apache.aries.jmx.core:1.1.8",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.aries.jmx:org.apache.aries.jmx.whiteboard:1.2.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.bundlerepository:2.0.10",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.http.whiteboard:4.0.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.inventory:1.0.6",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.prefs:1.1.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole.plugins.ds:2.1.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole.plugins.event:1.1.8",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole.plugins.memoryusage:1.0.8",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole.plugins.obr:1.0.4",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole.plugins.packageadmin:1.0.4",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.webconsole:4.3.8",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.api:2.20.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.auth.core:1.4.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.johnzon:1.1.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.log.webconsole:1.0.0",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.extensions.threaddump:0.2.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.extensions.webconsolebranding:1.0.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.extensions.webconsolesecurityprovider:1.2.2",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.starter.content:1.0.4",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.http.sslfilter:1.2.6",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.pdfbox:fontbox:2.0.16",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.pdfbox:jempbox:1.8.16",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.pdfbox:pdfbox:2.0.16",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.tika:tika-core:1.21",
+ "start-order":"10"
+ },
+ {
+ "id":"org.apache.tika:tika-parsers:1.21",
+ "start-order":"10"
+ },
+ {
+ "id":"com.google.guava:guava:15.0",
+ "start-order":"15"
+ },
+ {
+ "id":"io.dropwizard.metrics:metrics-core:3.2.6",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-api:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-data:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-spi-commons:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-spi:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.jackrabbit:jackrabbit-webdav:2.18.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.commons.metrics:1.2.6",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.api:2.4.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.base:3.0.6",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.davex:1.3.10",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.accessmanager:3.0.4",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.usermanager:2.2.8",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.jcr-wrapper:2.0.0",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.registration:1.0.6",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.webconsole:1.0.2",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.jcr.webdav:2.3.8",
+ "start-order":"15"
+ },
+ {
+ "id":"org.apache.sling:org.apache.sling.resource.filter:1.0.0",
+ "start-order":"15"
+ }
+ ],
+ "configurations":{
+ "org.apache.sling.commons.log.LogManager":{
+ "org.apache.sling.commons.log.packagingDataEnabled":true,
+ "org.apache.sling.commons.log.pattern":"%d{dd.MM.yyyy HH:mm:ss.SSS} *%level* [%thread] %logger %msg%n",
+ "org.apache.sling.commons.log.level":"info",
+ "org.apache.sling.commons.log.file":"logs/error.log",
+ "org.apache.sling.commons.log.file.number:Integer":"7",
+ "org.apache.sling.commons.log.file.size":"'.'yyyy-MM-dd"
+ },
+ "org.apache.sling.engine.impl.log.RequestLogger":{
+ "access.log.enabled":true,
+ "request.log.outputtype:Integer":"0",
+ "access.log.output":"log.access",
+ "request.log.output":"log.request",
+ "request.log.enabled":true,
+ "access.log.outputtype:Integer":"0"
+ },
+ "org.apache.sling.jcr.davex.impl.servlets.SlingDavExServlet":{
+ "alias":"/server"
+ },
+ "org.apache.sling.jcr.webdav.impl.servlets.SimpleWebDavServlet":{
+ "dav.root":"/dav"
+ },
+ "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.level":"info",
+ "org.apache.sling.commons.log.file":"logs/access.log"
+ },
+ "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.level":"info",
+ "org.apache.sling.commons.log.file":"logs/request.log"
+ },
+ "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~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~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"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_slingshot.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_slingshot.json
new file mode 100644
index 0000000..1628f03
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/sling_slingshot.json
@@ -0,0 +1,39 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:sling_slingshot:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.sling:org.apache.sling.sample.slingshot:0.9.0",
+ "start-order":"20"
+ }
+ ],
+ "configurations":{
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.slingshot":{
+ "user.mapping":[
+ "org.apache.sling.sample.slingshot=slingshot-service"
+ ]
+ }
+ },
+ "repoinit:TEXT|true":[
+ "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"
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/standalone_standalone.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/standalone_standalone.json
new file mode 100644
index 0000000..4bf9d52
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/standalone_standalone.json
@@ -0,0 +1,16 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:standalone:12-SNAPSHOT",
+ "bundles":[
+ {
+ "id":"org.apache.felix:org.apache.felix.http.jetty:4.0.8",
+ "run-modes":":standalone",
+ "start-order":"5"
+ },
+ {
+ "id":"org.apache.felix:org.apache.felix.http.servlet-api:1.1.2",
+ "run-modes":":standalone",
+ "start-order":"5"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/sling-org-apache-sling-feature-model-starter/src/main/fm/webapp_webapp.json b/sling-org-apache-sling-feature-model-starter/src/main/fm/webapp_webapp.json
new file mode 100644
index 0000000..94fe38e
--- /dev/null
+++ b/sling-org-apache-sling-feature-model-starter/src/main/fm/webapp_webapp.json
@@ -0,0 +1,4 @@
+
+{
+ "id":"org.apache.sling:org.apache.sling.feature.model.starter:slingfeature:webapp:12-SNAPSHOT"
+}
\ No newline at end of file