Feature Model Example
diff --git a/feature-model/example/Example.md b/feature-model/example/Example.md
new file mode 100644
index 0000000..e460bce
--- /dev/null
+++ b/feature-model/example/Example.md
@@ -0,0 +1,4 @@
+The example are currently broken - the json needs to be updated to the latest format (change from start level to start order)
+
+java -jar ../feature-applicationbuilder/target/org.apache.sling.feature.applicationbuilder-0.0.1-SNAPSHOT.jar -d sling -u ~/.m2/repository -o sling.json
+java -jar ../feature-launcher/target/org.apache.sling.feature.launcher-0.0.1-SNAPSHOT.jar -a sling.json -I -v
diff --git a/feature-model/example/sling/boot.json b/feature-model/example/sling/boot.json
new file mode 100644
index 0000000..5778cd3
--- /dev/null
+++ b/feature-model/example/sling/boot.json
@@ -0,0 +1,23 @@
+{
+ "id": "generated/boot/1.0.0",
+ "bundles": [
+ "org.apache.aries/org.apache.aries.util/1.1.3",
+ "org.apache.felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT",
+ "org.apache.felix/org.apache.felix.eventadmin/1.4.10",
+ "org.apache.geronimo.specs/geronimo-atinject_1.0_spec/1.0",
+ "org.apache.sling/org.apache.sling.commons.log/5.0.2",
+ "org.apache.sling/org.apache.sling.commons.logservice/1.0.6",
+ "org.apache.sling/org.apache.sling.fragment.transaction/1.0.0",
+ "org.apache.sling/org.apache.sling.fragment.ws/1.0.2",
+ "org.apache.sling/org.apache.sling.fragment.xml/1.0.2",
+ "org.apache.sling/org.apache.sling.installer.core/3.8.10",
+ "org.apache.sling/org.apache.sling.installer.factory.configuration/1.1.2",
+ "org.apache.sling/org.apache.sling.installer.provider.file/1.1.0",
+ "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.8",
+ "org.slf4j/jcl-over-slf4j/1.7.25",
+ "org.slf4j/log4j-over-slf4j/1.7.25",
+ "org.slf4j/slf4j-api/1.7.25"
+ ]
+}
diff --git a/feature-model/example/sling/composum-console.json b/feature-model/example/sling/composum-console.json
new file mode 100644
index 0000000..daf7c36
--- /dev/null
+++ b/feature-model/example/sling/composum-console.json
@@ -0,0 +1,12 @@
+{
+ "id": "generated/composum-console/1.0.0",
+ "bundles": [
+ "com.composum.sling.core/composum-sling-core-commons/1.8.2",
+ "com.composum.sling.core/composum-sling-core-config/1.8.2",
+ "com.composum.sling.core/composum-sling-core-console/1.8.2",
+ "com.composum.sling.core/composum-sling-core-jslibs/1.8.2",
+ "com.composum.sling.core/composum-sling-package-manager/1.8.2",
+ "com.composum.sling.core/composum-sling-user-management/1.8.2",
+ "org.apache.jackrabbit.vault/org.apache.jackrabbit.vault/3.1.30"
+ ]
+}
diff --git a/feature-model/example/sling/launchpad.json b/feature-model/example/sling/launchpad.json
new file mode 100644
index 0000000..5d467b5
--- /dev/null
+++ b/feature-model/example/sling/launchpad.json
@@ -0,0 +1,8 @@
+{
+ "id": "generated/launchpad/1.0.0",
+ "framework-properties": {
+ "localIndexDir": "${sling.home}/repository/index",
+ "repository.home": "${sling.home}/repository",
+ "sling.run.mode.install.options": "oak_tar,oak_mongo"
+ }
+}
diff --git a/feature-model/example/sling/models-jacksonexporter.json b/feature-model/example/sling/models-jacksonexporter.json
new file mode 100644
index 0000000..9e31d27
--- /dev/null
+++ b/feature-model/example/sling/models-jacksonexporter.json
@@ -0,0 +1,9 @@
+{
+ "id": "generated/models-jacksonexporter/1.0.0",
+ "bundles": [
+ "com.fasterxml.jackson.core/jackson-annotations/2.8.7",
+ "com.fasterxml.jackson.core/jackson-core/2.8.7",
+ "com.fasterxml.jackson.core/jackson-databind/2.8.7",
+ "org.apache.sling/org.apache.sling.models.jacksonexporter/1.0.6"
+ ]
+}
diff --git a/feature-model/example/sling/oak.json b/feature-model/example/sling/oak.json
new file mode 100644
index 0000000..9a65d86
--- /dev/null
+++ b/feature-model/example/sling/oak.json
@@ -0,0 +1,83 @@
+{
+ "id": "generated/oak/1.0.0",
+ "bundles": [
+ {
+ "id": "org.apache.felix/org.apache.felix.jaas/1.0.2",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-blob/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-commons/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-core/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-jcr/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-lucene/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/oak-segment-tar/1.6.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.oak.server/1.1.4",
+ "start-order" : 16
+ }
+ ],
+ "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"
+ ],
+ "enabledActions": [
+ "org.apache.jackrabbit.oak.spi.security.user.action.AccessControlAction"
+ ],
+ "groupPrivilegeNames": [
+ "jcr:read"
+ ]
+ },
+ "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"
+ }
+ }
+}
diff --git a/feature-model/example/sling/repoinit.json b/feature-model/example/sling/repoinit.json
new file mode 100644
index 0000000..b958e18
--- /dev/null
+++ b/feature-model/example/sling/repoinit.json
@@ -0,0 +1,9 @@
+{
+ "id": "generated/repoinit/1.0.0",
+ "bundles": [
+ "org.apache.sling/org.apache.sling.jcr.repoinit/1.1.5-SNAPSHOT",
+ "org.apache.sling/org.apache.sling.provisioning.model/1.8.2",
+ "org.apache.sling/org.apache.sling.repoinit.parser/1.1.1-SNAPSHOT"
+ ],
+ "repoinit:TEXT|false": "# general\ncreate path (sling:OrderedFolder) /content\nset ACL for everyone\nallow jcr:read\ton /\nend\n\n# sling-mapping\ncreate service user sling-mapping\n\nset ACL for sling-mapping\nallow jcr:read on /\nend\n\n# sling-readall\ncreate service user sling-readall\n\nset ACL for sling-readall\nallow jcr:read on /\nend\n\n# sling-xss\ncreate service user sling-xss\n\ncreate path (sling:Folder) /libs/sling/xss\ncreate path (sling:Folder) /apps/sling/xss\n\nset ACL for sling-xss\ndeny jcr:all on /\nallow jcr:read on /libs/sling/xss,/apps/sling/xss\nend\n\n# sling-i18n\ncreate service user sling-i18n\n\nset ACL for sling-i18n\nallow jcr:read on /\nend\n\n# sling-jcr-install\ncreate service user sling-jcr-install\n\n# used for config OSGi writeback\ncreate path (sling:Folder) /apps/sling/install\n\nset ACL for sling-jcr-install\nallow\tjcr:read\ton\t/\nallow\trep:write\ton /apps/sling/install\nend\n"
+}
diff --git a/feature-model/example/sling/sling-event.json b/feature-model/example/sling/sling-event.json
new file mode 100644
index 0000000..263dee1
--- /dev/null
+++ b/feature-model/example/sling/sling-event.json
@@ -0,0 +1,28 @@
+{
+ "id": "generated/sling-event/1.0.0",
+ "bundles": [
+ "org.apache.sling/org.apache.sling.discovery.api/1.0.4",
+ "org.apache.sling/org.apache.sling.discovery.base/2.0.0",
+ "org.apache.sling/org.apache.sling.discovery.commons/1.0.20",
+ "org.apache.sling/org.apache.sling.discovery.oak/1.2.18",
+ "org.apache.sling/org.apache.sling.discovery.support/1.0.0",
+ "org.apache.sling/org.apache.sling.event.dea/1.1.2",
+ "org.apache.sling/org.apache.sling.event/4.2.6"
+ ],
+ "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"
+ ]
+ },
+ "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|false": "create service user sling-discovery\n\ncreate path (sling:Folder) /var/discovery\ncreate path (sling:Folder) /var/discovery/oak\n\nset ACL for sling-discovery\nallow jcr:read,rep:write on /var/discovery\nend\n\n\n\ncreate service user sling-event\n\ncreate path (sling:Folder) /var\ncreate path (sling:Folder) /var/eventing\n\nset ACL for sling-event\nallow jcr:read,rep:write on /var/eventing\nend\n\n"
+}
diff --git a/feature-model/example/sling/sling-validation.json b/feature-model/example/sling/sling-validation.json
new file mode 100644
index 0000000..5c48abe
--- /dev/null
+++ b/feature-model/example/sling/sling-validation.json
@@ -0,0 +1,23 @@
+{
+ "id": "generated/sling-validation/1.0.0",
+ "bundles": [
+ "org.apache.sling/org.apache.sling.caconfig.api/1.1.0",
+ "org.apache.sling/org.apache.sling.caconfig.impl/1.4.2",
+ "org.apache.sling/org.apache.sling.caconfig.spi/1.3.2",
+ "org.apache.sling/org.apache.sling.validation.api/1.0.0",
+ "org.apache.sling/org.apache.sling.validation.core/1.0.0"
+ ],
+ "configurations": {
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-caconfig": {
+ "user.mapping": [
+ "org.apache.sling.caconfig.impl=sling-readall"
+ ]
+ },
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~validation": {
+ "user.mapping": [
+ "org.apache.sling.validation.core=sling-validation"
+ ]
+ }
+ },
+ "repoinit:TEXT|false": "create path (sling:Folder) /conf\n\n\ncreate service user sling-validation\n\ncreate path (sling:Folder) /apps\ncreate path (sling:Folder) /libs\n\nset ACL for sling-validation\nallow jcr:read on /apps\nallow jcr:read on /libs\nend\n"
+}
diff --git a/feature-model/example/sling/sling.json b/feature-model/example/sling/sling.json
new file mode 100644
index 0000000..75fd227
--- /dev/null
+++ b/feature-model/example/sling/sling.json
@@ -0,0 +1,522 @@
+{
+ "id": "generated/sling/1.0.0",
+ "bundles": [
+ {
+ "id": "commons-fileupload/commons-fileupload/1.3.2",
+ "start-order" : 5
+ },
+ {
+ "id": "commons-io/commons-io/2.5",
+ "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.7",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.aries.jmx/org.apache.aries.jmx.whiteboard/1.1.5",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.bundlerepository/1.6.4",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.inventory/1.0.4",
+ "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.0.6",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.webconsole.plugins.event/1.1.6",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.webconsole.plugins.memoryusage/1.0.6",
+ "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.4",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.johnzon/1.1.0",
+ "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.0.0",
+ "start-order" : 5
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.http.sslfilter/1.2.2",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.metatype/1.1.4",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.scr/2.0.12",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.pdfbox/fontbox/2.0.7",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.pdfbox/jempbox/1.8.13",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.pdfbox/pdfbox/2.0.7",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.tika/tika-core/1.14",
+ "start-order" : 10
+ },
+ {
+ "id": "org.apache.tika/tika-parsers/1.14",
+ "start-order" : 10
+ },
+ {
+ "id": "com.google.guava/guava/15.0",
+ "start-order" : 15
+ },
+ {
+ "id": "io.dropwizard.metrics/metrics-core/3.2.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-api/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-data/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-jcr-commons/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-jcr-rmi/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-spi-commons/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-spi/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.jackrabbit/jackrabbit-webdav/2.14.3",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.metrics/1.2.0",
+ "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.4",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.davex/1.3.8",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.jackrabbit.accessmanager/3.0.0",
+ "start-order" : 15
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.jackrabbit.usermanager/2.2.6",
+ "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.2",
+ "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": "commons-codec/commons-codec/1.9",
+ "start-order" : 20
+ },
+ {
+ "id": "commons-collections/commons-collections/3.2.2",
+ "start-order" : 20
+ },
+ {
+ "id": "commons-lang/commons-lang/2.6",
+ "start-order" : 20
+ },
+ {
+ "id": "javax.mail/mail/1.4.7",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.commons/commons-collections4/4.1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.commons/commons-lang3/3.5",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.commons/commons-math/2.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.felix/org.apache.felix.http.whiteboard/3.0.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.geronimo.bundles/commons-httpclient/3.1_1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.geronimo.bundles/jstl/1.2_1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.httpcomponents/httpclient-osgi/4.4.1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.httpcomponents/httpcore-osgi/4.4.1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.servicemix.bundles/org.apache.servicemix.bundles.rhino/1.7.7.1_1",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.adapter/2.1.10",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.api/2.16.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.auth.core/1.4.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.auth.form/1.0.8",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.bundleresource.impl/2.2.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.classloader/1.4.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.compiler/2.3.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.fsclassloader/1.0.6",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.mime/2.1.10",
+ "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.6.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.commons.threads/3.2.6",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.engine/2.6.8",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.fsresource/2.1.8",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.hc.api/1.0.0",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.hc.core/1.2.8",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.hc.webconsole/1.1.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.i18n/2.5.8",
+ "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.provider.jcr/3.1.26",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.contentloader/2.2.4",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.jcr.resource/3.0.4",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.launchpad.content/2.0.12",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.models.api/1.3.4",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.models.impl/1.4.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.resourceresolver/1.5.30",
+ "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.46",
+ "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.2",
+ "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.2.6",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.jsp/2.3.2",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly.compiler.java/1.0.12",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly.compiler/1.0.12",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly.js.provider/1.0.24",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly.models.provider/1.0.6",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly.repl/1.0.4",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.scripting.sightly/1.0.40",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.serviceusermapper/1.3.4",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.servlets.get/2.1.26",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.servlets.post/2.3.22",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.servlets.resolver/2.4.14",
+ "start-order" : 20
+ },
+ {
+ "id": "org.apache.sling/org.apache.sling.xss/2.0.0",
+ "start-order" : 20
+ }
+ ],
+ "configurations": {
+ "org.apache.sling.commons.log.LogManager": {
+ "org.apache.sling.commons.log.pattern": "%d{dd.MM.yyyy HH:mm:ss.SSS} *%level* [%thread] %logger %msg%n",
+ "org.apache.sling.commons.log.file": "logs/error.log",
+ "org.apache.sling.commons.log.level": "info",
+ "org.apache.sling.commons.log.file.size": "'.'yyyy-MM-dd",
+ "org.apache.sling.commons.log.file.number:Integer": "7"
+ },
+ "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.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.pattern": "%msg%n",
+ "org.apache.sling.commons.log.names": [
+ "log.access"
+ ],
+ "org.apache.sling.commons.log.file": "logs/access.log",
+ "org.apache.sling.commons.log.level": "info"
+ },
+ "org.apache.sling.commons.log.LogManager.factory.config~request.log": {
+ "org.apache.sling.commons.log.pattern": "%msg%n",
+ "org.apache.sling.commons.log.names": [
+ "log.request"
+ ],
+ "org.apache.sling.commons.log.file": "logs/request.log",
+ "org.apache.sling.commons.log.level": "info"
+ },
+ "org.apache.sling.jcr.base.internal.LoginAdminWhitelist.fragment~sling": {
+ "whitelist.bundles": [
+ "org.apache.sling.installer.factory.packages",
+ "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.davex",
+ "org.apache.sling.jcr.jackrabbit.usermanager",
+ "org.apache.sling.jcr.oak.server",
+ "org.apache.sling.jcr.repoinit",
+ "org.apache.sling.jcr.resource",
+ "org.apache.sling.jcr.webconsole",
+ "org.apache.sling.servlets.post"
+ ],
+ "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~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"
+ ]
+ },
+ "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:TEXT|false": "#<<< SLING-5848 - Define service user and ACLs for Scripting\ncreate service user sling-scripting\n\ncreate path (sling:Folder) /libs\ncreate path (sling:Folder) /apps\n\nset ACL for sling-scripting\ndeny jcr:all on /\nallow jcr:read on /libs,/apps\nend\n# SLING-5848 - Define service user and ACLs for Scripting >>>\n\n"
+}
diff --git a/feature-model/example/sling/slingshot.json b/feature-model/example/sling/slingshot.json
new file mode 100644
index 0000000..8837dc5
--- /dev/null
+++ b/feature-model/example/sling/slingshot.json
@@ -0,0 +1,14 @@
+{
+ "id": "generated/slingshot/0.8.0",
+ "bundles": [
+ "org.apache.sling/org.apache.sling.sample.slingshot/0.8.0"
+ ],
+ "configurations": {
+ "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.slingshot": {
+ "user.mapping": [
+ "org.apache.sling.sample.slingshot=slingshot-service"
+ ]
+ }
+ },
+ "repoinit:TEXT|false": "create service user slingshot-service\ncreate user slingshot1 with password slingshot1\ncreate user slingshot2 with password slingshot2\n\ncreate path (sling:Folder) /slingshot\ncreate path (sling:Folder) /slingshot/users\ncreate path (sling:Folder) /slingshot/users/slingshot1\ncreate path (sling:Folder) /slingshot/users/slingshot2\n\nset ACL for slingshot-service\nallow jcr:read,rep:write on /slingshot\nend\n\nset ACL for slingshot1\nallow jcr:read,rep:write on /slingshot/users/slingshot1\nend\n\nset ACL for slingshot2\nallow jcr:read,rep:write on /slingshot/users/slingshot2\nend\n"
+}
diff --git a/feature-model/example/sling/standalone.json b/feature-model/example/sling/standalone.json
new file mode 100644
index 0000000..9b787e1
--- /dev/null
+++ b/feature-model/example/sling/standalone.json
@@ -0,0 +1,7 @@
+{
+ "id": "generated/standalone/1.0.0",
+ "bundles": [
+ "org.apache.felix/org.apache.felix.http.jetty/3.4.4",
+ "org.apache.felix/org.apache.felix.http.servlet-api/1.1.2"
+ ]
+}