You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by dk...@apache.org on 2020/07/30 18:18:07 UTC

[sling-org-apache-sling-app-cms] branch SLING-8913-multiple-instance-types updated (c49bc51 -> 1f38d3e)

This is an automated email from the ASF dual-hosted git repository.

dklco pushed a change to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git.


    from c49bc51  Building the Composite NodeStore on build of the docker image
     add 8f7adc8  Reducing logging on the edit include filter
     new 0abd9a4  Updating to bring the PM closer to Sling 12
     new 1795c27  Adding a POM to convert PM to FM
     new c1b6527  Adding migrated Feature model files
     new b172f73  Ignoring the launcher directory
     new d3cc884  Using variables
     new 37c207a  Fixing an error with the whiteboard security load order
     new 9cbf454  Updated file optim to 20 to resolve start order issue
     new b32853b  Updating the start order of several foundational libraries
     new ee5c777  Moving codec and post up a level each
     new 1f150bd  Bumping up a few commons bundles:
     new 923a859  Almost all bundle order issues resolved
     new aed81c5  Fixed all bundle start ordering issues
     new a31974a  Adding current state on creating a standalone jar
     new 4a515c8  Revising the module name and updating to embed feature launcher to enable launching the standalone JAR
     new 9eee38b  Simplify the conversion POM
     new b7915fc  Working on a composite node store solution
     new c36b456  Building the Composite NodeStore on build of the docker image
     new 1f38d3e  Merge branch 'SLING-8913-multiple-instance-types' of github.com:apache/sling-org-apache-sling-app-cms into SLING-8913-multiple-instance-types

The 18 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../org/apache/sling/cms/core/internal/filters/EditIncludeFilter.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


[sling-org-apache-sling-app-cms] 16/18: Working on a composite node store solution

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit b7915fce5f79bf5997d2d0197b2346b357b1b419
Author: Dan Klco <dk...@apache.org>
AuthorDate: Tue Jul 28 10:10:49 2020 -0400

    Working on a composite node store solution
---
 feature/pom.xml                                    | 21 +++++++--
 .../node-store-composite/composite-runtime.json    | 54 ++++++++++++++++++++++
 .../node-store-composite/composite-seed.json       | 25 ++++++++++
 .../main/features/node-store-segment/segment.json  |  8 ++++
 feature/src/main/features/oak_oak.json             |  3 --
 5 files changed, 104 insertions(+), 7 deletions(-)

diff --git a/feature/pom.xml b/feature/pom.xml
index 60f0191..59af970 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -74,20 +74,33 @@
                     </framework>
                     <aggregates>
                         <aggregate>
-                            <classifier>slingcms</classifier>
+                            <classifier>slingcms-segment</classifier>
                             <filesInclude>**/*.json</filesInclude>
-                            <title>Sling CMS</title>
+                            <filesExclude>node-store-composite/*.json</filesExclude>
+                            <title>Sling CMS -</title>
+                        </aggregate>
+                        <aggregate>
+                            <classifier>slingcms-composite-seed</classifier>
+                            <filesInclude>**/*.json</filesInclude>
+                            <filesExclude>node-store-composite/composite-runtime.json,node-store-segment/*.json</filesExclude>
+                            <title>Sling CMS - Composite Node Store Seed</title>
+                        </aggregate>
+                        <aggregate>
+                            <classifier>slingcms-composite-runtime</classifier>
+                            <filesInclude>**/*.json</filesInclude>
+                            <filesExclude>node-store-composite/composite-seed.json,node-store-segment/*.json</filesExclude>
+                            <title>Sling CMS - Composite Node Store Runtime</title>
                         </aggregate>
                     </aggregates>
                     <scans>
                         <scan>
-                            <includeClassifier>slingcms</includeClassifier>
+                            <includeClassifier>slingcms-segment,slingcms-composite-seed,slingcms-composite-runtime</includeClassifier>
                         </scan>
                     </scans>
                     <archives>
                         <archive>
                             <classifier>slingcms_far</classifier>
-                            <includeClassifier>slingcms</includeClassifier>
+                            <includeClassifier>slingcms-segment</includeClassifier>
                         </archive>
                     </archives>
                 </configuration>
diff --git a/feature/src/main/features/node-store-composite/composite-runtime.json b/feature/src/main/features/node-store-composite/composite-runtime.json
new file mode 100644
index 0000000..b30683e
--- /dev/null
+++ b/feature/src/main/features/node-store-composite/composite-runtime.json
@@ -0,0 +1,54 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:composite-runtime:${cms.version}",
+    "configurations": {
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService": {
+            "name": "Default NodeStore",
+            "standby": true
+        },
+        "org.apache.jackrabbit.oak.composite.CompositeNodeStoreService": {
+            "seedMount": "libs",
+            "enabled": true,
+            "enableChecks": false,
+            "partialReadOnly": true
+        },
+        "org.apache.jackrabbit.oak.composite.CrossMountReferenceValidatorProvider": {
+            "failOnDetection": true
+        },
+        "org.apache.jackrabbit.oak.composite.MountInfoProviderService": {
+            "mountName": "libs",
+            "readOnlyMount": true,
+            "pathsSupportingFragments": [
+                "/oak:index/*$"
+            ],
+            "mountedPaths": [
+                "/libs",
+                "/apps",
+                "/jcr:system/rep:permissionStore/oak:mount-libs-default"
+            ]
+        },
+        "org.apache.jackrabbit.oak.composite.checks.NodeTypeMountedNodeStoreChecker~referenceable": {
+            "errorLabel": "referenceable node",
+            "invalidNodeType": "mix:referenceable",
+            "excludedNodeTypes": [
+                "nt:resource"
+            ]
+        },
+        "org.apache.jackrabbit.oak.composite.checks.NodeTypeMountedNodeStoreChecker~versionable": {
+            "errorLabel": "versionable node",
+            "invalidNodeType": "mix:versionable"
+        },
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory~libs": {
+            "role": "composite-mount-libs",
+            "customBlobStore": false,
+            "nodeDeduplicationCache.size": 0,
+            "repository.home": "sling/composite/repository-libs"
+        },
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreFactory~global": {
+            "service.ranking": 100,
+            "role": "composite-global",
+            "registerDescriptors": true,
+            "dispatchChanges": true,
+            "repository.home": "sling/composite/repository-global"
+        }
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/node-store-composite/composite-seed.json b/feature/src/main/features/node-store-composite/composite-seed.json
new file mode 100644
index 0000000..914d66f
--- /dev/null
+++ b/feature/src/main/features/node-store-composite/composite-seed.json
@@ -0,0 +1,25 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:composite-seed:${cms.version}",
+    "configurations": {
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService": {
+            "name": "Default NodeStore",
+            "standby": true
+        },
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService~global": {
+            "name": "Default NodeStore",
+            "repository.home": "sling/composite/repository-libs"
+        },
+        "org.apache.jackrabbit.oak.composite.CrossMountReferenceValidatorProvider": {
+            "failOnDetection": true
+        },
+        "org.apache.jackrabbit.oak.composite.MountInfoProviderService": {
+            "mountName": "libs",
+            "readOnlyMount": false,
+            "pathsSupportingFragments": [],
+            "mountedPaths": [
+                "/libs",
+                "/apps"
+            ]
+        }
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/node-store-segment/segment.json b/feature/src/main/features/node-store-segment/segment.json
new file mode 100644
index 0000000..abcc4d4
--- /dev/null
+++ b/feature/src/main/features/node-store-segment/segment.json
@@ -0,0 +1,8 @@
+{
+    "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:segment:${cms.version}",
+    "configurations": {
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService":{
+            "name":"Default NodeStore"
+        }
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/oak_oak.json b/feature/src/main/features/oak_oak.json
index b3842d5..9ae10b6 100644
--- a/feature/src/main/features/oak_oak.json
+++ b/feature/src/main/features/oak_oak.json
@@ -113,9 +113,6 @@
             "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


[sling-org-apache-sling-app-cms] 08/18: Updating the start order of several foundational libraries

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit b32853b8a6d3ef5ba09839f3f8cf59ea03ea4f18
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:49:02 2020 -0400

    Updating the start order of several foundational libraries
---
 feature/src/main/features/cms_cms.json     |  2 +-
 feature/src/main/features/sling_sling.json | 10 +++++-----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
index 0a7cb95..552c56c 100644
--- a/feature/src/main/features/cms_cms.json
+++ b/feature/src/main/features/cms_cms.json
@@ -64,7 +64,7 @@
         },
         {
             "id":"com.sun.mail:javax.mail:1.6.2",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.commons:commons-text:1.8",
diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 2120da4..1b91001 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -4,11 +4,11 @@
     "bundles":[
         {
             "id":"commons-codec:commons-codec:1.14",
-            "start-order":"20"
+            "start-order":"10"
         },
         {
             "id":"commons-collections:commons-collections:3.2.2",
-            "start-order":"20"
+            "start-order":"10"
         },
         {
             "id":"javax.mail:mail:1.5.0-b01",
@@ -16,7 +16,7 @@
         },
         {
             "id":"org.apache.commons:commons-collections4:4.4",
-            "start-order":"20"
+            "start-order":"10"
         },
         {
             "id":"org.apache.commons:commons-math:2.2",
@@ -28,11 +28,11 @@
         },
         {
             "id":"org.apache.httpcomponents:httpclient-osgi:4.5.10",
-            "start-order":"20"
+            "start-order":"10"
         },
         {
             "id":"org.apache.httpcomponents:httpcore-osgi:4.4.12",
-            "start-order":"20"
+            "start-order":"10"
         },
         {
             "id":"org.apache.jackrabbit.vault:org.apache.jackrabbit.vault:3.4.4",


[sling-org-apache-sling-app-cms] 01/18: Updating to bring the PM closer to Sling 12

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 0abd9a46af8d14b3f2c936726b6a62866513f6fe
Author: Dan Klco <dk...@apache.org>
AuthorDate: Wed Jul 22 21:32:37 2020 -0400

    Updating to bring the PM closer to Sling 12
---
 builder/src/main/provisioning/cms.txt            |  4 ++-
 builder/src/main/provisioning/composum.txt       |  1 -
 builder/src/main/provisioning/healthcheck.txt    |  8 ++---
 builder/src/main/provisioning/repoinit.txt       |  7 +++++
 builder/src/main/provisioning/sling-rewriter.txt | 38 ------------------------
 5 files changed, 14 insertions(+), 44 deletions(-)

diff --git a/builder/src/main/provisioning/cms.txt b/builder/src/main/provisioning/cms.txt
index ce7725d..f928e47 100644
--- a/builder/src/main/provisioning/cms.txt
+++ b/builder/src/main/provisioning/cms.txt
@@ -48,9 +48,12 @@
     org.apache.sling/org.apache.sling.cms.reference/${cms.version}
     org.apache.sling/org.apache.sling.cms.transformer/${cms.version}
     org.apache.sling/org.apache.sling.commons.crypto/1.0.0
+    org.apache.sling/org.apache.sling.commons.html/1.1.0
     org.apache.sling/org.apache.sling.commons.messaging.mail/1.0.0
     org.apache.sling/org.apache.sling.commons.messaging/1.0.0
+    org.apache.sling/org.apache.sling.rewriter/1.2.2
     org.apache.tika/tika-bundle/1.22
+    org.codehaus.groovy/groovy-all/2.4.19
 
 [:repoinit]
 
@@ -77,7 +80,6 @@
         allow   jcr:read    on /etc/usergenerated
     end
 
-
     # Groups
     create path (rep:AuthorizableFolder) /home/groups
     create path (rep:AuthorizableFolder) /home/groups/sling-cms
diff --git a/builder/src/main/provisioning/composum.txt b/builder/src/main/provisioning/composum.txt
index 8e85e85..e33d9f5 100644
--- a/builder/src/main/provisioning/composum.txt
+++ b/builder/src/main/provisioning/composum.txt
@@ -20,7 +20,6 @@
     composum.nodes.version=1.12.0
 
 [artifacts startLevel=20]
-  org.codehaus.groovy/groovy-all/2.4.19
   com.composum.sling.core/composum-sling-core-commons/${composum.nodes.version}
   com.composum.sling.core/composum-sling-core-console/${composum.nodes.version}
   com.composum.sling.core/composum-sling-core-jslibs/${composum.nodes.version}
diff --git a/builder/src/main/provisioning/healthcheck.txt b/builder/src/main/provisioning/healthcheck.txt
index b487486..faecc88 100644
--- a/builder/src/main/provisioning/healthcheck.txt
+++ b/builder/src/main/provisioning/healthcheck.txt
@@ -20,10 +20,10 @@
 
 # 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
+    org.apache.felix/org.apache.felix.healthcheck.api/2.0.4
+    org.apache.felix/org.apache.felix.healthcheck.core/2.0.8
+    org.apache.felix/org.apache.felix.healthcheck.generalchecks/2.0.6
+    org.apache.felix/org.apache.felix.healthcheck.webconsoleplugin/2.0.2
 
 # sling health check bundles at startlevel 20
 [artifacts startLevel=20]
diff --git a/builder/src/main/provisioning/repoinit.txt b/builder/src/main/provisioning/repoinit.txt
index 2ffed83..2730768 100644
--- a/builder/src/main/provisioning/repoinit.txt
+++ b/builder/src/main/provisioning/repoinit.txt
@@ -71,6 +71,13 @@
         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
 [configurations]
   org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
     references="model@repoinit:context:/resources/provisioning/model.txt"
diff --git a/builder/src/main/provisioning/sling-rewriter.txt b/builder/src/main/provisioning/sling-rewriter.txt
deleted file mode 100644
index 65ebf3d..0000000
--- a/builder/src/main/provisioning/sling-rewriter.txt
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-#  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-rewriter]
-
-[artifacts]
-    org.apache.sling/org.apache.sling.commons.html/1.1.0
-    org.apache.sling/org.apache.sling.rewriter/1.2.2
-
-[:repoinit]
-    create service user sling-rewriter
-
-    set ACL for sling-rewriter
-        allow   jcr:read    on /
-    end
-
-
-[configurations]
-    org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended-sling.rewriter
-        user.mapping=[
-            "org.apache.sling.rewriter\=sling-rewriter"
-        ]
\ No newline at end of file


[sling-org-apache-sling-app-cms] 09/18: Moving codec and post up a level each

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit ee5c777121e437d4202489ff90608362718fb57f
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:55:39 2020 -0400

    Moving codec and post up a level each
---
 feature/src/main/features/sling_sling.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 1b91001..3d0e4f8 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -4,7 +4,7 @@
     "bundles":[
         {
             "id":"commons-codec:commons-codec:1.14",
-            "start-order":"10"
+            "start-order":"5"
         },
         {
             "id":"commons-collections:commons-collections:3.2.2",
@@ -136,7 +136,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.servlets.post:2.3.36",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.servlets.resolver:2.7.2",


[sling-org-apache-sling-app-cms] 05/18: Using variables

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit d3cc8841940efe55bedf49ad612277057febac57
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:37:04 2020 -0400

    Using variables
---
 feature/src/main/features/boot_boot.json           | 11 +++----
 feature/src/main/features/cms_cms.json             | 20 +++++--------
 .../src/main/features/composum_composum-nodes.json | 13 ++++----
 .../src/main/features/healthcheck_healthcheck.json |  2 +-
 feature/src/main/features/launchpad_launchpad.json |  2 +-
 feature/src/main/features/oak_oak.json             | 35 ++++++++++------------
 feature/src/main/features/repoinit_repoinit.json   |  2 +-
 feature/src/main/features/scripting_sling.json     |  2 +-
 .../features/sling-caconfig_sling-caconfig.json    |  2 +-
 .../features/sling-discovery_sling-discovery.json  |  2 +-
 .../src/main/features/sling-event_sling-event.json |  2 +-
 ...els-jacksonexporter_models-jacksonexporter.json | 11 +++----
 .../sling-validation_sling-validation.json         |  2 +-
 feature/src/main/features/sling_sling.json         | 17 +++++------
 .../src/main/features/standalone_standalone.json   |  2 +-
 feature/src/main/features/webapp_webapp.json       |  2 +-
 16 files changed, 54 insertions(+), 73 deletions(-)

diff --git a/feature/src/main/features/boot_boot.json b/feature/src/main/features/boot_boot.json
index 0fbf079..bf25bdf 100644
--- a/feature/src/main/features/boot_boot.json
+++ b/feature/src/main/features/boot_boot.json
@@ -1,9 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:boot:0.16.3-SNAPSHOT",
-    "variables":{
-        "slf4j.version":"1.7.25"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:boot:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.aries:org.apache.aries.util:1.1.3",
@@ -114,15 +111,15 @@
             "start-order":"1"
         },
         {
-            "id":"org.slf4j:jcl-over-slf4j:1.7.25",
+            "id":"org.slf4j:jcl-over-slf4j:${slf4j.version}",
             "start-order":"1"
         },
         {
-            "id":"org.slf4j:log4j-over-slf4j:1.7.25",
+            "id":"org.slf4j:log4j-over-slf4j:${slf4j.version}",
             "start-order":"1"
         },
         {
-            "id":"org.slf4j:slf4j-api:1.7.25",
+            "id":"org.slf4j:slf4j-api:${slf4j.version}",
             "start-order":"1"
         }
     ],
diff --git a/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
index cd0a963..4bc76db 100644
--- a/feature/src/main/features/cms_cms.json
+++ b/feature/src/main/features/cms_cms.json
@@ -1,21 +1,17 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:cms:0.16.3-SNAPSHOT",
-    "variables":{
-        "oak.version":"1.26.0",
-        "cms.version":"0.16.3-SNAPSHOT"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:cms:${cms.version}",
     "bundles":[
         {
             "id":"com.github.livesense:org.liveSense.fragment.sun.misc:1.0.5",
             "start-order":"5"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.cms.api:0.16.3-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.cms.api:${cms.version}",
             "start-order":"5"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.cms.ui:0.16.3-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.cms.ui:${cms.version}",
             "start-order":"5"
         },
         {
@@ -43,11 +39,11 @@
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-auth-external:1.26.0",
+            "id":"org.apache.jackrabbit:oak-auth-external:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-auth-ldap:1.26.0",
+            "id":"org.apache.jackrabbit:oak-auth-ldap:${oak.version}",
             "start-order":"15"
         },
         {
@@ -83,15 +79,15 @@
             "start-order":"20"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.cms.core:0.16.3-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.cms.core:${cms.version}",
             "start-order":"20"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.cms.reference:0.16.3-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.cms.reference:${cms.version}",
             "start-order":"20"
         },
         {
-            "id":"org.apache.sling:org.apache.sling.cms.transformer:0.16.3-SNAPSHOT",
+            "id":"org.apache.sling:org.apache.sling.cms.transformer:${cms.version}",
             "start-order":"20"
         },
         {
diff --git a/feature/src/main/features/composum_composum-nodes.json b/feature/src/main/features/composum_composum-nodes.json
index acaf4bd..e299f16 100644
--- a/feature/src/main/features/composum_composum-nodes.json
+++ b/feature/src/main/features/composum_composum-nodes.json
@@ -1,24 +1,21 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:composum_composum-nodes:0.16.3-SNAPSHOT",
-    "variables":{
-        "composum.nodes.version":"1.12.0"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:composum_composum-nodes:${cms.version}",
     "bundles":[
         {
-            "id":"com.composum.sling.core:composum-sling-core-commons:1.12.0",
+            "id":"com.composum.sling.core:composum-sling-core-commons:${composum.version}",
             "start-order":"20"
         },
         {
-            "id":"com.composum.sling.core:composum-sling-core-console:1.12.0",
+            "id":"com.composum.sling.core:composum-sling-core-console:${composum.version}",
             "start-order":"20"
         },
         {
-            "id":"com.composum.sling.core:composum-sling-core-jslibs:1.12.0",
+            "id":"com.composum.sling.core:composum-sling-core-jslibs:${composum.version}",
             "start-order":"20"
         },
         {
-            "id":"com.composum.sling.core:composum-sling-package-manager:1.12.0",
+            "id":"com.composum.sling.core:composum-sling-package-manager:${composum.version}",
             "start-order":"20"
         }
     ],
diff --git a/feature/src/main/features/healthcheck_healthcheck.json b/feature/src/main/features/healthcheck_healthcheck.json
index 06d0b5d..d60a075 100644
--- a/feature/src/main/features/healthcheck_healthcheck.json
+++ b/feature/src/main/features/healthcheck_healthcheck.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:healthcheck:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:healthcheck:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.healthcheck.api:2.0.4",
diff --git a/feature/src/main/features/launchpad_launchpad.json b/feature/src/main/features/launchpad_launchpad.json
index acdb0b8..2d06b41 100644
--- a/feature/src/main/features/launchpad_launchpad.json
+++ b/feature/src/main/features/launchpad_launchpad.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:launchpad:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:launchpad:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.launchpad.base:6.0.2-2.6.36",
diff --git a/feature/src/main/features/oak_oak.json b/feature/src/main/features/oak_oak.json
index 27f959c..37aa1d7 100644
--- a/feature/src/main/features/oak_oak.json
+++ b/feature/src/main/features/oak_oak.json
@@ -1,68 +1,65 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:oak:0.16.3-SNAPSHOT",
-    "variables":{
-        "oak.version":"1.26.0"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:oak:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
             "start-order":"10"
         },
         {
-            "id":"org.apache.jackrabbit:oak-api:1.26.0",
+            "id":"org.apache.jackrabbit:oak-api:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-blob-plugins:1.26.0",
+            "id":"org.apache.jackrabbit:oak-blob-plugins:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-blob:1.26.0",
+            "id":"org.apache.jackrabbit:oak-blob:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-commons:1.26.0",
+            "id":"org.apache.jackrabbit:oak-commons:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-core-spi:1.26.0",
+            "id":"org.apache.jackrabbit:oak-core-spi:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-core:1.26.0",
+            "id":"org.apache.jackrabbit:oak-core:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-jackrabbit-api:1.26.0",
+            "id":"org.apache.jackrabbit:oak-jackrabbit-api:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-jcr:1.26.0",
+            "id":"org.apache.jackrabbit:oak-jcr:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-lucene:1.26.0",
+            "id":"org.apache.jackrabbit:oak-lucene:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-query-spi:1.26.0",
+            "id":"org.apache.jackrabbit:oak-query-spi:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-security-spi:1.26.0",
+            "id":"org.apache.jackrabbit:oak-security-spi:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-store-composite:1.26.0",
+            "id":"org.apache.jackrabbit:oak-store-composite:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-store-document:1.26.0",
+            "id":"org.apache.jackrabbit:oak-store-document:${oak.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:oak-store-spi:1.26.0",
+            "id":"org.apache.jackrabbit:oak-store-spi:${oak.version}",
             "start-order":"15"
         },
         {
@@ -70,7 +67,7 @@
             "start-order":"16"
         },
         {
-            "id":"org.apache.jackrabbit:oak-segment-tar:1.26.0",
+            "id":"org.apache.jackrabbit:oak-segment-tar:${oak.version}",
             "run-modes":"oak_tar",
             "start-order":"15"
         }
diff --git a/feature/src/main/features/repoinit_repoinit.json b/feature/src/main/features/repoinit_repoinit.json
index 8327bc9..1b74940 100644
--- a/feature/src/main/features/repoinit_repoinit.json
+++ b/feature/src/main/features/repoinit_repoinit.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:repoinit:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:repoinit:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.24",
diff --git a/feature/src/main/features/scripting_sling.json b/feature/src/main/features/scripting_sling.json
index 915a006..3510ab0 100644
--- a/feature/src/main/features/scripting_sling.json
+++ b/feature/src/main/features/scripting_sling.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:scripting_sling:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:scripting_sling:${cms.version}",
     "bundles":[
         {
             "id":"org.antlr:antlr4-runtime:4.7.2",
diff --git a/feature/src/main/features/sling-caconfig_sling-caconfig.json b/feature/src/main/features/sling-caconfig_sling-caconfig.json
index 91d46b2..739f8cc 100644
--- a/feature/src/main/features/sling-caconfig_sling-caconfig.json
+++ b/feature/src/main/features/sling-caconfig_sling-caconfig.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-caconfig:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-caconfig:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.caconfig.api:1.2.0",
diff --git a/feature/src/main/features/sling-discovery_sling-discovery.json b/feature/src/main/features/sling-discovery_sling-discovery.json
index e4da74a..0388d5f 100644
--- a/feature/src/main/features/sling-discovery_sling-discovery.json
+++ b/feature/src/main/features/sling-discovery_sling-discovery.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-discovery:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-discovery:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.discovery.api:1.0.4",
diff --git a/feature/src/main/features/sling-event_sling-event.json b/feature/src/main/features/sling-event_sling-event.json
index 2b236eb..3b6990e 100644
--- a/feature/src/main/features/sling-event_sling-event.json
+++ b/feature/src/main/features/sling-event_sling-event.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-event:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-event:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.event.dea:1.1.4",
diff --git a/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
index d7b04f6..e72f722 100644
--- a/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
+++ b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
@@ -1,20 +1,17 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:0.16.3-SNAPSHOT",
-    "variables":{
-        "jackson.version":"2.11.1"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:${cms.version}",
     "bundles":[
         {
-            "id":"com.fasterxml.jackson.core:jackson-annotations:2.11.1",
+            "id":"com.fasterxml.jackson.core:jackson-annotations:${jackson.version}",
             "start-order":"20"
         },
         {
-            "id":"com.fasterxml.jackson.core:jackson-core:2.11.1",
+            "id":"com.fasterxml.jackson.core:jackson-core:${jackson.version}",
             "start-order":"20"
         },
         {
-            "id":"com.fasterxml.jackson.core:jackson-databind:2.11.1",
+            "id":"com.fasterxml.jackson.core:jackson-databind:${jackson.version}",
             "start-order":"20"
         },
         {
diff --git a/feature/src/main/features/sling-validation_sling-validation.json b/feature/src/main/features/sling-validation_sling-validation.json
index 336a578..0c0eca3 100644
--- a/feature/src/main/features/sling-validation_sling-validation.json
+++ b/feature/src/main/features/sling-validation_sling-validation.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-validation:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-validation:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.models.validation-impl:1.0.0",
diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 250f14b..8b13bac 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -1,9 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling:0.16.3-SNAPSHOT",
-    "variables":{
-        "jackrabbit.version":"2.20.0"
-    },
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling:${cms.version}",
     "bundles":[
         {
             "id":"commons-codec:commons-codec:1.14",
@@ -270,27 +267,27 @@
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-data:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-data:${jackrabbit.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:${jackrabbit.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:${jackrabbit.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-spi-commons:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-spi-commons:${jackrabbit.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-spi:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-spi:${jackrabbit.version}",
             "start-order":"15"
         },
         {
-            "id":"org.apache.jackrabbit:jackrabbit-webdav:2.20.0",
+            "id":"org.apache.jackrabbit:jackrabbit-webdav:${jackrabbit.version}",
             "start-order":"15"
         },
         {
diff --git a/feature/src/main/features/standalone_standalone.json b/feature/src/main/features/standalone_standalone.json
index e44e70d..d40be0a 100644
--- a/feature/src/main/features/standalone_standalone.json
+++ b/feature/src/main/features/standalone_standalone.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:standalone:0.16.3-SNAPSHOT",
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:standalone:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.http.jetty:4.0.18",
diff --git a/feature/src/main/features/webapp_webapp.json b/feature/src/main/features/webapp_webapp.json
index f1e6022..191ea0b 100644
--- a/feature/src/main/features/webapp_webapp.json
+++ b/feature/src/main/features/webapp_webapp.json
@@ -1,4 +1,4 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:webapp:0.16.3-SNAPSHOT"
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:webapp:${cms.version}"
 }
\ No newline at end of file


[sling-org-apache-sling-app-cms] 06/18: Fixing an error with the whiteboard security load order

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 37c207a0b7cb380841f6d2b36fa9ad5cdde16c04
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:42:08 2020 -0400

    Fixing an error with the whiteboard security load order
---
 feature/src/main/features/sling_sling.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 8b13bac..2120da4 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -236,7 +236,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.extensions.webconsolesecurityprovider:1.2.4",
-            "start-order":"5"
+            "start-order":"15"
         },
         {
             "id":"org.apache.felix:org.apache.felix.http.sslfilter:1.2.6",


[sling-org-apache-sling-app-cms] 12/18: Fixed all bundle start ordering issues

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit aed81c5b9143ff89d820837b1127bf4077621540
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 16:23:27 2020 -0400

    Fixed all bundle start ordering issues
---
 feature/pom.xml                        |  2 +-
 feature/src/main/features/cms_cms.json | 24 ++++++++++++------------
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/feature/pom.xml b/feature/pom.xml
index 6c70994..2add139 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -97,7 +97,7 @@
                         <phase>prepare-package</phase>
                         <goals>
                             <goal>aggregate-features</goal>
-                            <!-- <goal>analyse-features</goal> -->
+                            <goal>analyse-features</goal>
                             <goal>attach-features</goal>
                             <goal>attach-featurearchives</goal>
                         </goals>
diff --git a/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
index 552c56c..25697c2 100644
--- a/feature/src/main/features/cms_cms.json
+++ b/feature/src/main/features/cms_cms.json
@@ -8,11 +8,11 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.cms.api:${cms.version}",
-            "start-order":"5"
+            "start-order":"20"
         },
         {
             "id":"org.apache.sling:org.apache.sling.cms.ui:${cms.version}",
-            "start-order":"5"
+            "start-order":"20"
         },
         {
             "id":"com.vladsch.flexmark:flexmark-osgi:0.61.24",
@@ -68,15 +68,15 @@
         },
         {
             "id":"org.apache.commons:commons-text:1.8",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.jasypt:1.9.3_1",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.poi:4.1.1_1",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.cms.core:${cms.version}",
@@ -92,31 +92,31 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.crypto:1.0.0",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.html:1.1.0",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.messaging.mail:1.0.0",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.messaging:1.0.0",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.rewriter:1.2.2",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.tika:tika-bundle:1.22",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.codehaus.groovy:groovy-all:2.4.19",
-            "start-order":"20"
+            "start-order":"15"
         }
     ],
     "configurations":{


[sling-org-apache-sling-app-cms] 10/18: Bumping up a few commons bundles:

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 1f150bd6a713e5473a54518ab10798bb5f5eace5
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 15:07:43 2020 -0400

    Bumping up a few commons bundles:
---
 feature/src/main/features/sling_sling.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 3d0e4f8..dd0fe86 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -64,7 +64,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.mime:2.2.2",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.scheduler:2.7.6",
@@ -72,7 +72,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.commons.threads:3.2.20",
-            "start-order":"20"
+            "start-order":"15"
         },
         {
             "id":"org.apache.sling:org.apache.sling.engine:2.7.2",


[sling-org-apache-sling-app-cms] 13/18: Adding current state on creating a standalone jar

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit a31974a671b4b86ab160f7fd0932f28842c108af
Author: Dan Klco <da...@gmail.com>
AuthorDate: Sat Jul 25 11:57:39 2020 -0400

    Adding current state on creating a standalone jar
---
 feature/pom.xml                                    | 31 ++++++++++++
 feature/src/main/assembly/standalone.xml           | 58 ++++++++++++++++++++++
 .../java/org/apache/sling/cms/feature/Main.java    | 47 ++++++++++++++++++
 feature/src/main/resources/slingcms.properties     | 10 ++++
 4 files changed, 146 insertions(+)

diff --git a/feature/pom.xml b/feature/pom.xml
index 2add139..4644378 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -107,6 +107,31 @@
                     </execution>
                 </executions>
             </plugin>
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>single</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <archive>
+                        <manifest>
+                            <mainClass>
+                                org.apache.sling.cms.feature.Main
+                            </mainClass>
+                            <classpathPrefix>lib/</classpathPrefix>
+                            <addClasspath>true</addClasspath>
+                        </manifest>
+                    </archive>
+                    <descriptors>
+                        <descriptor>src/main/assembly/standalone.xml</descriptor>
+                    </descriptors>
+                </configuration>
+            </plugin>
         </plugins>
 
         <pluginManagement>
@@ -145,5 +170,11 @@
             <version>1.11.2</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.feature.launcher</artifactId>
+            <version>1.1.4</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>
diff --git a/feature/src/main/assembly/standalone.xml b/feature/src/main/assembly/standalone.xml
new file mode 100644
index 0000000..127c20c
--- /dev/null
+++ b/feature/src/main/assembly/standalone.xml
@@ -0,0 +1,58 @@
+<?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.
+    -->
+<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
+    <id>standalone</id>
+    <includeBaseDirectory>false</includeBaseDirectory>
+    <formats>
+        <format>jar</format>
+    </formats>
+    <dependencySets>
+        <dependencySet>
+            <includes>
+                <include>org.apache.sling:org.apache.sling.feature.launcher</include>
+            </includes>
+            <outputDirectory>lib</outputDirectory>
+        </dependencySet>
+    </dependencySets>
+
+
+    <fileSets>
+        <fileSet>
+            <directory>${basedir}/target</directory>
+            <includes>
+                <include>*-slingcms_far.far</include>
+            </includes>
+            <outputDirectory>lib</outputDirectory>
+        </fileSet>
+    </fileSets>
+
+    <files>
+        <file>
+            <source>/target/classes/org/apache/sling/cms/feature/Main.class</source>
+            <outputDirectory>org/apache/sling/cms/feature</outputDirectory>
+        </file>
+        <file>
+            <source>src/main/resources/slingcms.properties</source>
+            <filtered>true</filtered>
+        </file>
+        <file>
+            <source>target/classes/META-INF/NOTICE</source>
+            <outputDirectory>META-INF</outputDirectory>
+        </file>
+        <file>
+            <source>target/classes/META-INF/LICENSE</source>
+            <outputDirectory>META-INF</outputDirectory>
+        </file>
+    </files>
+
+</assembly>
\ No newline at end of file
diff --git a/feature/src/main/java/org/apache/sling/cms/feature/Main.java b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
new file mode 100644
index 0000000..4d07560
--- /dev/null
+++ b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
@@ -0,0 +1,47 @@
+/*
+ * 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.
+ */
+package org.apache.sling.cms.feature;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Arrays;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
+
+public class Main {
+    public static void main(String[] args) throws IOException {
+        System.out.println("Bootstraping Sling CMS Feature Model");
+        URL propertiesUrl =  Main.class.getClassLoader().getResource("slingcms.properties");
+        Properties properties = new Properties();
+        properties.load(propertiesUrl.openStream());
+
+        String version = properties.getProperty("version");
+        System.out.println("Version "+version);
+
+        URL farUrl = Main.class.getClassLoader().getResource("lib/org.apache.sling.cms.fmconverter-"+version+"-slingcms_far.far");
+        List<String> arguments = new ArrayList();
+        arguments.addAll(Arrays.asList(args));
+        if(!arguments.contains("-f")){
+            arguments.add("-f");
+            arguments.add(farUrl.toString());
+        }
+        org.apache.sling.feature.launcher.impl.Main.main(arguments.toArray(new String[arguments.size()]));
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/resources/slingcms.properties b/feature/src/main/resources/slingcms.properties
new file mode 100644
index 0000000..acc00cf
--- /dev/null
+++ b/feature/src/main/resources/slingcms.properties
@@ -0,0 +1,10 @@
+# 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.
+version=0.16.3-SNAPSHOT
\ No newline at end of file


[sling-org-apache-sling-app-cms] 14/18: Revising the module name and updating to embed feature launcher to enable launching the standalone JAR

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 4a515c88edbc91a0b1d6a0ed0cd53fb9fefcc18c
Author: Dan Klco <dk...@apache.org>
AuthorDate: Sat Jul 25 22:39:41 2020 -0400

    Revising the module name and updating to embed feature launcher to enable launching the standalone JAR
---
 feature/pom.xml                                                  | 3 +--
 feature/src/main/assembly/standalone.xml                         | 9 ++++++---
 feature/src/main/features/boot_boot.json                         | 2 +-
 feature/src/main/features/cms_cms.json                           | 2 +-
 feature/src/main/features/composum_composum-nodes.json           | 2 +-
 feature/src/main/features/healthcheck_healthcheck.json           | 2 +-
 feature/src/main/features/launchpad_launchpad.json               | 2 +-
 feature/src/main/features/oak_oak.json                           | 2 +-
 feature/src/main/features/repoinit_repoinit.json                 | 2 +-
 feature/src/main/features/scripting_sling.json                   | 2 +-
 feature/src/main/features/sling-caconfig_sling-caconfig.json     | 2 +-
 feature/src/main/features/sling-discovery_sling-discovery.json   | 2 +-
 feature/src/main/features/sling-event_sling-event.json           | 2 +-
 .../sling-models-jacksonexporter_models-jacksonexporter.json     | 2 +-
 feature/src/main/features/sling-validation_sling-validation.json | 2 +-
 feature/src/main/features/sling_sling.json                       | 2 +-
 feature/src/main/features/standalone_standalone.json             | 2 +-
 feature/src/main/features/webapp_webapp.json                     | 2 +-
 feature/src/main/java/org/apache/sling/cms/feature/Main.java     | 7 +++----
 19 files changed, 26 insertions(+), 25 deletions(-)

diff --git a/feature/pom.xml b/feature/pom.xml
index 4644378..60f0191 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -19,7 +19,7 @@
         <version>0.16.3-SNAPSHOT</version>
     </parent>
 
-    <artifactId>org.apache.sling.cms.fmconverter</artifactId>
+    <artifactId>org.apache.sling.cms.feature</artifactId>
     <name>Apache Sling - CMS Feature Model</name>
 
     <properties>
@@ -174,7 +174,6 @@
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.feature.launcher</artifactId>
             <version>1.1.4</version>
-            <scope>compile</scope>
         </dependency>
     </dependencies>
 </project>
diff --git a/feature/src/main/assembly/standalone.xml b/feature/src/main/assembly/standalone.xml
index 127c20c..7656c49 100644
--- a/feature/src/main/assembly/standalone.xml
+++ b/feature/src/main/assembly/standalone.xml
@@ -11,21 +11,24 @@
         and limitations under the License.
     -->
 <assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
+
     <id>standalone</id>
     <includeBaseDirectory>false</includeBaseDirectory>
     <formats>
         <format>jar</format>
     </formats>
+
     <dependencySets>
         <dependencySet>
             <includes>
                 <include>org.apache.sling:org.apache.sling.feature.launcher</include>
             </includes>
-            <outputDirectory>lib</outputDirectory>
+            <outputDirectory>/</outputDirectory>
+            <useProjectArtifact>true</useProjectArtifact>
+            <unpack>true</unpack>
         </dependencySet>
     </dependencySets>
 
-
     <fileSets>
         <fileSet>
             <directory>${basedir}/target</directory>
@@ -38,7 +41,7 @@
 
     <files>
         <file>
-            <source>/target/classes/org/apache/sling/cms/feature/Main.class</source>
+            <source>target/classes/org/apache/sling/cms/feature/Main.class</source>
             <outputDirectory>org/apache/sling/cms/feature</outputDirectory>
         </file>
         <file>
diff --git a/feature/src/main/features/boot_boot.json b/feature/src/main/features/boot_boot.json
index bf25bdf..9b2a86f 100644
--- a/feature/src/main/features/boot_boot.json
+++ b/feature/src/main/features/boot_boot.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:boot:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:boot:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.aries:org.apache.aries.util:1.1.3",
diff --git a/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
index 25697c2..27884b7 100644
--- a/feature/src/main/features/cms_cms.json
+++ b/feature/src/main/features/cms_cms.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:cms:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:cms:${cms.version}",
     "bundles":[
         {
             "id":"com.github.livesense:org.liveSense.fragment.sun.misc:1.0.5",
diff --git a/feature/src/main/features/composum_composum-nodes.json b/feature/src/main/features/composum_composum-nodes.json
index e299f16..0d54fdf 100644
--- a/feature/src/main/features/composum_composum-nodes.json
+++ b/feature/src/main/features/composum_composum-nodes.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:composum_composum-nodes:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:composum_composum-nodes:${cms.version}",
     "bundles":[
         {
             "id":"com.composum.sling.core:composum-sling-core-commons:${composum.version}",
diff --git a/feature/src/main/features/healthcheck_healthcheck.json b/feature/src/main/features/healthcheck_healthcheck.json
index d60a075..4a67929 100644
--- a/feature/src/main/features/healthcheck_healthcheck.json
+++ b/feature/src/main/features/healthcheck_healthcheck.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:healthcheck:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:healthcheck:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.healthcheck.api:2.0.4",
diff --git a/feature/src/main/features/launchpad_launchpad.json b/feature/src/main/features/launchpad_launchpad.json
index 2d06b41..91aa19b 100644
--- a/feature/src/main/features/launchpad_launchpad.json
+++ b/feature/src/main/features/launchpad_launchpad.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:launchpad:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:launchpad:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.launchpad.base:6.0.2-2.6.36",
diff --git a/feature/src/main/features/oak_oak.json b/feature/src/main/features/oak_oak.json
index 6bc504b..b3842d5 100644
--- a/feature/src/main/features/oak_oak.json
+++ b/feature/src/main/features/oak_oak.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:oak:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:oak:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
diff --git a/feature/src/main/features/repoinit_repoinit.json b/feature/src/main/features/repoinit_repoinit.json
index 1b74940..86781de 100644
--- a/feature/src/main/features/repoinit_repoinit.json
+++ b/feature/src/main/features/repoinit_repoinit.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:repoinit:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:repoinit:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.24",
diff --git a/feature/src/main/features/scripting_sling.json b/feature/src/main/features/scripting_sling.json
index 3510ab0..f882473 100644
--- a/feature/src/main/features/scripting_sling.json
+++ b/feature/src/main/features/scripting_sling.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:scripting_sling:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:scripting_sling:${cms.version}",
     "bundles":[
         {
             "id":"org.antlr:antlr4-runtime:4.7.2",
diff --git a/feature/src/main/features/sling-caconfig_sling-caconfig.json b/feature/src/main/features/sling-caconfig_sling-caconfig.json
index 739f8cc..1aa5d6b 100644
--- a/feature/src/main/features/sling-caconfig_sling-caconfig.json
+++ b/feature/src/main/features/sling-caconfig_sling-caconfig.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-caconfig:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling-caconfig:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.caconfig.api:1.2.0",
diff --git a/feature/src/main/features/sling-discovery_sling-discovery.json b/feature/src/main/features/sling-discovery_sling-discovery.json
index 0388d5f..e6c522e 100644
--- a/feature/src/main/features/sling-discovery_sling-discovery.json
+++ b/feature/src/main/features/sling-discovery_sling-discovery.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-discovery:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling-discovery:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.discovery.api:1.0.4",
diff --git a/feature/src/main/features/sling-event_sling-event.json b/feature/src/main/features/sling-event_sling-event.json
index 3b6990e..c1927a3 100644
--- a/feature/src/main/features/sling-event_sling-event.json
+++ b/feature/src/main/features/sling-event_sling-event.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-event:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling-event:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.event.dea:1.1.4",
diff --git a/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
index e72f722..00bcbf0 100644
--- a/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
+++ b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:${cms.version}",
     "bundles":[
         {
             "id":"com.fasterxml.jackson.core:jackson-annotations:${jackson.version}",
diff --git a/feature/src/main/features/sling-validation_sling-validation.json b/feature/src/main/features/sling-validation_sling-validation.json
index 0c0eca3..df53e3c 100644
--- a/feature/src/main/features/sling-validation_sling-validation.json
+++ b/feature/src/main/features/sling-validation_sling-validation.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-validation:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling-validation:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.sling:org.apache.sling.models.validation-impl:1.0.0",
diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 844fa5b..9c2a3d8 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:sling:${cms.version}",
     "bundles":[
         {
             "id":"commons-codec:commons-codec:1.14",
diff --git a/feature/src/main/features/standalone_standalone.json b/feature/src/main/features/standalone_standalone.json
index d40be0a..e3eaae6 100644
--- a/feature/src/main/features/standalone_standalone.json
+++ b/feature/src/main/features/standalone_standalone.json
@@ -1,6 +1,6 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:standalone:${cms.version}",
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:standalone:${cms.version}",
     "bundles":[
         {
             "id":"org.apache.felix:org.apache.felix.http.jetty:4.0.18",
diff --git a/feature/src/main/features/webapp_webapp.json b/feature/src/main/features/webapp_webapp.json
index 191ea0b..524d3af 100644
--- a/feature/src/main/features/webapp_webapp.json
+++ b/feature/src/main/features/webapp_webapp.json
@@ -1,4 +1,4 @@
 
 {
-    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:webapp:${cms.version}"
+    "id":"org.apache.sling:org.apache.sling.cms.feature:slingfeature:webapp:${cms.version}"
 }
\ No newline at end of file
diff --git a/feature/src/main/java/org/apache/sling/cms/feature/Main.java b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
index 4d07560..390c6f3 100644
--- a/feature/src/main/java/org/apache/sling/cms/feature/Main.java
+++ b/feature/src/main/java/org/apache/sling/cms/feature/Main.java
@@ -22,8 +22,6 @@ import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
-import java.util.jar.Attributes;
-import java.util.jar.Manifest;
 
 public class Main {
     public static void main(String[] args) throws IOException {
@@ -35,13 +33,14 @@ public class Main {
         String version = properties.getProperty("version");
         System.out.println("Version "+version);
 
-        URL farUrl = Main.class.getClassLoader().getResource("lib/org.apache.sling.cms.fmconverter-"+version+"-slingcms_far.far");
-        List<String> arguments = new ArrayList();
+        URL farUrl = Main.class.getClassLoader().getResource("lib/org.apache.sling.cms.feature-"+version+"-slingcms_far.far");
+        List<String> arguments = new ArrayList<>();
         arguments.addAll(Arrays.asList(args));
         if(!arguments.contains("-f")){
             arguments.add("-f");
             arguments.add(farUrl.toString());
         }
+
         org.apache.sling.feature.launcher.impl.Main.main(arguments.toArray(new String[arguments.size()]));
     }
 }
\ No newline at end of file


[sling-org-apache-sling-app-cms] 07/18: Updated file optim to 20 to resolve start order issue

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 9cbf45452435352d051f13b5496f0db7961d4bf2
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:44:41 2020 -0400

    Updated file optim to 20 to resolve start order issue
---
 feature/src/main/features/cms_cms.json | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
index 4bc76db..0a7cb95 100644
--- a/feature/src/main/features/cms_cms.json
+++ b/feature/src/main/features/cms_cms.json
@@ -52,7 +52,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.fileoptim:0.9.4",
-            "start-order":"15"
+            "start-order":"20"
         },
         {
             "id":"org.apache.sling:org.apache.sling.resourcemerger:1.3.10",


[sling-org-apache-sling-app-cms] 03/18: Adding migrated Feature model files

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit c1b6527204d355037eae9c4fcccb46d422c624fa
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 11:36:27 2020 -0400

    Adding migrated Feature model files
---
 feature/pom.xml                                    | 149 +++++++
 feature/src/main/features/boot_boot.json           | 134 +++++++
 feature/src/main/features/cms_cms.json             | 328 +++++++++++++++
 .../src/main/features/composum_composum-nodes.json |  35 ++
 .../src/main/features/healthcheck_healthcheck.json | 103 +++++
 feature/src/main/features/launchpad_launchpad.json |  19 +
 feature/src/main/features/oak_oak.json             | 124 ++++++
 feature/src/main/features/repoinit_repoinit.json   |  74 ++++
 feature/src/main/features/scripting_sling.json     |  92 +++++
 .../features/sling-caconfig_sling-caconfig.json    |  28 ++
 .../features/sling-discovery_sling-discovery.json  |  45 +++
 .../src/main/features/sling-event_sling-event.json |  32 ++
 ...els-jacksonexporter_models-jacksonexporter.json |  25 ++
 .../sling-validation_sling-validation.json         |  36 ++
 feature/src/main/features/sling_sling.json         | 443 +++++++++++++++++++++
 .../src/main/features/standalone_standalone.json   |  16 +
 feature/src/main/features/webapp_webapp.json       |   4 +
 .../apache/sling/launchpad/LaunchpadReadyRule.java | 121 ++++++
 .../java/org/apache/sling/launchpad/SmokeIT.java   | 195 +++++++++
 .../org/apache/sling/launchpad/package-info.java   |  30 ++
 20 files changed, 2033 insertions(+)

diff --git a/feature/pom.xml b/feature/pom.xml
new file mode 100644
index 0000000..6c70994
--- /dev/null
+++ b/feature/pom.xml
@@ -0,0 +1,149 @@
+<?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>
+        <artifactId>org.apache.sling.cms</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>0.16.3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>org.apache.sling.cms.fmconverter</artifactId>
+    <name>Apache Sling - CMS Feature Model</name>
+
+    <properties>
+        <sling.java.version>8</sling.java.version>
+        <IT.expected.bundles.count>208</IT.expected.bundles.count>
+        <cms.version>${project.parent.version}</cms.version>
+        <composum.version>1.12.0</composum.version>
+        <jackrabbit.version>2.20.0</jackrabbit.version>
+        <jackson.version>2.11.1</jackson.version>
+        <oak.version>1.26.0</oak.version>
+        <slf4j.version>1.7.25</slf4j.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>sling/**</include>
+                                <include>coverage.ec</include>
+                                <include>launcher/**</include>
+                            </includes>
+                        </fileset>
+                    </filesets>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>slingfeature-maven-plugin</artifactId>
+                <version>1.3.0</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <framework>
+                        <groupId>org.apache.felix</groupId>
+                        <artifactId>org.apache.felix.framework</artifactId>
+                        <version>6.0.3</version>
+                    </framework>
+                    <aggregates>
+                        <aggregate>
+                            <classifier>slingcms</classifier>
+                            <filesInclude>**/*.json</filesInclude>
+                            <title>Sling CMS</title>
+                        </aggregate>
+                    </aggregates>
+                    <scans>
+                        <scan>
+                            <includeClassifier>slingcms</includeClassifier>
+                        </scan>
+                    </scans>
+                    <archives>
+                        <archive>
+                            <classifier>slingcms_far</classifier>
+                            <includeClassifier>slingcms</includeClassifier>
+                        </archive>
+                    </archives>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>aggregate-features</id>
+                        <phase>prepare-package</phase>
+                        <goals>
+                            <goal>aggregate-features</goal>
+                            <!-- <goal>analyse-features</goal> -->
+                            <goal>attach-features</goal>
+                            <goal>attach-featurearchives</goal>
+                        </goals>
+                        <configuration>
+                            <replacePropertyVariables>cms.version,composum.version,jackrabbit.version,jackson.version,oak.version,slf4j.version</replacePropertyVariables>
+                        </configuration>
+                    </execution>
+                </executions>
+            </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>
+                            <exclude>launcher/**</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.10</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.utils</artifactId>
+            <version>1.11.2</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/feature/src/main/features/boot_boot.json b/feature/src/main/features/boot_boot.json
new file mode 100644
index 0000000..0fbf079
--- /dev/null
+++ b/feature/src/main/features/boot_boot.json
@@ -0,0 +1,134 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:boot:0.16.3-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.9",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.felix:org.apache.felix.configadmin:1.9.16",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.felix:org.apache.felix.converter:1.0.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.johnzon:1.2.2",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.log:5.1.12",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.logservice:1.1.0",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.osgi:2.4.0",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.installer.core:3.11.2",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.installer.factory.configuration:1.3.2",
+            "start-order":"1"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.installer.provider.file:1.2.2",
+            "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.service.log:1.4.0",
+            "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.1",
+            "start-order":"1"
+        },
+        {
+            "id":"org.osgi:org.osgi.util.pushstream:1.0.1",
+            "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/feature/src/main/features/cms_cms.json b/feature/src/main/features/cms_cms.json
new file mode 100644
index 0000000..cd0a963
--- /dev/null
+++ b/feature/src/main/features/cms_cms.json
@@ -0,0 +1,328 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:cms:0.16.3-SNAPSHOT",
+    "variables":{
+        "oak.version":"1.26.0",
+        "cms.version":"0.16.3-SNAPSHOT"
+    },
+    "bundles":[
+        {
+            "id":"com.github.livesense:org.liveSense.fragment.sun.misc:1.0.5",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.cms.api:0.16.3-SNAPSHOT",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.cms.ui:0.16.3-SNAPSHOT",
+            "start-order":"5"
+        },
+        {
+            "id":"com.vladsch.flexmark:flexmark-osgi:0.61.24",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.cocoon:cocoon-serializers-charsets:1.0.2",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.commons:commons-compress:1.20",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.commons:commons-csv:1.8",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.commons:commons-email:1.5",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.commons:commons-math3:3.6.1",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-auth-external:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-auth-ldap:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.xmlbeans:3.0.2_1",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.fileoptim:0.9.4",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.resourcemerger:1.3.10",
+            "start-order":"15"
+        },
+        {
+            "id":"org.jsoup:jsoup:1.13.1",
+            "start-order":"15"
+        },
+        {
+            "id":"com.sun.mail:javax.mail:1.6.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.commons:commons-text:1.8",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.jasypt:1.9.3_1",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.servicemix.bundles:org.apache.servicemix.bundles.poi:4.1.1_1",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.cms.core:0.16.3-SNAPSHOT",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.cms.reference:0.16.3-SNAPSHOT",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.cms.transformer:0.16.3-SNAPSHOT",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.crypto:1.0.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.html:1.1.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.messaging.mail:1.0.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.messaging:1.0.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.rewriter:1.2.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.tika:tika-bundle:1.22",
+            "start-order":"20"
+        },
+        {
+            "id":"org.codehaus.groovy:groovy-all:2.4.19",
+            "start-order":"20"
+        }
+    ],
+    "configurations":{
+        "org.apache.sling.servlets.get.DefaultGetServlet":{
+            "index.files":[
+                "index",
+                "index.html"
+            ],
+            "aliases":[
+                ""
+            ],
+            "enable.html":false,
+            "json.maximumresults:Integer":"200",
+            "enable.txt":false,
+            "enable.xml":false,
+            "index":false,
+            "enable.json":true,
+            "ecmaSuport":true
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~index":{
+            "mbean.name":"org.apache.jackrabbit.oak:name=async,type=IndexStats",
+            "hc.tags":[
+                "oak",
+                "system-resources"
+            ],
+            "hc.name":"Jackrabbit Oak - Index",
+            "attribute.value.constraint":"false",
+            "attribute.name":"Failing",
+            "statusForFailedContraint":"CRITICAL"
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~jobqueue":{
+            "mbean.name":"org.apache.sling:type=queues,name=AllQueues",
+            "hc.tags":[
+                "sling",
+                "system-resources"
+            ],
+            "hc.name":"Sling - Job Queue",
+            "attribute.value.constraint":"< 1000",
+            "attribute.name":"NumberOfQueuedJobs",
+            "statusForFailedContraint":"WARN"
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~luceneindex":{
+            "mbean.name":"org.apache.jackrabbit.oak:name=Lucene Index statistics,type=LuceneIndex",
+            "hc.tags":[
+                "oak",
+                "system-resources"
+            ],
+            "hc.name":"Jackrabbit Oak - Lucene Index",
+            "attribute.value.constraint":"false",
+            "attribute.name":"Failing",
+            "statusForFailedContraint":"CRITICAL"
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~requestdurationcritical":{
+            "mbean.name":"org.apache.sling:type=engine,service=RequestProcessor",
+            "hc.tags":[
+                "sling",
+                "system-resources"
+            ],
+            "hc.name":"Sling - StdDev Request Duration (CRITICAL)",
+            "attribute.value.constraint":"matches (1|2|3|4)?\\d?\\d\\..*",
+            "attribute.name":"StandardDeviationDurationMsec",
+            "statusForFailedContraint":"CRITICAL"
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~requestdurationwarn":{
+            "mbean.name":"org.apache.sling:type=engine,service=RequestProcessor",
+            "hc.tags":[
+                "sling",
+                "system-resources"
+            ],
+            "hc.name":"Sling - StdDev Request Duration (WARN)",
+            "attribute.value.constraint":"matches (1)?\\d?\\d\\..*",
+            "attribute.name":"StandardDeviationDurationMsec",
+            "statusForFailedContraint":"WARN"
+        },
+        "org.apache.felix.hc.generalchecks.JmxAttributeCheck~slowqueries":{
+            "mbean.name":"org.apache.jackrabbit.oak:name=Oak Query Statistics,type=QueryStats",
+            "hc.tags":[
+                "oak",
+                "system-resources"
+            ],
+            "hc.name":"Jackrabbit Oak - Slow Queries",
+            "attribute.value.constraint":"0",
+            "attribute.name":"SlowQueriesQueueSize",
+            "statusForFailedContraint":"WARN"
+        },
+        "org.apache.sling.hc.support.DefaultLoginsHealthCheck~slingcms":{
+            "logins":[
+                "admin:admin"
+            ],
+            "hc.tags":[
+                "configuration"
+            ],
+            "hc.name":"Sling CMS - Default Logins Check"
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-cms-error":{
+            "user.mapping":[
+                "org.apache.sling.cms.core:sling-cms-error=sling-cms-error",
+                "org.apache.sling.models.impl:sling-cms-error=sling-cms-error"
+            ]
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-cms-metadata":{
+            "user.mapping":[
+                "org.apache.sling.cms.core:sling-cms-metadata=sling-cms-metadata"
+            ]
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-cms-transformer":{
+            "user.mapping":[
+                "org.apache.sling.cms.transformer:sling-cms-transformer=sling-cms-transformer"
+            ]
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-cms-ugc":{
+            "user.mapping":[
+                "org.apache.sling.cms.core:sling-cms-ugc=sling-cms-ugc"
+            ]
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling-cms-versionmgr":{
+            "user.mapping":[
+                "org.apache.sling.cms.core:sling-cms-versionmgr=sling-cms-versionmgr"
+            ]
+        },
+        "org.apache.sling.serviceusermapping.impl.ServiceUserMapperImpl.amended~sling.rewriter":{
+            "user.mapping":[
+                "org.apache.sling.rewriter=sling-rewriter"
+            ]
+        }
+    },
+    "repoinit:TEXT|true":[
+        "",
+        "# CMS root paths",
+        "create path (sling:OrderedFolder) /etc/i18n",
+        "set ACL for everyone",
+        "allow   jcr:read\ton /etc/i18n",
+        "end",
+        "create path (sling:OrderedFolder) /etc/taxonomy",
+        "set ACL for everyone",
+        "allow   jcr:read\ton /etc/taxonomy",
+        "end",
+        "create path (sling:OrderedFolder) /static",
+        "set ACL for everyone",
+        "allow   jcr:read\ton /static",
+        "end",
+        "create path (sling:OrderedFolder) /conf",
+        "set ACL for everyone",
+        "allow   jcr:read\ton /conf",
+        "end",
+        "create path (sling:OrderedFolder) /content",
+        "create path (sling:OrderedFolder) /etc/usergenerated",
+        "set ACL for everyone",
+        "allow   jcr:read    on /etc/usergenerated",
+        "end",
+        "",
+        "# Groups",
+        "create path (rep:AuthorizableFolder) /home/groups",
+        "create path (rep:AuthorizableFolder) /home/groups/sling-cms",
+        "create group administrators with path sling-cms",
+        "set ACL for administrators",
+        "allow   jcr:all    on /",
+        "end",
+        "create group authors with path sling-cms",
+        "set ACL for authors",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /content",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /static",
+        "allow   jcr:read    on /",
+        "end",
+        "create group job-users with path sling-cms",
+        "create group taxonomy-users with path sling-cms",
+        "set ACL for taxonomy-users",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /etc/taxonomy",
+        "end",
+        "create group ugc-users with path sling-cms",
+        "set ACL for ugc-users",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /etc/usergenerated",
+        "end",
+        "",
+        "# Service users",
+        "create service user sling-cms-error",
+        "set ACL for sling-cms-error",
+        "allow\tjcr:read\ton /",
+        "end",
+        "create service user sling-cms-metadata",
+        "set ACL for sling-cms-metadata",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /content",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /static",
+        "allow   jcr:read    on /",
+        "end",
+        "create service user sling-cms-transformer",
+        "set ACL for sling-cms-transformer",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /content",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /static",
+        "allow   jcr:read    on /",
+        "end",
+        "create service user sling-rewriter",
+        "set ACL for sling-rewriter",
+        "allow   jcr:read    on /",
+        "end",
+        "create service user sling-cms-ugc",
+        "set ACL for sling-cms-ugc",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /etc/usergenerated",
+        "end",
+        "create service user sling-cms-versionmgr",
+        "set ACL for sling-cms-versionmgr",
+        "allow   jcr:write,jcr:nodeTypeManagement,jcr:versionManagement    on /content",
+        "end"
+    ]
+}
\ No newline at end of file
diff --git a/feature/src/main/features/composum_composum-nodes.json b/feature/src/main/features/composum_composum-nodes.json
new file mode 100644
index 0000000..acaf4bd
--- /dev/null
+++ b/feature/src/main/features/composum_composum-nodes.json
@@ -0,0 +1,35 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:composum_composum-nodes:0.16.3-SNAPSHOT",
+    "variables":{
+        "composum.nodes.version":"1.12.0"
+    },
+    "bundles":[
+        {
+            "id":"com.composum.sling.core:composum-sling-core-commons:1.12.0",
+            "start-order":"20"
+        },
+        {
+            "id":"com.composum.sling.core:composum-sling-core-console:1.12.0",
+            "start-order":"20"
+        },
+        {
+            "id":"com.composum.sling.core:composum-sling-core-jslibs:1.12.0",
+            "start-order":"20"
+        },
+        {
+            "id":"com.composum.sling.core:composum-sling-package-manager:1.12.0",
+            "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/feature/src/main/features/healthcheck_healthcheck.json b/feature/src/main/features/healthcheck_healthcheck.json
new file mode 100644
index 0000000..06d0b5d
--- /dev/null
+++ b/feature/src/main/features/healthcheck_healthcheck.json
@@ -0,0 +1,103 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:healthcheck:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.apache.felix:org.apache.felix.healthcheck.api:2.0.4",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.felix:org.apache.felix.healthcheck.core:2.0.8",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.felix:org.apache.felix.healthcheck.generalchecks:2.0.6",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.felix:org.apache.felix.healthcheck.webconsoleplugin:2.0.2",
+            "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.cms.ui:/content/startup/index.html"
+        },
+        "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/feature/src/main/features/launchpad_launchpad.json b/feature/src/main/features/launchpad_launchpad.json
new file mode 100644
index 0000000..acdb0b8
--- /dev/null
+++ b/feature/src/main/features/launchpad_launchpad.json
@@ -0,0 +1,19 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:launchpad:0.16.3-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 [...]
+        "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.laun [...]
+        "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. [...]
+        "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=\"{dolla [...]
+    }
+}
\ No newline at end of file
diff --git a/feature/src/main/features/oak_oak.json b/feature/src/main/features/oak_oak.json
new file mode 100644
index 0000000..27f959c
--- /dev/null
+++ b/feature/src/main/features/oak_oak.json
@@ -0,0 +1,124 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:oak:0.16.3-SNAPSHOT",
+    "variables":{
+        "oak.version":"1.26.0"
+    },
+    "bundles":[
+        {
+            "id":"org.apache.felix:org.apache.felix.jaas:1.0.2",
+            "start-order":"10"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-api:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-blob-plugins:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-blob:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-commons:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-core-spi:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-core:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-jackrabbit-api:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-jcr:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-lucene:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-query-spi:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-security-spi:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-store-composite:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-store-document:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-store-spi:1.26.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.jcr.oak.server:1.2.4",
+            "start-order":"16"
+        },
+        {
+            "id":"org.apache.jackrabbit:oak-segment-tar:1.26.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/feature/src/main/features/repoinit_repoinit.json b/feature/src/main/features/repoinit_repoinit.json
new file mode 100644
index 0000000..8327bc9
--- /dev/null
+++ b/feature/src/main/features/repoinit_repoinit.json
@@ -0,0 +1,74 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:repoinit:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.apache.sling:org.apache.sling.jcr.repoinit:1.1.24",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.provisioning.model:1.8.6",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.repoinit.parser:1.6.2",
+            "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",
+        "",
+        "# content-package installer",
+        "create service user sling-package-install",
+        "",
+        "set ACL for sling-package-install",
+        "allow\tjcr:all     on\t/",
+        "allow   jcr:namespaceManagement,jcr:nodeTypeDefinitionManagement on :repository",
+        "end"
+    ]
+}
\ No newline at end of file
diff --git a/feature/src/main/features/scripting_sling.json b/feature/src/main/features/scripting_sling.json
new file mode 100644
index 0000000..915a006
--- /dev/null
+++ b/feature/src/main/features/scripting_sling.json
@@ -0,0 +1,92 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:scripting_sling:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.antlr:antlr4-runtime:4.7.2",
+            "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.3.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.el-api:1.0.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.javascript:3.1.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.jsp-api:1.0.2",
+            "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.5.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler.java:1.2.0-1.4.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.sightly.compiler:1.2.6-1.4.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.sightly.js.provider:1.2.0",
+            "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.2.2-1.4.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.scripting.sightly:1.4.0-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/feature/src/main/features/sling-caconfig_sling-caconfig.json b/feature/src/main/features/sling-caconfig_sling-caconfig.json
new file mode 100644
index 0000000..91d46b2
--- /dev/null
+++ b/feature/src/main/features/sling-caconfig_sling-caconfig.json
@@ -0,0 +1,28 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-caconfig:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.apache.sling:org.apache.sling.caconfig.api:1.2.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.caconfig.impl:1.5.0",
+            "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/feature/src/main/features/sling-discovery_sling-discovery.json b/feature/src/main/features/sling-discovery_sling-discovery.json
new file mode 100644
index 0000000..e4da74a
--- /dev/null
+++ b/feature/src/main/features/sling-discovery_sling-discovery.json
@@ -0,0 +1,45 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-discovery:0.16.3-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/feature/src/main/features/sling-event_sling-event.json b/feature/src/main/features/sling-event_sling-event.json
new file mode 100644
index 0000000..2b236eb
--- /dev/null
+++ b/feature/src/main/features/sling-event_sling-event.json
@@ -0,0 +1,32 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-event:0.16.3-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/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
new file mode 100644
index 0000000..d7b04f6
--- /dev/null
+++ b/feature/src/main/features/sling-models-jacksonexporter_models-jacksonexporter.json
@@ -0,0 +1,25 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-models-jacksonexporter_models-jacksonexporter:0.16.3-SNAPSHOT",
+    "variables":{
+        "jackson.version":"2.11.1"
+    },
+    "bundles":[
+        {
+            "id":"com.fasterxml.jackson.core:jackson-annotations:2.11.1",
+            "start-order":"20"
+        },
+        {
+            "id":"com.fasterxml.jackson.core:jackson-core:2.11.1",
+            "start-order":"20"
+        },
+        {
+            "id":"com.fasterxml.jackson.core:jackson-databind:2.11.1",
+            "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/feature/src/main/features/sling-validation_sling-validation.json b/feature/src/main/features/sling-validation_sling-validation.json
new file mode 100644
index 0000000..336a578
--- /dev/null
+++ b/feature/src/main/features/sling-validation_sling-validation.json
@@ -0,0 +1,36 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling-validation:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.apache.sling:org.apache.sling.models.validation-impl:1.0.0",
+            "start-order":"20"
+        },
+        {
+            "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/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
new file mode 100644
index 0000000..250f14b
--- /dev/null
+++ b/feature/src/main/features/sling_sling.json
@@ -0,0 +1,443 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:sling:0.16.3-SNAPSHOT",
+    "variables":{
+        "jackrabbit.version":"2.20.0"
+    },
+    "bundles":[
+        {
+            "id":"commons-codec:commons-codec:1.14",
+            "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.4",
+            "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.10",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.httpcomponents:httpcore-osgi:4.4.12",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.jackrabbit.vault:org.apache.jackrabbit.vault:3.4.4",
+            "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.20",
+            "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.4.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.fsclassloader:1.0.12",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.mime:2.2.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.scheduler:2.7.6",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.threads:3.2.20",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.engine:2.7.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.fsresource:2.1.16",
+            "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.1.0",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.installer.factory.packages:1.0.4",
+            "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.2.2",
+            "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.22",
+            "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.12",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.resourceresolver:1.6.16",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.serviceuser.webconsole:1.0.2",
+            "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.36",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.servlets.resolver:2.7.2",
+            "start-order":"20"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.xss:2.2.2",
+            "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.20",
+            "start-order":"4"
+        },
+        {
+            "id":"commons-fileupload:commons-fileupload:1.4",
+            "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.10",
+            "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.5.0",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.api:2.22.0",
+            "start-order":"5"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.auth.core:1.4.8",
+            "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.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.17",
+            "start-order":"10"
+        },
+        {
+            "id":"org.apache.pdfbox:jempbox:1.8.16",
+            "start-order":"10"
+        },
+        {
+            "id":"org.apache.pdfbox:pdfbox:2.0.17",
+            "start-order":"10"
+        },
+        {
+            "id":"org.apache.tika:tika-core:1.24",
+            "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-data:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:jackrabbit-jcr-commons:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:jackrabbit-jcr-rmi:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:jackrabbit-spi-commons:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:jackrabbit-spi:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.jackrabbit:jackrabbit-webdav:2.20.0",
+            "start-order":"15"
+        },
+        {
+            "id":"org.apache.sling:org.apache.sling.commons.metrics:1.2.8",
+            "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.1.0",
+            "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~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~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/feature/src/main/features/standalone_standalone.json b/feature/src/main/features/standalone_standalone.json
new file mode 100644
index 0000000..e44e70d
--- /dev/null
+++ b/feature/src/main/features/standalone_standalone.json
@@ -0,0 +1,16 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:standalone:0.16.3-SNAPSHOT",
+    "bundles":[
+        {
+            "id":"org.apache.felix:org.apache.felix.http.jetty:4.0.18",
+            "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/feature/src/main/features/webapp_webapp.json b/feature/src/main/features/webapp_webapp.json
new file mode 100644
index 0000000..f1e6022
--- /dev/null
+++ b/feature/src/main/features/webapp_webapp.json
@@ -0,0 +1,4 @@
+
+{
+    "id":"org.apache.sling:org.apache.sling.cms.fmconverter:slingfeature:webapp:0.16.3-SNAPSHOT"
+}
\ No newline at end of file
diff --git a/feature/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java b/feature/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java
new file mode 100644
index 0000000..d6b6d6f
--- /dev/null
+++ b/feature/src/test/java/org/apache/sling/launchpad/LaunchpadReadyRule.java
@@ -0,0 +1,121 @@
+/*
+ * 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.
+ */
+package org.apache.sling.launchpad;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.ConnectException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.junit.rules.ExternalResource;
+
+public class LaunchpadReadyRule extends ExternalResource {
+
+    private static final int TRIES = 60;
+    private static final int WAIT_BETWEEN_TRIES_MILLIS = 1000;
+
+    private final List<Check> checks = new ArrayList<>();
+
+    public LaunchpadReadyRule(int launchpadPort) {
+
+        checks.add(new Check("http://localhost:" + launchpadPort + "/server/default/jcr:root/content"));
+        checks.add(new Check("http://localhost:" + launchpadPort + "/content/starter.html") {
+            @Override
+            public String runCheck(HttpResponse response) throws Exception {
+                try (InputStreamReader isr = new InputStreamReader(response.getEntity().getContent());
+                        BufferedReader reader = new BufferedReader(isr)) {
+
+                    String line;
+                    while ((line = reader.readLine()) != null) {
+                        if (line.contains("Do not remove this comment, used for Starter integration tests")) {
+                            return null;
+                        }
+                    }
+                }
+
+                return "Did not find 'ready' marker in the response body";
+            }
+        });
+    }
+
+    @Override
+    protected void before() throws Throwable {
+
+        try (CloseableHttpClient client = HttpClients.createDefault()) {
+            for (Check check : checks) {
+                runCheck(client, check);
+            }
+        }
+    }
+
+    private void runCheck(CloseableHttpClient client, Check check) throws Exception {
+
+        String lastFailure = null;
+        HttpGet get = new HttpGet(check.getUrl());
+        
+        for (int i = 0; i < TRIES; i++) {
+            try (CloseableHttpResponse response = client.execute(get)) {
+
+                if (response.getStatusLine().getStatusCode() != 200) {
+                    lastFailure = "Status code is " + response.getStatusLine();
+                    Thread.sleep(WAIT_BETWEEN_TRIES_MILLIS);
+                    continue;
+                }
+
+                lastFailure = check.runCheck(response);
+                if (lastFailure == null) {
+                    return;
+                }
+            } catch ( ConnectException e ) {
+                lastFailure = e.getClass().getName() + " : " + e.getMessage();
+            }
+
+            Thread.sleep(WAIT_BETWEEN_TRIES_MILLIS);
+        }
+        
+        throw new RuntimeException(String.format("Launchpad not ready. Failed check for URL %s with message '%s'",
+                check.getUrl(), lastFailure));
+    }
+
+    static class Check {
+        private String url;
+
+        public Check(String url) {
+            this.url = url;
+        }
+
+        public String getUrl() {
+            return url;
+        }
+
+        /**
+         * @param response the HttpResponse
+         * @return null if check check was successful, an error description otherwise
+         * @throws Exception
+         */
+        public String runCheck(HttpResponse response) throws Exception {
+            return null;
+        }
+    }
+
+}
diff --git a/feature/src/test/java/org/apache/sling/launchpad/SmokeIT.java b/feature/src/test/java/org/apache/sling/launchpad/SmokeIT.java
new file mode 100644
index 0000000..71676dc
--- /dev/null
+++ b/feature/src/test/java/org/apache/sling/launchpad/SmokeIT.java
@@ -0,0 +1,195 @@
+/*
+ * 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.
+ */
+package org.apache.sling.launchpad;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.fail;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.felix.utils.json.JSONParser;
+import org.apache.http.Header;
+import org.apache.http.HttpHost;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.impl.auth.BasicScheme;
+import org.apache.http.impl.client.BasicAuthCache;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.hamcrest.CoreMatchers;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+
+public class SmokeIT {
+
+    private static final int LAUNCHPAD_PORT = Integer.getInteger("launchpad.http.port", 8080);
+    private static final int EXPECTED_BUNDLES_COUNT = Integer.getInteger("IT.expected.bundles.count", Integer.MAX_VALUE);
+
+    @ClassRule
+    public static LaunchpadReadyRule LAUNCHPAD = new LaunchpadReadyRule(LAUNCHPAD_PORT);
+    private HttpClientContext httpClientContext;
+
+    @Before
+    public void prepareHttpContext() {
+
+        CredentialsProvider credsProvider = new BasicCredentialsProvider();
+        UsernamePasswordCredentials creds = new UsernamePasswordCredentials("admin", "admin");
+        credsProvider.setCredentials(new AuthScope("localhost", LAUNCHPAD_PORT), creds);
+
+        BasicAuthCache authCache = new BasicAuthCache();
+        BasicScheme basicAuth = new BasicScheme();
+        authCache.put(new HttpHost("localhost", LAUNCHPAD_PORT, "http"), basicAuth);
+
+        httpClientContext = HttpClientContext.create();
+        httpClientContext.setCredentialsProvider(credsProvider);
+        httpClientContext.setAuthCache(authCache);
+    }
+
+    private CloseableHttpClient newClient() {
+
+        return HttpClientBuilder.create()
+                .setDefaultCredentialsProvider(httpClientContext.getCredentialsProvider())
+                .build();
+    }
+
+    @Test
+    public void verifyAllBundlesStarted() throws Exception {
+
+        try ( CloseableHttpClient client = newClient() ) {
+
+            HttpGet get = new HttpGet("http://localhost:" + LAUNCHPAD_PORT + "/system/console/bundles.json");
+
+            // pass the context to ensure preemptive basic auth is used
+            // https://hc.apache.org/httpcomponents-client-ga/tutorial/html/authentication.html
+            try ( CloseableHttpResponse response = client.execute(get, httpClientContext) ) {
+
+                if ( response.getStatusLine().getStatusCode() != 200 ) {
+                    fail("Unexpected status line " + response.getStatusLine());
+                }
+
+                Header contentType = response.getFirstHeader("Content-Type");
+                assertThat("Content-Type header", contentType.getValue(), CoreMatchers.startsWith("application/json"));
+
+                Map<String, Object> obj = new JSONParser(response.getEntity().getContent()).getParsed();
+
+                @SuppressWarnings("unchecked")
+                List<Object> status = (List<Object>) obj.get("s");
+
+                @SuppressWarnings("unchecked")
+                List<Object> bundles = (List<Object>) obj.get("data");
+                if(bundles.size() < EXPECTED_BUNDLES_COUNT) {
+                    fail("Expected at least " + EXPECTED_BUNDLES_COUNT + " bundles, got " + bundles.size());
+                }
+
+                BundleStatus bs = new BundleStatus(status);
+
+                if ( bs.resolvedBundles != 0 || bs.installedBundles != 0 ) {
+
+                    StringBuilder out = new StringBuilder();
+                    out.append("Expected all bundles to be active, but instead got ")
+                        .append(bs.resolvedBundles).append(" resolved bundles, ")
+                        .append(bs.installedBundles).append(" installed bundlles: ");
+
+                    for ( int i = 0 ; i < bundles.size(); i++ ) {
+                        @SuppressWarnings("unchecked")
+                        Map<String, Object> bundle = (Map<String, Object>) bundles.get(i);
+
+                        String bundleState = (String) bundle.get("state");
+                        String bundleSymbolicName = (String) bundle.get("symbolicName");
+                        String bundleVersion = (String) bundle.get("version");
+
+                        switch ( bundleState ) {
+                            case "Active":
+                            case "Fragment":
+                                continue;
+
+                            default:
+                                out.append("\n- ").append(bundleSymbolicName).append(" ").append(bundleVersion).append(" is in state " ).append(bundleState);
+                        }
+                    }
+
+                    fail(out.toString());
+                }
+            }
+        }
+    }
+
+    @Test
+    public void ensureRepositoryIsStarted() throws Exception {
+        try ( CloseableHttpClient client = newClient() ) {
+
+            HttpGet get = new HttpGet("http://localhost:" + LAUNCHPAD_PORT + "/server/default/jcr:root/content");
+
+            try ( CloseableHttpResponse response = client.execute(get) ) {
+
+                if ( response.getStatusLine().getStatusCode() != 200 ) {
+                    fail("Unexpected status line " + response.getStatusLine());
+                }
+
+                Header contentType = response.getFirstHeader("Content-Type");
+                assertThat("Content-Type header", contentType.getValue(), equalTo("text/xml"));
+
+                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+                dbf.setNamespaceAware(true);
+                DocumentBuilder db = dbf.newDocumentBuilder();
+                Document document = db.parse(response.getEntity().getContent());
+
+                Element docElement = document.getDocumentElement();
+                NamedNodeMap attrs = docElement.getAttributes();
+
+                Node nameAttr = attrs.getNamedItemNS("http://www.jcp.org/jcr/sv/1.0", "name");
+                assertThat("no 'name' attribute found", nameAttr, notNullValue());
+                assertThat("Invalid name attribute value", nameAttr.getNodeValue(), equalTo("content"));
+            }
+        }
+    }
+
+    static class BundleStatus {
+
+        long totalBundles;
+        long activeBundles;
+        long activeFragments;
+        long resolvedBundles;
+        long installedBundles;
+
+        public BundleStatus(List<Object> array) {
+
+            totalBundles = (Long)array.get(0);
+            activeBundles = (Long)array.get(1);
+            activeFragments = (Long)array.get(2);
+            resolvedBundles = (Long)array.get(3);
+            installedBundles = (Long)array.get(4);
+
+        }
+    }
+}
diff --git a/feature/src/test/java/org/apache/sling/launchpad/package-info.java b/feature/src/test/java/org/apache/sling/launchpad/package-info.java
new file mode 100644
index 0000000..f70e5e8
--- /dev/null
+++ b/feature/src/test/java/org/apache/sling/launchpad/package-info.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * <h1>Smoke tests for the Sling Launchpad</h1>
+ * 
+ * <p>This package contains a minimal set of tests for the Sling launchpad. The
+ * tests validate that the launchpad is correctly assembled and that there are
+ * no obvious mistakes such as bundles that can't be wired. More extensive
+ * tests must be placed in specific test projects.</p>
+ * 
+ * <p>The launchpad tests don't depend on other Sling bundles,to prevent circular
+ * dependencies. As such, there is some duplication of code ( at least intent, if 
+ * not implementation ) with some of the testing projects. This is another 
+ * argument for keeping the tests minimal.</p>
+ */
+package org.apache.sling.launchpad;
\ No newline at end of file


[sling-org-apache-sling-app-cms] 11/18: Almost all bundle order issues resolved

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 923a85983cd6447925c122f27ed2aa2970e43045
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 16:20:11 2020 -0400

    Almost all bundle order issues resolved
---
 feature/src/main/features/oak_oak.json     | 2 +-
 feature/src/main/features/sling_sling.json | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/feature/src/main/features/oak_oak.json b/feature/src/main/features/oak_oak.json
index 37aa1d7..6bc504b 100644
--- a/feature/src/main/features/oak_oak.json
+++ b/feature/src/main/features/oak_oak.json
@@ -64,7 +64,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.oak.server:1.2.4",
-            "start-order":"16"
+            "start-order":"20"
         },
         {
             "id":"org.apache.jackrabbit:oak-segment-tar:${oak.version}",
diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index dd0fe86..844fa5b 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -300,7 +300,7 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.base:3.1.0",
-            "start-order":"15"
+            "start-order":"20"
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.davex:1.3.10",
@@ -308,11 +308,11 @@
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.accessmanager:3.0.4",
-            "start-order":"15"
+            "start-order":"20"
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.jackrabbit.usermanager:2.2.8",
-            "start-order":"15"
+            "start-order":"20"
         },
         {
             "id":"org.apache.sling:org.apache.sling.jcr.jcr-wrapper:2.0.0",


[sling-org-apache-sling-app-cms] 02/18: Adding a POM to convert PM to FM

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 1795c271e65ab656f41a6ee5a0367e20defc5ea3
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 11:33:10 2020 -0400

    Adding a POM to convert PM to FM
---
 converter/pom.xml | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 175 insertions(+)

diff --git a/converter/pom.xml b/converter/pom.xml
new file mode 100644
index 0000000..8718504
--- /dev/null
+++ b/converter/pom.xml
@@ -0,0 +1,175 @@
+<?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>
+        <artifactId>org.apache.sling.cms</artifactId>
+        <groupId>org.apache.sling</groupId>
+        <version>0.16.3-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>org.apache.sling.cms.fmconverter</artifactId>
+    <name>Apache Sling - CMS Feature Model Converter</name>
+    <description>Complete Sling 12 Feature Model</description>
+    <packaging>slingosgifeature</packaging>
+
+    <properties>
+        <slingfeature-maven-plugin.version>1.3.4</slingfeature-maven-plugin.version>
+        <sling-feature-converter-maven-plugin.version>1.0.4</sling-feature-converter-maven-plugin.version>
+    </properties>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>sling-feature-converter-maven-plugin</artifactId>
+                <version>${sling-feature-converter-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <executions>
+                    <execution>
+                        <id>convert-pm</id>
+                        <phase>process-classes</phase>
+                        <goals>
+                            <goal>convert-pm</goal>
+                        </goals>
+                        <configuration>
+                            <inputFolder>${basedir}/../builder/src/main/provisioning</inputFolder>
+                            <outputFolder>target/fm</outputFolder>
+                            <groupId>${project.groupId}</groupId>
+                            <artifactId>org.apache.sling.cms.fmconverter</artifactId>
+                            <version>${project.version}</version>
+                            <frameworkProperties>
+                                launchpad:felix.systempackages.substitution=true,
+                                launchpad:felix.systempackages.calculate.uses=true
+                            </frameworkProperties>
+                            <excludeBundles>
+                                org.apache.sling.launchpad.installer,
+                                org.apache.sling.jcr.repoinit.impl.RepositoryInitializer
+                            </excludeBundles>
+                            <runModes>
+                                oak_tar,
+                                :standalone
+                            </runModes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.sling</groupId>
+                <artifactId>slingfeature-maven-plugin</artifactId>
+                <version>${slingfeature-maven-plugin.version}</version>
+                <extensions>true</extensions>
+                <configuration>
+                    <features>target/fm</features>
+                    <generatedFeatures>${basedir}/target/fm</generatedFeatures>
+                </configuration>
+                <executions>
+                    <execution>
+                        <id>aggregate-base-sling-feature</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>aggregate-features</goal>
+                        </goals>
+                        <configuration>
+                            <aggregates>
+                                <aggregate>
+                                    <classifier>slingcms</classifier>
+                                    <filesInclude>**/*.json</filesInclude>
+                                    <title>Sling App CMS Feature Model</title>
+                                </aggregate>
+                            </aggregates>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>install-feature</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>attach-features</goal>
+                        </goals>
+                    </execution>
+                    <execution>
+                        <id>create-sling-feature-archives</id>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>attach-featurearchives</goal>
+                        </goals>
+                        <configuration>
+                            <archives>
+                                <archive>
+                                    <classifier>slingcmsfar</classifier>
+                                    <includeClassifier>slingcms</includeClassifier>
+                                </archive>
+                            </archives>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>diff</id>
+                        <goals>
+                            <goal>features-diff</goal>
+                        </goals>
+                        <configuration>
+                            <selection>
+                                <includeClassifier>oak_tar</includeClassifier>
+                                <includeClassifier>slingcms</includeClassifier>
+                            </selection>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>Readme.md</exclude>
+                        <exclude>src/main/resources/META-INF/services/**</exclude>
+                        <exclude>**/*.properties</exclude>
+                        <exclude>conf/**</exclude>
+                        <exclude>launcher/**</exclude>
+                        <exclude>bin/**.sh</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-install-plugin</artifactId>
+                <version>3.0.0-M1</version>
+                <configuration>
+                    <skip>true</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>ianal-maven-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>verify-legal-files</id>
+                        <goals>
+                            <goal>verify-legal-files</goal>
+                        </goals>
+                        <configuration>
+                            <!-- Fail the build if any artifacts are missing legal files -->
+                            <strict>false</strict>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>


[sling-org-apache-sling-app-cms] 18/18: Merge branch 'SLING-8913-multiple-instance-types' of github.com:apache/sling-org-apache-sling-app-cms into SLING-8913-multiple-instance-types

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 1f38d3ec9d5627a35742076c06a38e2cd56a2535
Merge: c36b456 c49bc51
Author: Dan Klco <dk...@apache.org>
AuthorDate: Thu Jul 30 14:17:52 2020 -0400

    Merge branch 'SLING-8913-multiple-instance-types' of github.com:apache/sling-org-apache-sling-app-cms into SLING-8913-multiple-instance-types



[sling-org-apache-sling-app-cms] 17/18: Building the Composite NodeStore on build of the docker image

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit c36b456c0edd7404793e3a59a5221e45163abf7c
Author: Dan Klco <dk...@apache.org>
AuthorDate: Thu Jul 30 14:07:39 2020 -0400

    Building the Composite NodeStore on build of the docker image
---
 docker/README.md                                   | 12 +++++-
 docker/cms/Dockerfile                              | 25 +++++++++---
 docker/cms/download-dependencies.sh                | 34 ++++++++++++++++
 docker/cms/settings.xml                            | 35 ++++++++++++++++
 docker/cms/setup-composite.sh                      | 47 ++++++++++++++++++++++
 docker/docker-compose.yml                          | 16 +++-----
 docker/webcache/Dockerfile                         | 10 ++---
 feature/pom.xml                                    | 16 ++++++--
 .../node-store-composite/composite-runtime.json    |  8 ++++
 .../node-store-composite/composite-seed.json       | 18 ++++++++-
 .../main/features/node-store-segment/segment.json  | 12 +++++-
 feature/src/main/features/sling_sling.json         |  8 ----
 12 files changed, 200 insertions(+), 41 deletions(-)

diff --git a/docker/README.md b/docker/README.md
index 538d23e..6d309cc 100644
--- a/docker/README.md
+++ b/docker/README.md
@@ -2,7 +2,7 @@
 
 This is a sample Docker Compose configuration for using Apache Sling CMS in a containerized environment.
 
-It will start a container with the Apache Sling CMS backed by MongoDB and a webcache container pre-configured to proxy and cache two URLs.
+It will start a container with the Apache Sling CMS backed by a shared volume and a webcache container pre-configured to proxy and cache two URLs.
 
 ## Dependencies
 
@@ -17,6 +17,16 @@ To build, run the command:
 
 `docker-compose build`
 
+If you are using snapshots, to force a rebuild, run:
+
+`docker-compose build --no-cache --force-rm`
+
+## Volume
+
+This Docker Compose setup creates a volume _docker_sling-repository_ for the Apache Sling CMS repository. To destroy this volume call:
+
+`docker rm docker_sling-repository`
+
 ## Use
 
 To use the containers, run the command:
diff --git a/docker/cms/Dockerfile b/docker/cms/Dockerfile
index 52692a4..2c56193 100644
--- a/docker/cms/Dockerfile
+++ b/docker/cms/Dockerfile
@@ -13,18 +13,31 @@
 
 # Pull base image.
 FROM adoptopenjdk:11-jre-openj9
-MAINTAINER dev@sling.apache.org
+
+ARG FM_GROUP_ID=org.apache.sling
+ARG FM_ARTIFACT_ID=org.apache.sling.cms.feature
+ARG FM_VERSION=0.16.3-SNAPSHOT
+ARG FM_SEED_CLASSIFIER=slingcms-composite-seed
+ARG FM_RUNTIME_CLASSIFIER=slingcms-composite-seed
+ENV FM_ARTIFACT_ID=${FM_ARTIFACT_ID}
+ENV FM_RUNTIME_CLASSIFIER=${FM_RUNTIME_CLASSIFIER}
 
 # Configure directories
-WORKDIR /opt/sling
-VOLUME /opt/sling/sling
+WORKDIR /opt/slingcms
+
+# Install Apache Maven
+RUN apt-get update && apt-get install maven -y
+COPY /settings.xml /root/.m2/
 
 # Setup Sling CMS
-RUN mkdir -p /opt/sling
-RUN curl -L https://search.maven.org/remotecontent?filepath=org/apache/sling/org.apache.sling.cms.builder/0.16.2/org.apache.sling.cms.builder-0.16.2.jar --output org.apache.sling.cms.jar
+COPY download-dependencies.sh /opt/slingcms/setup/
+RUN /bin/bash /opt/slingcms/setup/download-dependencies.sh
+COPY setup-composite.sh /opt/slingcms/setup/
+RUN /bin/bash /opt/slingcms/setup/setup-composite.sh
 
 # Expose endpoints
 EXPOSE 8080
 
 # Start Sling CMS
-CMD exec java -Dsling.run.modes=oak_mongo -Doak.mongo.uri=mongodb://mongo:27017 -Doak.mongo.db=sling -jar org.apache.sling.cms.jar
+CMD exec java -jar org.apache.sling.feature.launcher.jar \
+    -f ${FM_ARTIFACT_ID}-${FM_RUNTIME_CLASSIFIER}.slingosgifeature
diff --git a/docker/cms/download-dependencies.sh b/docker/cms/download-dependencies.sh
new file mode 100644
index 0000000..9705148
--- /dev/null
+++ b/docker/cms/download-dependencies.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+#		 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.
+#
+
+mkdir -p /opt/slingcms
+cd /opt/slingcms
+
+echo "Downloading Feature Launcher..."
+mvn -q org.apache.maven.plugins:maven-dependency-plugin:copy \
+    -Dartifact=org.apache.sling:org.apache.sling.feature.launcher:1.1.4:jar \
+    -DoutputDirectory=/opt/slingcms \
+    -Dmdep.stripVersion=true \
+    || { echo 'Failed to download Feature Launcher' ; exit 1; }
+ 
+echo "Downloading Feature Models..."
+mvn -q org.apache.maven.plugins:maven-dependency-plugin:copy \
+    -Dartifact=${FM_GROUP_ID}:${FM_ARTIFACT_ID}:${FM_VERSION}:slingosgifeature:${FM_SEED_CLASSIFIER} \
+    -DoutputDirectory=/opt/slingcms/setup \
+    -Dmdep.stripVersion=true \
+    || { echo 'Failed to download composite seed' ; exit 1; }
+mvn -q org.apache.maven.plugins:maven-dependency-plugin:copy \
+    -Dartifact=${FM_GROUP_ID}:${FM_ARTIFACT_ID}:${FM_VERSION}:slingosgifeature:${FM_RUNTIME_CLASSIFIER} \
+    -DoutputDirectory=/opt/slingcms \
+    -Dmdep.stripVersion=true \
+    || { echo 'Failed to download composite runtime' ; exit 1; }
\ No newline at end of file
diff --git a/docker/cms/settings.xml b/docker/cms/settings.xml
new file mode 100644
index 0000000..9abe7da
--- /dev/null
+++ b/docker/cms/settings.xml
@@ -0,0 +1,35 @@
+<!--
+    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.
+-->
+<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
+                    https://maven.apache.org/xsd/settings-1.0.0.xsd">
+    <profiles>
+        <profile>
+            <id>apache-snapshots</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+            <repositories>
+                <repository>
+                    <id>apache.snapshots</id>
+                    <name>Apache Development Snapshot Repository</name>
+                    <url>https://repository.apache.org/content/repositories/snapshots/</url>
+                    <releases>
+                        <enabled>true</enabled>
+                    </releases>
+                    <snapshots>
+                        <enabled>true</enabled>
+                    </snapshots>
+                </repository>
+            </repositories>
+        </profile>
+    </profiles>
+</settings>
\ No newline at end of file
diff --git a/docker/cms/setup-composite.sh b/docker/cms/setup-composite.sh
new file mode 100644
index 0000000..0756d92
--- /dev/null
+++ b/docker/cms/setup-composite.sh
@@ -0,0 +1,47 @@
+#!/bin/bash
+#
+#		 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.
+#
+
+SLING_USERNAME="${SLING_USERNAME:-admin}"
+SLING_PASSWORD="${SLING_PASSWORD:-admin}"
+
+echo "Creating composite seed..."
+java -jar org.apache.sling.feature.launcher.jar \
+    -f /opt/slingcms/setup/${FM_ARTIFACT_ID}-${FM_SEED_CLASSIFIER}.slingosgifeature &
+SLING_PID=$!
+echo "Sling PID: ${SLING_PID}"
+
+sleep 10s
+STARTED=1
+for i in {1..10}; do
+    echo "Checking to see if started with username: ${SLING_USERNAME}..."
+    STATUS=$(curl -4 -s -o /dev/null -w "%{http_code}" -u${SLING_USERNAME}:${SLING_PASSWORD} "http://localhost:8080/system/health.txt?tags=systemalive")
+    echo "Retrieved status: ${STATUS}"
+    if [ $STATUS -eq 200 ]; then
+        STARTED=0
+        break
+    fi
+    sleep 30s
+done
+
+if [ $STARTED -eq 1 ]; then
+    echo "Failed to seed sling repository!"
+    exit 2
+else
+    echo "Cleaning up seeding..."
+    rm -rf /opt/slingcms/launcher
+    cd sling/composite/repository-libs
+    ln -s segmentstore segmentstore-composite-mount-libs
+    cd ../../..
+    rm -rf /opt/slingcms/setup
+fi
+echo "Repository seeded successfully!"
\ No newline at end of file
diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml
index 01ec3ad..27856bb 100644
--- a/docker/docker-compose.yml
+++ b/docker/docker-compose.yml
@@ -9,23 +9,17 @@
 #  either express or implied. See the License for the specific language governing permissions
 #  and limitations under the License.
 #
-version: '3'
+version: '3.4'
 services:
   cms:
     build: cms
-    expose:
-      - "8080"
-    depends_on:
-    - mongo
-  mongo:
-    image: mongo
-    expose:
-    - "27017"
+    ports:
+      - "8080:8080"
     volumes:
-    - data-volume:/data/db
+      - sling-repository:/opt/slingcms/sling/composite/repository-global
   webcache:
     build: webcache
     ports:
       - "80:80"
 volumes:
-  data-volume:
+  sling-repository:
diff --git a/docker/webcache/Dockerfile b/docker/webcache/Dockerfile
index e9f2cdb..3e2c37d 100644
--- a/docker/webcache/Dockerfile
+++ b/docker/webcache/Dockerfile
@@ -13,14 +13,12 @@
 
 # Pull base image.
 FROM ubuntu:latest
-MAINTAINER dev@sling.apache.org
 
 # Avoid interaction with tzdata
 ARG DEBIAN_FRONTEND=noninteractive
 
 # Install Apache
-RUN apt-get update
-RUN apt-get install apache2 -y
+RUN apt-get update && apt-get install apache2 -y
 
 # Configure mod_rewrite
 RUN a2enmod rewrite
@@ -36,10 +34,8 @@ RUN a2enmod expires
 RUN a2enmod headers
 
 # Configure sites
-RUN mkdir -p /var/www/vhosts/sling-cms
-RUN mkdir -p /var/www/vhosts/sling
-COPY cms.conf /etc/apache2/sites-enabled
-COPY site.conf /etc/apache2/sites-enabled
+RUN mkdir -p /var/www/vhosts/sling-cms && mkdir -p /var/www/vhosts/sling
+COPY *.conf /etc/apache2/sites-enabled/
 
 # Expose endpoints
 EXPOSE 80
diff --git a/feature/pom.xml b/feature/pom.xml
index 59af970..5f71fc2 100644
--- a/feature/pom.xml
+++ b/feature/pom.xml
@@ -76,25 +76,33 @@
                         <aggregate>
                             <classifier>slingcms-segment</classifier>
                             <filesInclude>**/*.json</filesInclude>
-                            <filesExclude>node-store-composite/*.json</filesExclude>
+                            <filesExclude>node-store-composite/composite-*.json</filesExclude>
                             <title>Sling CMS -</title>
                         </aggregate>
                         <aggregate>
                             <classifier>slingcms-composite-seed</classifier>
                             <filesInclude>**/*.json</filesInclude>
-                            <filesExclude>node-store-composite/composite-runtime.json,node-store-segment/*.json</filesExclude>
+                            <filesExclude>node-store-composite/composite-runtime.json</filesExclude>
+                            <filesExclude>node-store-segment/segment.json</filesExclude>
                             <title>Sling CMS - Composite Node Store Seed</title>
                         </aggregate>
                         <aggregate>
                             <classifier>slingcms-composite-runtime</classifier>
                             <filesInclude>**/*.json</filesInclude>
-                            <filesExclude>node-store-composite/composite-seed.json,node-store-segment/*.json</filesExclude>
+                            <filesExclude>node-store-composite/composite-seed.json</filesExclude>
+                            <filesExclude>node-store-segment/segment.json</filesExclude>
                             <title>Sling CMS - Composite Node Store Runtime</title>
                         </aggregate>
                     </aggregates>
                     <scans>
                         <scan>
-                            <includeClassifier>slingcms-segment,slingcms-composite-seed,slingcms-composite-runtime</includeClassifier>
+                            <includeClassifier>slingcms-composite-runtime</includeClassifier>
+                        </scan>
+                        <scan>
+                            <includeClassifier>slingcms-composite-seed</includeClassifier>
+                        </scan>
+                        <scan>
+                            <includeClassifier>slingcms-segment</includeClassifier>
                         </scan>
                     </scans>
                     <archives>
diff --git a/feature/src/main/features/node-store-composite/composite-runtime.json b/feature/src/main/features/node-store-composite/composite-runtime.json
index b30683e..5f11296 100644
--- a/feature/src/main/features/node-store-composite/composite-runtime.json
+++ b/feature/src/main/features/node-store-composite/composite-runtime.json
@@ -49,6 +49,14 @@
             "registerDescriptors": true,
             "dispatchChanges": true,
             "repository.home": "sling/composite/repository-global"
+        },
+        "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": "",
+            "org.apache.sling.commons.log.file.number:Integer": "-1",
+            "org.apache.sling.commons.log.file.size": ""
         }
     }
 }
\ No newline at end of file
diff --git a/feature/src/main/features/node-store-composite/composite-seed.json b/feature/src/main/features/node-store-composite/composite-seed.json
index 914d66f..ad29a0f 100644
--- a/feature/src/main/features/node-store-composite/composite-seed.json
+++ b/feature/src/main/features/node-store-composite/composite-seed.json
@@ -1,6 +1,9 @@
 {
     "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:composite-seed:${cms.version}",
     "configurations": {
+        "org.apache.felix.hc.core.impl.servlet.HealthCheckExecutorServlet~default": {
+            "servletPath": "/system/health"
+        },
         "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService": {
             "name": "Default NodeStore",
             "standby": true
@@ -15,11 +18,22 @@
         "org.apache.jackrabbit.oak.composite.MountInfoProviderService": {
             "mountName": "libs",
             "readOnlyMount": false,
-            "pathsSupportingFragments": [],
+            "pathsSupportingFragments": [
+                "/oak:index/*$"
+            ],
             "mountedPaths": [
                 "/libs",
-                "/apps"
+                "/apps",
+                "/jcr:system/rep:permissionStore/oak:mount-libs-default"
             ]
+        },
+        "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": "",
+            "org.apache.sling.commons.log.file.number:Integer": "-1",
+            "org.apache.sling.commons.log.file.size": ""
         }
     }
 }
\ No newline at end of file
diff --git a/feature/src/main/features/node-store-segment/segment.json b/feature/src/main/features/node-store-segment/segment.json
index abcc4d4..5d16577 100644
--- a/feature/src/main/features/node-store-segment/segment.json
+++ b/feature/src/main/features/node-store-segment/segment.json
@@ -1,8 +1,16 @@
 {
     "id": "org.apache.sling:org.apache.sling.cms.feature:slingfeature:segment:${cms.version}",
     "configurations": {
-        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService":{
-            "name":"Default NodeStore"
+        "org.apache.jackrabbit.oak.segment.SegmentNodeStoreService": {
+            "name": "Default NodeStore"
+        },
+        "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"
         }
     }
 }
\ No newline at end of file
diff --git a/feature/src/main/features/sling_sling.json b/feature/src/main/features/sling_sling.json
index 9c2a3d8..2d2f1e3 100644
--- a/feature/src/main/features/sling_sling.json
+++ b/feature/src/main/features/sling_sling.json
@@ -336,14 +336,6 @@
         }
     ],
     "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",


[sling-org-apache-sling-app-cms] 15/18: Simplify the conversion POM

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit 9eee38b3a6b55a7f32c4ae1555b65064227a8246
Author: Dan Klco <dk...@apache.org>
AuthorDate: Sat Jul 25 23:21:07 2020 -0400

    Simplify the conversion POM
---
 converter/pom.xml | 34 ----------------------------------
 1 file changed, 34 deletions(-)

diff --git a/converter/pom.xml b/converter/pom.xml
index 8718504..46865b5 100644
--- a/converter/pom.xml
+++ b/converter/pom.xml
@@ -96,40 +96,6 @@ under the License.
                             </aggregates>
                         </configuration>
                     </execution>
-                    <execution>
-                        <id>install-feature</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attach-features</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>create-sling-feature-archives</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>attach-featurearchives</goal>
-                        </goals>
-                        <configuration>
-                            <archives>
-                                <archive>
-                                    <classifier>slingcmsfar</classifier>
-                                    <includeClassifier>slingcms</includeClassifier>
-                                </archive>
-                            </archives>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>diff</id>
-                        <goals>
-                            <goal>features-diff</goal>
-                        </goals>
-                        <configuration>
-                            <selection>
-                                <includeClassifier>oak_tar</includeClassifier>
-                                <includeClassifier>slingcms</includeClassifier>
-                            </selection>
-                        </configuration>
-                    </execution>
                 </executions>
             </plugin>
             <plugin>


[sling-org-apache-sling-app-cms] 04/18: Ignoring the launcher directory

Posted by dk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

dklco pushed a commit to branch SLING-8913-multiple-instance-types
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-app-cms.git

commit b172f738d0ea7b2fcd703381ac50ac36f5a8d47e
Author: Dan Klco <dk...@apache.org>
AuthorDate: Fri Jul 24 14:36:38 2020 -0400

    Ignoring the launcher directory
---
 feature/.gitignore | 1 +
 1 file changed, 1 insertion(+)

diff --git a/feature/.gitignore b/feature/.gitignore
new file mode 100644
index 0000000..d7adf42
--- /dev/null
+++ b/feature/.gitignore
@@ -0,0 +1 @@
+launcher/
\ No newline at end of file